En este proyecto te vamos a mostrar cómo integrar un teclado con una placa UNO R3 para que esta pueda leer las teclas que presione el usuario. Vas a ver que este conocimiento es clave para armar muchísimos tipos de dispositivos comerciales que requieren interacción.
Módulo de teclado de membrana
Generalidades
Los teclados se usan en todo tipo de aparatos, desde celulares y faxes hasta microondas, hornos y cerraduras electrónicas. Están prácticamente en todos lados; un montón de dispositivos electrónicos los usan para que el usuario ingrese datos.
Por eso, saber cómo conectar un teclado a un microcontrolador como la placa UNO R3 es muy valioso. Para este proyecto, vamos a usar un teclado matricial. Este tipo de teclado sigue un esquema de codificación que le permite tener muchos menos pines de salida que teclas físicas. Por ejemplo, el que estamos usando tiene 16 teclas (0-9, A-D, *, #) pero solo 8 pines de salida. Si fuera un teclado lineal, necesitaría 17 pines (uno por cada tecla y uno de tierra) para funcionar. El esquema matricial permite usar menos cables, lo que lo hace mucho más eficiente que los teclados lineales.
Componentes requeridos
(1) x Elegoo Uno R3
(1) x Módulo de teclado de membrana
(4) x Cables M-M (cables puente macho a macho)
Esquema de conexión y diagrama de cableado
Al conectar los pines a la placa UNO R3, los vinculamos a los pines de salida digital D9-D2. Conectamos el primer pin del teclado al D9, el segundo al D8, el tercero al D7, el cuarto al D6, el quinto al D5, el sexto al D4, el séptimo al D3 y el octavo al D2.
Acá tenés el detalle de las conexiones:
- Pin 1 a D9
- Pin 2 a D8
- Pin 3 a D7
- Pin 4 a D6
- Pin 5 a D5
- Pin 6 a D4
- Pin 7 a D3
- Pin 8 a D2
Código
Podés hacer clic en el enlace azul para descargar el archivo del programa a tu equipo. Una vez descargado, hacé doble clic para abrirlo. Importante: Antes de abrir el archivo, asegurate de tener instalado el entorno de desarrollo Arduino IDE y los componentes necesarios, como el soporte para la placa y el driver correspondiente a la placa UNO. Si tenés dudas sobre este proceso, fijate en el capítulo "part 1" de la documentación para una guía detallada.
📥 DESCARGAR custom_keypad.zip
Antes de correr el programa, asegurate de tener instalada la librería <Keypad> (o reinstalala si es necesario). Si no, el código no va a funcionar.
Con este código, una vez que presiones una tecla en el teclado, la misma debería aparecer en el monitor serie del software de Arduino después de que el programa sea compilado y subido a la placa UNO R3. Hacé clic en el botón del Monitor Serie para prenderlo. Los conceptos básicos sobre el monitor serie se explican en detalle en el tutorial 4 de la parte 2.
Análisis de las secciones del código:
- const byte ROWS = 4; y const byte COLS = 4;: Define constantes para las dimensiones del teclado. Un teclado matricial de 4x4 tiene 4 filas y 4 columnas, totalizando 8 pines. Usar
const byteasegura que estos valores sean fijos y consuman el mínimo de memoria. - char hexaKeys[ROWS][COLS]: Es un array bidimensional que mapea los botones físicos del teclado 4x4 con sus caracteres correspondientes.
- byte rowPins[ROWS] y byte colPins[COLS]: Estos arreglos vinculan los pines de las filas y columnas del teclado con pines específicos de la placa UNO (por ejemplo, la primera fila va al D9 y la primera columna al D5). Le indican a la librería Keypad qué pines se usan para comunicarse.
- Keypad customKeypad: Crea un objeto de teclado (una instancia de la clase Keypad) para controlar el dispositivo físico.
- char customKey = customKeypad.getKey(): Se fija si se presionó un botón. Devuelve el carácter correspondiente (según
hexaKeys) si hay una pulsación, o devuelve 0 si no se presionó nada.
← Sensor ultrasónico | DHT11 →
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.