++Leer botones es algo que ya no tiene secretos para nosotros, pero si conectáramos cada tecla a un pin digital de nuestro Arduino, pronto estaríamos en apuros.
El teclado de nuestro ordenador suele ser de alrededor de 106 teclas, así que el método de fuerza bruta va a entrar en apuros rápidamente. Necesitamos otra solución.
Y como el mundo está lleno de gente ingeniosa se les ocurrió una solución de lo más elegante, una matriz de teclas.
Vamos a ver un ejemplo con un pequeño teclado numérico de 16 teclas tipo los de los teléfonos móviles o los de los cajeros automáticos.
Conecta los pines del teclado a los pines digitales del Arduino de la siguiente manera:
- Pin 1 del teclado a Pin 2 del Arduino
- Pin 2 del teclado a Pin 3 del Arduino
- Pin 3 del teclado a Pin 4 del Arduino
- Pin 4 del teclado a Pin 5 del Arduino
- Pin 5 del teclado a Pin 6 del Arduino
- Pin 6 del teclado a Pin 7 del Arduino
- Pin 7 del teclado a Pin 8 del Arduino
Código de Arduino
#include
// Define el tamaño de la matriz del teclado
const byte FILAS = 4; // Cuatro filas
const byte COLUMNAS = 3; // Tres columnas
// Definir los caracteres del teclado en una matriz 2D
char teclas[FILAS][COLUMNAS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
// Conectar los pines del teclado a los pines del Arduino
byte pinesFilas[FILAS] = {2, 3, 4, 5}; // Pines conectados a las filas
byte pinesColumnas[COLUMNAS] = {6, 7, 8}; // Pines conectados a las columnas
// Crear una instancia de la clase Keypad
Keypad teclado = Keypad(makeKeymap(teclas), pinesFilas, pinesColumnas, FILAS, COLUMNAS);
void setup() {
Serial.begin(9600); // Iniciar la comunicación serial a 9600 bps
}
void loop() {
char tecla = teclado.getKey(); // Obtener la tecla presionada
if (tecla) { // Si se ha presionado una tecla
Serial.println(tecla); // Imprimir la tecla en el monitor serial
}
}
Valoraciones
No hay valoraciones aún.