Arduino Nano - teclado numérico - relé

Este tutorial te enseña cómo usar un teclado numérico y Arduino Nano para controlar un relé. Cuando el usuario introduce la contraseña correcta en el teclado numérico, el Arduino Nano activará el relé.

El tutorial también proporciona el código de Arduino Nano que activa un relé durante una duración determinada y luego lo desactiva sin usar la función delay(). Además, el código de Arduino Nano es capaz de manejar múltiples contraseñas.

Conectando un relé a una Cerradura electromagnética, una Cerradura de solenoide, un Actuador lineal, un Elemento calefactor, una Bomba, o un Ventilador ... Podemos controlarlos usando un teclado.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Teclado
1×Relé
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

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 y del relé

Si no está familiarizado con el teclado numérico y el relé (incluyendo la disposición de pines, su funcionamiento, la programación, etc.), los siguientes tutoriales pueden ayudar:

Diagrama de Cableado

Diagrama de cableado del relé y del teclado numérico con 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: encender el relé si la contraseña es correcta

Si la contraseña es correcta, los siguientes códigos activarán un relé.

/* * 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-relay */ #include <Keypad.h> const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //four columns const int RELAY_PIN = 2; // The Arduino Nano pin connected to the IN pin of relay module const byte pin_rows[ROW_NUM] = {10, 9, 8, 7}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {6, 5, 4}; // 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_1 = "4321"; // change your password here const String password_2 = "09876"; // change your password here const String password_3 = "9765"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed pinMode(RELAY_PIN, OUTPUT); // initialize pin as an output. digitalWrite(RELAY_PIN, LOW); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); digitalWrite(RELAY_PIN, HIGH); } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

Pasos R\u00e1pidos

  • Conecte un cable USB al Arduino Nano y al PC.
  • Abra el IDE de Arduino, seleccione la placa y el puerto correctos.
  • Haga clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busque “keypad” y localice la biblioteca keypad creada por Mark Stanley y Alexander Brevig.
  • Luego, presione el botón Instalar para instalar la biblioteca keypad.
Biblioteca de teclado para Arduino Nano
  • Busca “ezOutput”, luego localiza la biblioteca ezOutput de ArduinoGetStarted.
  • Presiona el botón Instalar para instalar la biblioteca ezOutput.
Biblioteca de salida para Arduino Nano
  • Copia el código y ábrelo en el IDE de Arduino.
  • Luego, pulsa el botón Subir en el IDE de Arduino para compilar y cargar el código al Arduino Nano.
Subir código al IDE de Arduino
  • Introduce 1234 seguido de la # tecla y luego 9765 seguido de la # tecla.
  • Verifica el resultado en el Monitor Serial y observa el estado del relé.
COM6
Send
The incorrect password! try again The correct password! Turning ON relay
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explicación del código

Las contraseñas autorizadas están predefinidas en el código de Arduino Nano. Se utiliza una cadena para almacenar la contraseña introducida por los usuarios, a la que se refiere como la cadena de entrada. En el teclado numérico, dos teclas (* y #) se utilizan para fines especiales: borrar la contraseña y terminarla. Cuando se pulsa una tecla en el teclado numérico:

  • Si la tecla pulsada no es una de las dos teclas especiales, se añade a la cadena de entrada.
  • Si la tecla pulsada es *, la cadena de entrada se borra. Esto puede usarse para comenzar o reiniciar la entrada de la contraseña.
  • Si la tecla pulsada es #:
    • El Arduino Nano verifica la contraseña introducida comparando la cadena de entrada con las contraseñas predefinidas. Si coincide con alguna de las contraseñas predefinidas, el relé se enciende.
    • Independientemente de si la contraseña es correcta o no, la cadena de entrada se borra para la siguiente entrada.

Código para Arduino Nano - encender un relé durante un período de tiempo si la contraseña es correcta

Si la contraseña es correcta, el relé se activará durante 5 segundos. Después de ese período de tiempo, el relé se desactivará.

/* * 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-relay */ #include <Keypad.h> #include <ezOutput.h> #define RELAY_ON_TIME 5000 // in milliseconds const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //four columns const int RELAY_PIN = 2; // The Arduino Nano pin connected to the IN pin of relay module const byte pin_rows[ROW_NUM] = {10, 9, 8, 7}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {6, 5, 4}; // 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); ezOutput relay(RELAY_PIN); const String password_1 = "4321"; // change your password here const String password_2 = "09876"; // change your password here const String password_3 = "9765"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed relay.low(); } void loop() { relay.loop(); // MUST call the loop() function first char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Turning ON relay"); relay.low(); // set low before making a high pulse relay.pulse(RELAY_ON_TIME); // turn on relay in RELAY_ON_TIME duration and then turn off } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } }

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!