Arduino UNO R4 - Teclado 4x4

Este tutorial te enseñará cómo usar un Arduino UNO R4 con un teclado 4x4. A continuación, cubriremos los siguientes pasos:

Teclado numérico 4x4 para Arduino UNO R4

Acerca del teclado numérico 4x4

El teclado tiene 16 botones de membrana dispuestos en filas y columnas, conocidos como una matriz. Cada botón se denomina tecla.

Diagrama de pines

Un teclado numérico 4x4 tiene 8 pines, divididos en dos categorías: filas y columnas.

  • 4 pines son para las filas (R1, R2, R3, R4).
  • 4 pines son para las columnas (C1, C2, C3, C4).
Pinout del teclado matricial 4x4

Diagrama de Cableado

Diagrama de cableado del teclado 4x4 para Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Código Arduino UNO R4

#include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1','2','3', 'A'}, {'4','5','6', 'B'}, {'7','8','9', 'C'}, {'*','0','#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup(){ Serial.begin(9600); delay(1000); Serial.println("Keypad 4x4 example"); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); } }

Pasos R\u00e1pidos

Sigue estas instrucciones paso a paso:

  • Si es la primera vez que usas Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta el teclado numérico 4x4 al Arduino Uno R4 según el diagrama proporcionado.
  • Conecta el Arduino Uno R4 a tu computadora con un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Ve al icono Bibliotecas en el lado izquierdo del IDE de Arduino.
  • Escribe DIYables_Keypad en la caja de búsqueda y busca la biblioteca keypad de DIYables.io.
  • Presiona el botón Instalar para instalar la biblioteca keypad.
Biblioteca de teclado numérico para Arduino UNO R4
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código al Arduino UNO R4.
  • Abre el Monitor Serial.
  • Presiona algunas teclas en el teclado numérico.
  • Verifica los resultados en el Monitor Serial.
COM6
Send
1 2 3 4 A B C * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Teclado numérico y contraseña

Un uso común de un teclado numérico es introducir una contraseña. En este caso, usamos dos teclas especiales:

  • Una tecla para empezar o reiniciar la introducción de la contraseña. Por ejemplo, la tecla '*'.
  • Una tecla para terminar de introducir la contraseña. Por ejemplo, la tecla '#'.

La contraseña estará formada por las demás teclas, excluyendo las dos teclas especiales. Cuando se presione una tecla:

  • Si la tecla no es '*' ni '#', agrega la tecla a la contraseña que el usuario está introduciendo.
  • Si la tecla es '#', verifica si la contraseña introducida coincide con la contraseña establecida y luego borra la contraseña introducida.
  • Si la tecla es '*', borra la contraseña introducida.

Teclado - Código de Contraseña

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-keypad-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1','2','3', 'A'}, {'4','5','6', 'B'}, {'7','8','9', 'C'}, {'*','0','#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // connect to the column pinouts of the keypad DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "1234A"; // change your password here String input_password; void setup(){ Serial.begin(9600); Serial.println("Keypad 4x4 password"); input_password.reserve(32); // maximum input characters is 33, change if needed } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); if(key == '*') { input_password = ""; // clear input password } else if(key == '#') { if(password == input_password) { Serial.println("password is correct"); // DO YOUR WORK HERE } else { Serial.println("password is incorrect, try again"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }
  • Ejecute el código proporcionado arriba.
  • Abra el Monitor Serial.
  • Ingrese las teclas "1234BC" y luego pulse "#".
  • Ingrese las teclas "1234A" y luego pulse "#".
  • Verifique los resultados en el Monitor Serial.
COM6
Send
password is incorrect, try again password is correct
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!