Arduino Nano - Teclado numérico

Este tutorial le enseña cómo conectar un Arduino Nano a un teclado matricial 3x4 y 4x4, y cómo programarlo. Los tutoriales también proporcionan el método y el código Arduino para verificar la contraseña introducida por los usuarios desde el teclado.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Teclado 3x4 and 4x4 Kit
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

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

Un teclado numérico se compone de teclas dispuestas en una matriz. Cada botón individual se conoce como una tecla. Los teclados numéricos vienen en diversos estilos. Dos de los más utilizados en proyectos de bricolaje son el teclado numérico 3x4 (12 teclas) y el teclado numérico 4x4 (16 teclas).

La distribución de pines del teclado numérico

Los pines se dividen en dos categorías: filas y columnas.

  • Un teclado numérico 3x4 tiene siete pines: cuatro de ellos son pines de fila, etiquetados R1, R2, R3 y R4. Los otros tres son pines de columna, etiquetados C1, C2 y C3.
  • Un teclado numérico 4x4 tiene ocho pines: cuatro de ellos son pines de fila, etiquetados R1, R2, R3 y R4. Los otros cuatro son pines de columna, etiquetados C1, C2, C3 y C4.
Disposición de pines del teclado numérico

Diagrama de Cableado

Diagrama de cableado del teclado para Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Código de Arduino Nano

Código de Arduino Nano para teclado numérico 3x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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); } }

Código de Arduino Nano para teclado numérico 4x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; 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

  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “keypad” y localiza la biblioteca keypad creada por Mark Stanley y Alexander Brevig.
  • Luego, pulsa el botón Instalar para completar la instalación de la biblioteca keypad.
Librería de teclado numérico para Arduino Nano
  • 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 compilar y subir el código al Arduino Nano.
  • Abre el Monitor Serial.
  • Presiona algunas teclas en el teclado numérico.
  • Verifica el resultado 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 del teclado numérico es la introducción de contraseñas. Dos teclas especiales se utilizan para este propósito:

  • Una tecla para iniciar o reiniciar la entrada de la contraseña, como la tecla '*'
  • Una tecla para terminar la entrada de la contraseña, como la tecla '#'

La contraseña será una cadena formada por todas las teclas, excepto dos teclas especiales específicas.

Cuando se presiona una tecla:

  • Si la tecla no es "*" ni "#", añade la tecla a la cadena de contraseña introducida por el usuario.
  • Si la tecla es "#", compara la cadena introducida por el usuario con las contraseñas autorizadas para determinar si la contraseña introducida es correcta, luego borra la cadena de contraseña introducida por el usuario.
  • Si la tecla es "*", borra la cadena de contraseña introducida por el usuario.

Teclado numérico - Código de acceso

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-keypad */ #include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); const String password = "1234"; // 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("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 } } }

Pasos R\u00e1pidos

  • Ejecute el código anterior.
  • Abra el Monitor serie.
  • Pulse las teclas "123456" seguidas de la tecla "#".
  • Pulse las teclas "1234" seguidas de la tecla "#".
  • Consulte el resultado en el Monitor serie.
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!