Arduino UNO R4 - Teclado 3x4

Este tutorial te enseña cómo usar Arduino UNO R4 con un teclado numérico 3x4. En detalle, aprenderemos:

Teclado 3x4 para Arduino UNO R4

Acerca del teclado numérico 3x4

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

Conexión de pines

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

  • 4 pines son para las filas (R1, R2, R3, R4).
  • 3 pines son para las columnas (C1, C2, C3).
Pinout de teclado numérico 3x4

Diagrama de Cableado

Diagrama de cableado del teclado numérico 3x4 de 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 = 3; // three columns char keys[ROW_NUM][COLUMN_NUM] = { { '1', '2', '3' }, { '4', '5', '6' }, { '7', '8', '9' }, { '*', '0', '#' } }; 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 }; //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 3x4 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 el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en la IDE de Arduino.
  • Conecta el Arduino Uno R4 al teclado 3x4 según el diagrama proporcionado.
  • Conecta el Arduino Uno R4 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Ve al icono Libraries en el lado izquierdo de la IDE de Arduino.
  • Escribe DIYables_Keypad en el cuadro de búsqueda y busca la biblioteca de keypad de DIYables.io.
  • Pulsa el botón Install para instalar la biblioteca de 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
3 6 9 4 * #
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 uso, destacamos dos teclas especiales:

  • Una tecla para empezar a introducir la contraseña o volver a introducirla. Por ejemplo, la tecla *.
  • Una tecla para terminar de introducir la contraseña. Por ejemplo, la tecla #.

La contraseña estará formada por las teclas restantes, excluyendo dos teclas especiales elegidas.

Cuando se pulsa una tecla.

  • Si la tecla no es '*' ni '#', añade la tecla a la contraseña que el usuario está ingresando.
  • Si la tecla es '#', verifica si la contraseña ingresada por el usuario coincide con la contraseña establecida, luego borra la contraseña ingresada.
  • Si la tecla es '*', borra la contraseña ingresada.

Teclado Numérico - 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-3x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //three columns char keys[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; 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}; //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 = "1234"; // change your password here String input_password; void setup(){ Serial.begin(9600); Serial.println("Keypad 3x4 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 } } }
  • Ejecuta el código proporcionado arriba.
  • Abre el Monitor Serial.
  • Ingresa las teclas "123456" y luego presiona "#".
  • Ingresa las teclas "1234" y luego presiona "#".
  • Verifica 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!