Si decide usar una MCU para escanear el teclado, a continuación se muestra un algoritmo de sondeo que puede usar (que extraje de esta fuente ). Me tomó un tiempo entenderlo (tuve que leerlo dos veces), pero una vez que lo hice, me ayudó MUCHO.
Operaciones de sondeo continuo
En este modo de operación, el MicroConverter sondea continuamente el teclado para presionar una tecla. Esta operación se utiliza cuando el MicroConverter ha completado una tarea y ahora está esperando la entrada antes de continuar. En este modo, el teclado está conectado a un puerto del MicroConverter, Puerto 2 en este ejemplo. La figura 3 muestra la conectividad. La salida del MicroConverter, después de presionar una tecla, se visualiza utilizando HyperTerminal ejecutándose en una PC. El MicroConverter está conectado a la PC a través del puerto COM1. Esta es la razón para mostrar la conexión RS-232.
Como se puede ver en la Figura 3, las cuatro columnas (X1 a X4) se elevan a VDD y también se conectan a cuatro de los pines del puerto del micro convertidor (P2.4 a P2.7). Las cuatro filas ADuC8xx (Y1 a Y2) están conectadas a los otros cuatro pines de puerto (P2.0 a P2.3). El MicroConverter saca 0 o controla las filas del teclado (P2.0 a P2.3) una a la vez y
comprueba las columnas (P2.4 a P2.7) para una condición baja.
Por ejemplo, la siguiente es la secuencia de eventos hasta la detección de una pulsación de interruptor (Switch 5 en este caso). El MicroConverter produce una baja en P2.0 (Y1) y busca una baja en P2.4 a P2.7. En este caso, no se encuentra un nivel bajo y, por lo tanto, devuelve P2.0 (Y1) a alto y se mueve a P2.1 (Y2). El MicroConverter ahora controla P2.1 (Y2) bajo y nuevamente
comprueba P2.4 a P2.7 para una condición baja. Esta vez encuentra que P2.5 (X2) está bajo, debido a que se presionó el Interruptor 5. El MicroConverter ahora sabe que la interconexión
de Y2 y X2 se ha acortado, por lo tanto, esto es 5.
SitieneunArduinoamano,nonecesitaimplementarelalgoritmoustedmismo.EnsulugarpuedesusarellibArduinoKeypad.Losenlacesestánabajo:
Vea más detalles (sobre cómo el teclado está cableado internamente, por ejemplo) aquí en mi otra respuesta relacionada