Arduino Nano ESP32 - Teclado

Este tutorial proporciona instrucciones sobre cómo usar Arduino Nano ESP32 con un teclado numérico. En detalle, aprenderemos:

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Teclado 3x4 and 4x4 Kit
1×(Alternativo) Teclado 3x4
1×(Alternativo) Teclado 4x4
1×(Opcional) Conector de Alimentación DC
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del teclado numérico

teclado numérico

El teclado numérico está compuesto por un grupo de botones dispuestos en una matriz (filas y columnas). Un botón representa una tecla. Existen muchos tipos de teclados numéricos. El teclado numérico 3x4 (12 teclas) y el teclado numérico 4x4 (16 teclas) son los dos más utilizados en proyectos de bricolaje.

Pinout del teclado numérico

Los pines del teclado numérico se clasifican en dos grupos: fila y columna.

  • El teclado numérico 3x4 tiene 7 pines:
    • R1, R2, R3, R4: pines de fila
    • C1, C2, C3: pines de columna
  • El teclado numérico 4x4 tiene 8 pines:
    • R1, R2, R3, R4: pines de fila
    • C1, C2, C3, C4: pines de columna
    Pinout del teclado numérico

    Cómo funciona el teclado numérico

    Ver cómo funciona el teclado numérico

Diagrama de cableado entre el teclado numérico y Arduino Nano ESP32

Diagrama de cableado del teclado Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano ESP32

Teclado numérico 3x4

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Teclado numérico 4x4

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3, D2}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Pasos R\u00e1pidos

  • Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en Arduino IDE.
  • Abre el Gestor de Bibliotecas haciendo clic en el icono de la barra de navegación izquierda de Arduino IDE
  • Escribe keypad en la caja de búsqueda y luego busca la biblioteca keypad de Mark Stanley, Alexander Brevig
  • Haz clic en el botón Instalar para instalar la biblioteca keypad.
Librería de teclado para Arduino Nano ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Compila y carga el código en la placa Arduino Nano ESP32 haciendo clic en el botón Cargar del IDE de Arduino
  • Abre el Monitor Serial en el IDE de Arduino
Cómo abrir el monitor serie en el IDE de Arduino
  • Pulsa algunas teclas en el teclado numérico
  • Ver el resultado en el Monitor Serial
COM6
Send
1 2 3 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Teclado numérico y contraseña

El teclado numérico se utiliza ampliamente para autenticar a alguien mediante una contraseña. En estos tutoriales, una contraseña válida está predefinida en el código. Cuando un usuario introduce la contraseña desde el teclado numérico, se compara con la contraseña predefinida:

  • Si coincide, se concede el acceso.
  • Si no coincide, se define el acceso.

Para usar una contraseña con el teclado numérico, especificamos dos teclas especiales:

  • Una tecla para comenzar a introducir la contraseña. Por ejemplo, la tecla "*"
  • Una tecla para terminar de introducir la contraseña. Por ejemplo, la tecla "#"

La contraseña introducida por un usuario se almacenará en una cadena, llamada la cadena de contraseña introducida. Cuando se presiona una tecla:

  • Si una tecla ingresada es "*", limpia la cadena de contraseña ingresada para empezar una nueva contraseña
  • Si una tecla ingresada NO es "*" o "#", añade la cadena de contraseña ingresada.
  • Si una tecla ingresada es "#", compara la cadena de contraseña ingresada con la contraseña predefinida.

Teclado numérico - Código de contraseña

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // change your password here String input_password; void setup() { Serial.begin(9600); 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("The password is correct, ACCESS GRANTED!"); // DO YOUR WORK HERE } else { Serial.println("The password is incorrect, ACCESS DENIED!"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }
  • Ejecuta el código anterior
  • Abre el Monitor Serial en el IDE de Arduino
Cómo abrir el monitor serie en el IDE de Arduino
  • Presiona las teclas "123456" y pulsa "#"
  • Presiona las teclas "7890" y pulsa "#"
  • Consulta el resultado en el Monitor Serial. A continuación se muestra:
COM6
Send
The password is incorrect, ACCESS DENIED! The password is correct, ACCESS GRANTED!
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!