Libreria:
La librería que viene en nuestra ayuda se llama keypad.h. Esta librería no viene de forma estándar con la distribución del compilador de Arduino. Así que tenemos que descargarla desde la web. http://playground.arduino.cc/code/Keypad
Conexiones
Código
//* Teclado4x3.ino * Comprobacion de que el numero pulsado, se muestra en el monitor seria. * Libreria: Keypad.h * Definimos dos constantes, para las filas (Fila) y columnas (Colu) * y una matriz con los caracteres del teclado. */ #include <Keypad.h> //libreria. const byte Fila = 4; // numero de filas const byte Colu = 3; // numero de columnas char keys[Fila][Colu] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte PinFilas[Fila] = {8, 9, 10, 11}; // indicamos a que pines estan conectados las Filas byte PinColum[Colu] = {12, 13, 14}; // indicamos a que pines estan conectados las columnas //creamos un objeto de la libreria keypad para usar sus funciones Keypad keypad = Keypad( makeKeymap(keys), PinFilas, PinColum, Fila, Colu ); void setup() { Serial.begin(9600); // Definimos la velocidad del puerto serial. } void loop() { //cuando se pulse una tecla, se guardará en una variable llamada key char key = keypad.getKey(); //Si se ha pulsado una tecla, se envia por serial if (key != NO_KEY) { Serial.println(key); } }
Explicación
El primer paso es incluir la librería y las constantes que vamos a utilizar:
const byte Fila = 4; // numero de filas const byte Colu = 3; // numero de columnas
Reservamos memoria en bytes, para los valores de los pulsadores y la asignación del pin que se corresponde con los de Arduino. Sin embargo, hay que observar que, vamos a necesitar un número alto de pines en este y los siguientes ejemplos.
byte PinFilas[Fila] = {8, 9, 10, 11}; // indicamos a que pines estan conectados las Filas byte PinColum[Colu] = {12, 13, 14}; // indicamos a que pines estan conectados las columnas
Este es el momento de ‘crear’ el teclado propiamente dicho, es decir, con esta sentencia, el programa generará una matriz que verá como un teclado, al que se remitirá, cuando tenga que representar un dígito. Esto se consigue con la siguiente línea:
Keypad keypad = Keypad( makeKeymap(keys), PinFilas, PinColum, Fila, Colu );