|
Categorias
Espacio para Publicidad
Mas!!!
Ultimos Comentarios
Encuesta
Que opinas de los programas aqui incluidos:
Link
Web Amigas
|
Busqueda
Búsqueda personalizada
15 Septiembre 2009
Microcontroladores: Sumando pulsadores![]() Conectar pulsadores a un microcontrolador para lograr la concreción de resultados predeterminados es una tarea que en apariencia no debiera contener muchos misterios. Bastará con disponer de un pin del microcontrolador y asunto resuelto pero, ¿Qué sucede cuando la cantidad necesaria de pulsadores supera a los pines disponibles del microcontrolador? Descubre algunos secretos y saca el máximo provecho de los escasos recursos de hardware que a veces dispones en un diseño tratando de hacer magia con uno o dos pines disponibles para más de 5 o 6 pulsadores. Recuerda: las cosas no siempre son tan sencillas ni tan difíciles como desde afuera aparentan.
Cuando comenzamos a transitar el apasionante mundo de la programación de microcontroladores, solemos encontrarnos con una catarata de información con ejemplos que cubren la mayoría de las necesidades. Sin embargo, una de las cosas que a menudo suelen ocurrir dentro de esa mayoría es que los encargados de transmitir una enseñanza o un ejemplo práctico, suponen que hay cosas ya sabidas. Es decir, dan por sentado que hay conocimientos básicos que el lector (tú) ya posee y no se detienen a explicar muchos detalles que no siempre se conocen previamente. Un caso puntual es la conexión de pulsadores o botones que se conecten en los puertos de los microcontroladores y se utilicen para controlar distintos eventos. Muchos deben creer que uno nace sabiendo como se le pueden sumar infinitos pulsadores a un diseño y no es así. ![]() Una de las interfaces de entrada a un microcontrolador, son los pulsadores. Una pregunta que suele rondar la cabeza de mucha gente es acerca del modo en que los diseñadores de equipos electrónicos logran conectar (y hacer funcionar) a decenas de pulsadores a través de un único pin. Recolectando información de aquí y de allá mientras caminamos la web, logramos reunir algunos ejemplos que creemos te pueden ser de utilidad para disponer de los mejores recursos según la situación que te toque resolver. Dicho de otro modo: cuando tengas que utilizar botones, pulsadores, interruptores o algún switch conozcas las formas usuales de conectarlos al microcontrolador. ![]() Ejemplos de conexiones de un pulsador en un PIC En el dibujo superior vemos las dos posibilidades que tenemos de conectar un botón a una entrada (al azar) de un microcontrolador. La única diferencia importante que encontramos en los ejemplos mostrados es su implementación en el pin PORTA.4. Cabe destacar que este pin posee en su entrada un Schmitt Trigger que es utilizado habitualmente para contar impulsos externos utilizando las propiedades del Timer 0 (T0CKI = Timer 0 ClocK Input). Luego, sólo debemos interrogar, en el momento oportuno, por el estado del pin y ya tendremos funcionando nuestro botón en el PIC. El ejemplo en nuestro clásico Proton BASIC será de la siguiente forma: ![]() Ejemplo del listado para utilizar un solo boton Trabajando con un teclado matricial ![]() Matriz de 9 teclas En el ejemplo se puede apreciar una configuración de 9 teclas que ocupa solo seis pines del microcontrolador y que se organizan en tres filas y tres columnas. Gracias a las características del puerto B, en esta disposición de teclas y utilizando un PIC como el 16F628A, no necesitamos resistores externos de polarización ya que el microcontrolador los posee integrados en el mismo dispositivo. Solo bastará con habilitarlos a través del bit 7 del registro OPTION_REG existente en todos los PIC de la línea 16F. Si deseas utilizar los resistores internos del puerto B para ésta u otras aplicaciones, recuerda siempre configurar correctamente el registro mencionado. ![]() Encabezado del programa que escanea un teclado matricial La manera habitual de hacer funcionar un teclado es habilitando las columnas o filas como salidas y las no definidas de esta forma, como entradas. Por ejemplo, las columnas las configuraremos como entradas y las filas como salidas. Esto se realiza como dijimos anteriormente con la instrucción TRIS. De acuerdo al circuito propuesto nos quedará TRISB = %00000111 donde los tres bits menos significativos se colocan en uno para configurar esos pines como entradas y al resto como salidas. De esta forma comenzamos a habilitar en forma secuencial las filas de a una mientras se controla si algún botón se oprime “leyendo” cada una de las columnas. Realizando de forma rápida el barrido de las habilitaciones de las filas y la observación de los sucesos en las columnas, podremos determinar cuál tecla se pulsa en el momento en que el teclado se habilita para su funcionamiento. ![]() Rutina que se encarga de leer la matriz Como vemos en el ejemplo, el barrido de activación se realiza en forma secuencial habilitando una fila tras la otra y atendiendo si se pulsa alguna tecla. En ese caso, el programa salta rápidamente al lazo principal llevando consigo la variable BOTON cargada con el número de la tecla pulsada. ![]() La instrucción INKEY nos ahorra muchas líneas de programa Como pueden ver, el programa completo se reduce a unas pocas líneas y esto cobra vital importancia para aumentar la sencillez del programa. En el HELP de Proton encontrarán datos adicionales para aumentar la capacidad operativa de esta instrucción tan importante. ![]() Teclado clásico de un TV En la imagen superior tenemos el ejemplo de un TV donde se utiliza un solo pin para leer 5 botones. Como podemos ver, la alimentación de 5Volts en el extremo inferior se conecta a la serie de resistencias R1901 – R1907 para llegar al pin 12 del microprocesador (KEY–IN) donde tenemos a R819 respecto a GND que nos completará una configuración de divisor resistivo variable según la tecla pulsada. La alimentación al ser común a cada tecla provocará la llegada de una tensión diferente ante la pulsación de una u otra tecla. El ADC se encargará de determinar el nivel de esta tensión y determinará en consecuencia cuál tecla fue pulsada. ![]() Combinación de un teclado matricial y uno serie en un mismo equipo En este diagrama vemos que en otros casos se utilizan la combinación de matrices con circuitos series como el anterior. Esto es común en los grandes equipos musicales y fue una técnica híbrida muy utilizada priorizando las funciones principales al teclado de matriz y las secundarias o de segundo orden y jerarquía al circuito serie. El motivo se asentaba en la confiabilidad de los botones “soft-touch” empleados en la fabricación de los equipos. Una calidad pobre de pulsadores en una configuración serie provocaba errores de interpretación al microprocesador que terminaba ejecutando una instrucción que no era la deseada por el usuario. Por ejemplo, si pulsabas PLAY para reproducir un CD se pasaba a la función RADIO o se cambiaba la configuración del ecualizador de audio. Temas relacionados
mmmmmm
Comentarios
muessli [15 Octubre 2009 10:28]
|
Menu Usuario
Encuesta
Top Noticias
Usuarios Resientes
|
||||||||||||||||||||||||||||||||||||||||||||
Recuperar Contraseña