Teclado con Arduino

Teclado con Arduino

Hoy explicaremos como conectar un teclado con Arduino. En muchas aplicaciones disponer de un teclado es muy util, mientras que en otras es esencial. Los teclados basicos pueden ser de 3×4 o 4×4 y los hay de muchos tipos. Mientras algunos tiene electrónica y comunicarse con ellos requiere cierta lógica de comunicación, otros son simples matrices de conexión, como el que usaremos hoy.

El teclado

El teclado que usaremos es uno de los más comunes de 4×4 (16) teclas del tipo membrana con conector flexible de 8 pines. El teclado posee 8 pines de los cuales los primeros 4 (visto de frente) corresponden a las filas (de arriba a abajo) y los segundos 4 a las columnas (de izquierda a derecha).

Teclado de membrana matriz 4x4

El teclado es una matriz que conecta pines horizontales (filas) con pines verticales (columnas) de manera que cuando uno presiona una tecla, lo que hace es conectar una fila con una columna, mientras el resto de las filas y columnas quedan sin conectar.

Debido a la capacidad de Arduino de mantener estados internos en la lectura digital (INPUT_PULLUP) el proceso para verificar si una fila y una columna estan conectadas es simple, y solo requiere la transmision de un estado LOW desde uno de los pines, mientras leemos el otro y verificamos si cambia de HIGH a LOW (denotando conexión).

Sin embargo, nosotros no entraremos en la lógica de como realizar este trabajo en ésta página. Como se imaginarán, ya existe una librería que hace el trabajo por nosotros y que usaremos para simplificar nuestro ejemplo.

 

 

 

La librería para conectar el teclado con Arduino

Puede encontrar y descargar la librería que usaremos desde aqui: https://playground.arduino.cc/uploads/Code/keypad.zip

En el Arduino IDE parece estar ya incluida como las librerías por defecto, por lo que les recomiendo que se fijen si no la tienen ya instalada antes de instalar una nueva. La página de Arduino que presenta la librería es: https://playground.arduino.cc/Code/Keypad

Conectando el teclado con Arduino

En mi caso usé un Arduino Mega 2560 para hacer la conexión más simple (ya que dispone de 8 pines en linea que puedo usar) pero ustede puede usar un Arduino UNO sin ningun problema siempre que lo conecte adecuadamente y configure los pines usados correctamente en el Sketch.

 

Conexion del teclado con Arduino Mega 2560

Concretamente conecté los 4 pines de filas a los pines del Arduino Mega 2560 24, 26, 28 y 30, mientras que las columnas las conecté a los pines 32, 34, 36 y 38 respectivamente (ver imagen arriba).

El Sketch

Les dejo un simple Sketch que solo muestra como funciona el teclado pero hay mucho que pueden hacer con un teclado y muchas funciones disponibles si necesitan sacarle provecho al mismo. No dejen de consultarme si tienen problemas con su implementación.

#include 

// Cantidad de filas de su teclado
const byte ROWS = 4;
// Cantidad de columnas de su teclado
const byte COLS = 4;
// Mapa de los caracteres que cada tecla representará. Usualmente coincide con las teclas.
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
// A continuacion van los pines usados para las filas y columnas en su caso
byte rowPins[ROWS] = {24, 26, 28, 30};
byte colPins[COLS] = {32, 34, 36, 38};

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

void setup(){
  Serial.begin(9600);
  Serial.println("Presione teclas en su teclado para continuar...");
}
  
void loop(){
  // Lee si hay alguna tecla presionada
  char key = keypad.getKey();
  
  // Si se presionó una tecla la mostramos por el Monitor Serie
  if (key){
    Serial.println(key);
  }
}

Luego de cargar el sketch en su Arduino y abrir el Monitor Serie, podrá ver algo similar a lo siguiente (presione teclas en su teclado para probar su funcionamiento):

Salida del monitor serie para el Sketch de prueba del teclado matricial

El resto lo dejo en sus manos. Manos al Arduino!

Deja un comentario