En este proyecto, vamos a ver cómo integrar un teclado con una placa 2560 R3 para que la placa pueda leer las teclas que presiona un usuario. Estos módulos son fundamentales para permitir la interacción directa en diversos proyectos electrónicos.
Módulo de teclado de membrana
Descripción general
Los teclados se usan en todo tipo de dispositivos, incluyendo celulares, faxes, microondas, hornos, cerraduras de puertas, etc. Están prácticamente en todos lados. Muchísimos dispositivos electrónicos los utilizan para la entrada de datos del usuario.
Por eso, saber cómo conectar un teclado a un microcontrolador, como una placa 2560 R3, es muy valioso para construir muchos tipos diferentes de productos comerciales.
Para este proyecto, el tipo de teclado que vamos a usar es un teclado matricial. Este es un teclado que sigue un esquema de codificación que le permite tener muchos menos pines de salida que teclas físicas. Por ejemplo, el teclado matricial que estamos usando tiene 16 teclas (0-9, A-D, *, #), pero solo 8 pines de salida. Con un teclado lineal, se necesitarían 17 pines de salida (uno para cada tecla y un pin de tierra) para funcionar. El esquema de codificación matricial permite usar menos pines y, por lo tanto, realizar muchas menos conexiones. De esta manera, son más eficientes que los teclados lineales al requerir menos cableado.
Componentes requeridos:
(1) x Elegoo Mega 2560 R3
(1) x Módulo de teclado de membrana
(8) x Cables M-M (cables puente macho a macho)
Esquema de conexión
Diagrama de cableado
Al conectar los pines a la placa 2560 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.
Estas son las conexiones detalladas en una tabla:
Código
Podés hacer clic en el enlace de texto azul para descargar el archivo del programa en tu dispositivo local, y hacer doble clic en el archivo para abrirlo una vez que se complete la descarga. Por favor, tené en cuenta: antes de abrir el archivo, asegurate de haber instalado el entorno de desarrollo Arduino IDE y de haber completado la instalación de los componentes necesarios, como el paquete de soporte de la placa y el driver correspondiente a la placa 2560. Si tenés alguna duda sobre este proceso, podés consultar el capítulo "parte 1" del documento para obtener una guía detallada.
📥 DOWNLOAD custom_keypad.zip
Antes de ejecutar esto, asegurate de haber instalado la biblioteca <Keypad> o volvé a instalarla si es necesario. De lo contrario, tu código no va a funcionar.
Con este código, una vez que presiones una tecla en el teclado, debería aparecer en el monitor serial del software Arduino una vez que el código esté compilado y subido a la placa 2560 R3. Hacé clic en el botón Monitor Serial para activarlo. Los conceptos básicos sobre el monitor serial se explican en detalle en el tutorial 4 de la parte 2.
Explicación del código:
const byte ROWS = 4; y const byte COLS = 4;: Define constantes para las dimensiones del teclado (una matriz de 4x4 tiene 4 filas y 4 columnas, totalizando 8 pines). El uso de const byte asegura que estos valores sean fijos y utilicen 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 arrays vinculan los pines de las filas y columnas del teclado con los pines específicos de la 2560 (por ejemplo, la primera fila se conecta al D9). Estos arrays le indican a la biblioteca Keypad qué pines se usan para la comunicación.
Keypad customKeypad: Crea un objeto llamado customKeypad (una instancia de la clase Keypad) para controlar el teclado físico.
char customKey = customKeypad.getKey(): Dentro del loop, verifica 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.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.