Arduino Nano - teclado numérico - servomotor

Este tutorial te enseña cómo usar Arduino Nano y un teclado numérico para controlar un servomotor. En detalle:

El código de Arduino Nano puede aceptar varias contraseñas.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Teclado
1×Servomotor
1×Adaptador de Corriente 5V
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
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 servomotor

Si no estás familiarizado con un teclado numérico y un servomotor (incluido el esquema de pines, su funcionamiento y su programación), los siguientes tutoriales pueden ayudarte:

Diagrama de Cableado

Diagrama de cableado para Arduino Nano, teclado numérico y motor servo

This image is created using Fritzing. Click to enlarge image

Es importante señalar que el diagrama de cableado mostrado arriba es adecuado únicamente para un motor servo de bajo par. En caso de que el motor vibre en lugar de girar, debe utilizarse una fuente de alimentación externa para hacer funcionar el motor servo. El siguiente diagrama de cableado demuestra cómo conectar el motor servo a una fuente de alimentación externa.

Diagrama de cableado de Arduino Nano para teclado numérico y motor servo

This image is created using Fritzing. Click to enlarge image

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

Por favor, no olvide conectar la masa de la fuente externa a la masa de Arduino.

Código para Arduino Nano - gira un servomotor si la contraseña es correcta

Si la contraseña es correcta, el servomotor se establecerá en 90° durante 5 segundos. Después de este periodo, se moverá a 0°.

/* * 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-servo-motor */ #include <Keypad.h> #include <Servo.h> #define SERVO_PIN 10 // // The Arduino Nano pin connected to the servo motor Servo servo; // servo motor 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); 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; int angle = 0; // The current angle of servo motor unsigned long prev_time; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed servo.attach(SERVO_PIN); servo.write(0); // rotate servo motor to 0° prev_time = millis(); } 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! Rotating Servo Motor to 90°"); angle = 90; servo.write(angle); prev_time = millis(); } 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 } } if (angle == 90 && (millis() - prev_time) > 5000) { // 5 seconds angle = 0; servo.write(angle); Serial.println("Rotating Servo Motor to 0°"); } }

Pasos R\u00e1pidos

  • Conecta un cable USB entre el Arduino Nano y la PC.
  • Abre el IDE de Arduino, selecciona la placa correcta y el puerto correcto.
  • 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, presiona 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 y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para enviar el código al Arduino Nano.
Subir código al IDE de Arduino
  • Introduzca 12345# en el teclado numérico, seguido de 09876#.
  • Verifique el monitor de serie y observe el estado del servomotor.
COM6
Send
The incorrect password! try again The correct password! Rotating Servo Motor to 90° Rotating Servo Motor to 0°
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explicación del código

Las contraseñas válidas están predefinidas en el código de Arduino Nano. Una cadena, denominada input_password, se utiliza para almacenar la contraseña ingresada por los usuarios. En el teclado, dos teclas (* y #) se utilizan para fines especiales: borrar la contraseña y terminarla. Cuando se presiona una tecla:

  • Si la tecla no es una de las dos teclas especiales, se añade a input_password.
  • Si la tecla es *, se borra input_password. Esto se puede usar para iniciar o reiniciar la entrada de la contraseña.
  • Si la tecla es #:
    • El Arduino Nano compara input_password con las contraseñas predefinidas. Si coincide con alguna de ellas, el servomotor gira a 90°.
    • Independientemente de si la contraseña es correcta o no, input_password se borra para la siguiente entrada.
    • Después de un tiempo de espera, Arduino Nano gira el servomotor a 0°.

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!