Kit teclado por un solo pin

Para algunos proyectos electrónicos se hace necesario el uso de una gran cantidad de botones o pulsadores, con el fin de controlar e ingresar información  al microcontrolador. 

Podemos ver este tipo de casos en los equipos de audio, hornos de microondas, y otros, en donde se utilizan una gran cantidad de botones.

Esto no es nada nuevo, pero se presenta como un problema para los aficionados y entusiastas que gustan de programar microcontroladores.

Para la mayoría de los proyectos basta con algunos cuantos botones; una simple instrucción if o equivalente según sea el lenguaje de programación y ya tenemos resuelto el problema.

El inconveniente es que necesitaríamos un pin del microcontrolador por cada botón y obviamente esto no es nada práctico… por lo menos no en un proyecto serio de electrónica.

¿Pero entonces que ocurre cuando necesitamos muchos botones para nuestro proyecto?.


Teclado matricial por un solo pin.


Existen básicamente 2 formas de resolver el problema: utilizar un teclado matricial de barrido o un teclado matricial por un solo pin. Precisamente la segunda opción será la que trataremos en este artículo.

Teclado matricial por un solo pin.


En este tipo de teclado matricial por un solo pin, tenemos que cada botón habilita una serie de resistencias que forman un divisor de tensión, que al ser presionado uno de los botones, genera un voltaje dc de diferente valor con respecto a los demás.


Kit teclado matricial por un solo pin diagrama.


Como cada botón genera un voltaje diferente, el microcontrolador los puede diferenciar y así hacer una función u otra dentro del programa… y todo por un solo pin.

¿Pero cómo hace el microcontrolador para “leer” el teclado”?

Existen varias opciones que pueden estar limitadas por el lenguaje de programación utilizado. En este caso vamos a utilizar Proton (basic) para la lectura del teclado por un solo pin.

Con este lenguaje de programación para microcontroladores, tenemos básicamente 2 opciones: el conversor análogo a digital o la instrucción POT.

Con la instrucción POT podemos utilizar microcontroladores  que no tengan conversor análogo digital, como el PIC 16f628 o el viejo 16f84A.

Pero en este caso utilizaré el PIC 16f88 que si posee conversor análogo a digital, para hacer la lectura del teclado.

El programa para el PIC 16F88.


Debemos tener presente que existen diversas formas para hacer funcionar este teclado, en cuanto al software se refiere y que la presentada aquí, es tan solo una de ellas. El objetivo del programa es la de identificar el voltaje que genera cada botón o tecla y tomar decisiones en base a ello.

Una de esas formas consiste en promediar el valor del voltaje obtenido, con el fin de ajustarse lo más cerca posible con el voltaje generado por el botón. Y otros programas “locos” que veo en internet, que aun yo con 10 años programando no entiendo absolutamente nada.

Pero estas formas tienen el inconveniente de que  requieren  resistencias de precisión, voltaje bien regulado y botones de buena calidad. Y aun así con el paso del tiempo, veremos como al pulsar un botón, este realiza la función de otro botón distinto.

Pero también tienen  la ventaja de que se puede agregar un gran número de botones; tantos como la variable dentro del programa lo permitan.

Un programa distinto.


Para este programa en particular no necesitaremos de configuraciones extrañas de hardware, tampoco de pulsadores con laminillas de oro o resistencias con 0.000001% de precisión, no, simplemente utilizaremos componentes comunes, como las resistencias al 5% y pulsadores o botones corrientes que en mi caso utilice unos reciclados de un equipo de sonido Panasonic AK22.

Simplemente se crea un comparador de ventana, en donde a cada botón le ampliamos su rango de acción en cuanto al voltaje se refiere.

Así el teclado queda como con un tipo de seguro a variaciones de las resistencias y al envejecimiento de los pulsadores o botones.

¡No todo lo que brilla es oro!

Esta técnica si bien me ha dado buenos resultados, no es del todo perfecta, pues limita el teclado a unos 8 o quizás 10 pulsadores. ¡Pero vamos, que 8 pulsadores por un solo pin es muy bueno!.

Para crear el comparador de ventana podemos utilizar la instrucción SELECT CASE  o también la instrucción IF. Por ejemplo en el teclado del diagrama anterior los botones se han numerado del 1 al 8 de izquierda a derecha, en donde cada botón genera los siguientes voltajes:

Boton  1 = 2.94v, Boton 2= 3.12v, Boton 3= 3.33v, Boton 4= 3.57v, Boton 5= 3.84v, Boton 6= 4.17v Boton  7= 4.54v, Boton 8= 5.0v.

Para el boton 1 = 2.94v se le ha asignado una ventana de entre 2.85v a 3.0v y así se debe hacer con los demás botones.


Kit teclado por un solo pin simulación Proteus.


En la simulación del programa, se puede ver en la primera línea del display LCD el botón oprimido, que en este caso es el número 7. En la segunda línea se puede ver el voltaje que genera este botón en especial y que está siendo procesado por el conversor análogo a digital del PIC 16f88.

De esta forma podemos leer un kit – módulo de teclado simple pero eficiente y así ahorrar dinero, cambiando un aparatoso PIC de 40 pines a uno de 18 pines por ejemplo. Al igual que nos quedara más fácil diseñar el circuito impreso para nuestro proyecto electrónico.

El código fuente del programa completo.












tienda kit electronica

Contenido recomendado

Publicar un comentario

0 Comentarios