Cuando pensamos en crear algo, una máquina o una aparato, una de las cosas que tenemos que tener en cuenta es cómo vamos a darle ordenes. Vamos a necesitar una interfaz que nos permita interactuar con la máquina.

Una de las más conocidas y usadas son los teclados. Estos con normalidad suelen estar organizados de forma matricial, lo que permite reducir el número de pines digitales que usamos para leer las teclas.

Para llevar a cabo la lectura del teclado vamos a usar la librería keypad.h con el siguiente código.

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //FOUR columns
char keys[ROWS][COLS] = {
{'1','2','N','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
 Serial.begin(9600);
}

void loop(){
 char key = keypad.getKey();

 if (key){
  Serial.println(key);
 }
 delay(10);
}

En este vídeo vemos como controlar el teclado y explico el código que se usa.

Teclado matricial + Arduino

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me