Un teclado no es más que una colección del pulsadores, a los cuales se le asigna un símbolo o función a cada pulsador.
Si quisiéramos conectar 16 pulsadores a un arduino uno, nos faltaría pines, imagina el teclado de un ordenador que tiene alrededor de 106 teclas, por eso se necesita otra solución.
La solución llega de la mano de las matrices, y se trata de conectar los pulsadores de forma matricial, dando lugar así al teclado matricial, que reduce a la mitad el número de pines de conexión.
Ahora surge una nueva cuestión, ¿Cómo puede arduino o cualquier otro dispositivo saber que tecla es la que se ha pulsado?
Para que arduino pueda saber que tecla se ha pulsado, basta con poner tensión en las filas de forma secuencial, y luego leer las columnas para saber cual de ella tiene un HIGH. Los teclados matriciales utilizan una combinación de filas y columnas . Cuando se pulsa una de las teclas, se cierra una conexión única entre una fila y una columna.
Ej: Ponemos HIGH en la primera fila, hilo 8 en la imagen de la derecha, luego leemos sucesivamente los hilos de las columnas 4, 3, 2, 1, si ninguno está en HIGH, es que NO se ha pulsado ninguna tecla de la primera fila. Luego pasamos a la segunda fila, ponemos un HIGH en el hilo 7 y volvemos a leer los hilos de las columnas 4, 3, 2, 1 y si encontramos en el hilo 2 un HIGH, eso quiere decir que se ha pulsado la tecla con el número 6.
De este modo, para leer un teclado matricial, solo se necesitan 4 x 4 = 8 hilos en lugar de 16, aunque dará un poco más de problema a la hora de programar.