Go Down

Topic: Keypad y arduino. Necesito ideas/soluciones. (Read 1 time) previous topic - next topic

Pijuli

Os pongo en situación:
-Arduino
-Keypad 3x4 típico
1 2 3
4 5 6
7 8 9
* 0 #

La pregunta es la siguiente:
¿ Se puede controlar el keypad sin tener que "perder" 7 pines del arduino? La verdad que no me apetece nada la idea... 4 pines para horizontal y 3 para vertical.
¿Hay algún chip que me lo simplifique a 4 bits? (16 opciones de codificación. Más que de sobra en teoria)

De hecho preguntaré más:
Si existe ese chip, ¿hay alguna manera de controlar el teclado por interrupción? Mas que nada la idea es que el teclado responda correctamente y no perder pulsos... ni hacerlo por polling, ya que si pongo un tiempo muy corto de refresco puede que "lea" dos veces la misma tecla y si pongo un tiempo muy largo puede que no la lea...

A ver si me podeis echar un cable  ;)

Saludos gente!

Pofenas

Para ahorrar pines en la lectura, puedes utilizar un multiplexor de 16 a 1. Este tipo de CI te proporciona 16 lineas de entrada, y una linea de salida. Para tu aplicacion concreta, debes conectar a las 16 lineas de entrada las 12 lineas del Keypad (deja conectadas a tierra las que sobren, no debes dejarlas al aire). Para leer el teclado, debes colocar en las 4 patillas de control secuencialmente los numeros de 0 a 11 (0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011). Cuando tengas corriente en la salida, la tecla pulsada es la indicada por el numero presente en las patillas de control.
Para leerlo con interrupciones, necesitas una puerta OR de 12 entradas ( o algun montaje equivalente). La salida de esta puerta la conectas al pin que vas a utilizar para disparar la interrupcion. Ten en cuenta que cada salida del teclado debe ir a dos sitios: al multiplexor y a la puerta OR.
Y el programa es de lo mas sencillo: habilitas la rutina de servicio de la interrupcion ligada a la entrada a la que conectaste la puerta OR, y en esa rutina de servicio, un bucle hace los out por los pines asignados a las patillas de control y comprueba la entrada antes de pasar a la siguiente vuelta, devolviendo el numero que corresponda a la tecla pulsada.
Espero haberte ayudado.
Pofenas

Inizul

En las páginas siguientes tienes distintas posibilidades para utilizar teclados sin usar muchas entradas:
Utilizando una entrada analógica:
http://txapuzas.blogspot.com/2010/07/papertecladoanalogico-varios-pulsadores.html

Utilizando una entrada digital:
http://txapuzas.blogspot.com/2010/09/papertecladorc-varios-pulsadores.html

Incluso puedes hacer un teclado con una hoja de papel impresa!!  8-)
(Utilizando una entrada analógica):
http://txapuzas.blogspot.com/2009/12/paperteclado-un-teclado-con-una-hoja.html

Espero que te sirvan

Saludos

sandroalex


Go Up