Icono del sitio AranaCorp

Usando un teclado digital 4×4 con Arduino

Ya sea una calculadora o el teclado de un edificio, usamos rutinariamente teclados numéricos. El teclado digital 4×4 es una matriz de 16 botones cuyos estados pueden ser detectados por un microcontrolador.

Hardware

Principio de funcionamiento

El teclado numérico es un conjunto de 16 botones que están dispuestos en una matriz, es decir, todos los botones de una columna están vinculados a una entrada y todos los botones de una fila están vinculados a otra. Cuando se presiona un botón, la entrada correspondiente a la línea se conecta a la entrada correspondiente a la columna, lo que cierra el circuito. La ventaja de este tipo de montaje es que se pueden manejar 16 botones con sólo 8 entradas de microcontrolador.

Esquema

El teclado numérico utiliza 8 pines del Arduino. Es posible conectarlos a cualquier pin. Los pines 0 y 1, que se utilizan para la conexión en serie a través del puerto USB, deben evitarse.

Code

Para manejar el teclado numérico, el principio es pasar cada entrada de las columnas al estado alto y leer el valor de las entradas correspondientes a las filas. Si una fila tiene el mismo estatus que la columna, se presiona un botón. En la práctica podemos usar la biblioteca Keypad.h, que permite manejar una matriz de botones de cualquier tamaño.

//Libraries
#include <Keypad.h>//https://github.com/Chris--A/Keypad

//Constants
#define ROWS 4
#define COLS 4

//Parameters
const char kp4x4Keys[ROWS][COLS]  = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}};
byte rowKp4x4Pin [4] = {9, 8, 7, 6};
byte colKp4x4Pin [4] = {5, 4, 3, 2};

//Variables
Keypad kp4x4  = Keypad(makeKeymap(kp4x4Keys), rowKp4x4Pin, colKp4x4Pin, ROWS, COLS);

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
}

void loop() {
  readKp4x4();
}

void readKp4x4() { /* function readKp4x4 */
  //// Read button states from keypad
  char customKey = kp4x4.getKey();
  if (customKey) {
    Serial.println(customKey);
  }
}




Resultado

Cuando se pulsa una tecla del teclado, observamos que el carácter asociado se muestra correctamente en el monitor de serie.

Aplicaciones

Fuentes

Encuentre otros tutoriales y ejemplos en el generador de código automático
Arquitecto de Código

Salir de la versión móvil