Arduino - Clavier - Moteur Servo

Dans ce tutoriel, nous allons apprendre à utiliser ensemble un clavier, un moteur servo et un Arduino :

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Keypad 3x4 and 4x4 Kit
1×(Alternative) Keypad 3x4
1×(Alternative) Keypad 4x4
1×Servo Motor
1×5V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du clavier et du servo-moteur

Si vous ne connaissez pas le clavier et le servo-moteur (brochage, fonctionnement, programmation...), renseignez-vous à leur sujet dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage du servo-moteur à clavier Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino - fait tourner le moteur Servo si le mot de passe est correct

Le code ci-dessous oriente le moteur servo à 90° pendant 5 secondes si le mot de passe est correct. Après 5 secondes, il ramène le moteur servo à 0°.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-keypad-servo-motor */ #include <Keypad.h> #include <Servo.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns #define SERVO_PIN A0 // // the Arduino pin, which connects to the servo motor Servo servo; // servo motor char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; 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, 2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // 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 lastTime; 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° lastTime = 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 password is correct, rotating Servo Motor to 90°"); angle = 90; servo.write(angle); lastTime = millis(); } else { Serial.println("The password is incorrect, try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } if (angle == 90 && (millis() - lastTime) > 5000) { // 5 seconds angle = 0; servo.write(angle); Serial.println("Rotating Servo Motor to 0°"); } }

Étapes rapides

  • Connectez Arduino au PC via un câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Naviguez vers l'icône Libraries sur la barre gauche de l'IDE Arduino.
  • Recherchez "keypad", puis trouvez la bibliothèque keypad de Mark Stanley, Alexander Brevig
  • Cliquez sur le bouton Install pour installer la bibliothèque keypad.
Bibliothèque de clavier Arduino
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code vers Arduino
Téléversement de code Arduino IDE
  • Appuyez sur 12345#
  • Appuyez sur 5642B#
  • Consultez le résultat sur le moniteur série et l'état du moteur servo
COM6
Send
The password is incorrect, try again The password is correct, rotating Servo Motor to 90° Rotating Servo Motor to 0°
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explication du code

Les mots de passe autorisés sont prédéfinis dans le code Arduino.

Une chaîne est utilisée pour stocker le mot de passe saisi par les utilisateurs, appelée input_password. Sur le clavier, deux touches (* et #) sont utilisées à des fins spéciales : effacer le mot de passe et terminer le mot de passe. Lorsqu'une touche du clavier est pressée :

  • Si la touche pressée n'est pas l'une des deux touches spéciales, elle est ajoutée à input_password
  • Si la touche pressée est *, input_password est effacé. Vous pouvez l'utiliser pour commencer ou recommencer à saisir le mot de passe
  • Si la touche pressée est # :
    • Le input_password est comparé aux mots de passe prédéfinis. S'il correspond à l'un des mots de passe prédéfinis, faites tourner le moteur servo à 90°.
    • Que le mot de passe soit correct ou non, le input_password est effacé pour la prochaine saisie

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!