Arduino Nano - Clavier - Moteur Servo

Ce tutoriel vous explique comment utiliser un Arduino Nano et un clavier pour contrôler un moteur servo. En détail :

Le code Arduino Nano peut accepter plusieurs mots de passe.

Préparation du matériel

1×Official Arduino Nano
1×Alternativement: DIYables ATMEGA328P Nano Development Board
1×Câble USB A vers Mini-B
1×Clavier
1×Servo-moteur
1×Adaptateur secteur 5V
1×Fils de connexion
1×Optionnel: Connecteur d'alimentation DC
1×Optionnel: 9V Power Adapter for Arduino Nano
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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 servomoteur

Si vous n'êtes pas familiarisé avec le clavier et le moteur servo (y compris le brochage, le fonctionnement et la programmation), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du servomoteur à clavier Arduino Nano

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Il convient de noter que le schéma de câblage illustré ci-dessus est uniquement adapté à un servomoteur à faible couple. Si le moteur vibre au lieu de tourner, une source d'alimentation externe doit être utilisée pour faire fonctionner le servomoteur. Le schéma de câblage suivant montre comment connecter le servomoteur à une source d'alimentation externe.

Schéma de câblage du servomoteur à clavier Arduino Nano

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter un Arduino Nano..

Veuillez ne pas oublier de connecter le GND de l'alimentation externe au GND de l'Arduino.

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

Si le mot de passe est correct, le servomoteur sera réglé à 90° pendant 5 secondes. Après cette période, il sera tourné à 0°.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-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°"); } }

Étapes rapides

  • Connectez un câble USB entre l'Arduino Nano et le PC.
  • Ouvrez l'Arduino IDE, sélectionnez la carte et le port appropriés.
  • Cliquez sur l'icône Libraries dans la barre gauche de l'Arduino IDE.
  • Recherchez "keypad" et localisez la bibliothèque de clavier créée par Mark Stanley et Alexander Brevig.
  • Ensuite, appuyez sur le bouton Install pour terminer l'installation de la bibliothèque de clavier.
Bibliothèque de pavé numérique Arduino Nano
  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino Nano.
Téléversement de code avec l'IDE Arduino
  • Entrez 12345# sur le clavier, suivi de 09876#.
  • Consultez le moniteur série et observez l'état du moteur servo.
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  

Explication du code

Les mots de passe valides sont prédéfinis dans le code de l'Arduino Nano. Une chaîne, appelée input_password, sert à stocker le mot de passe saisi par les utilisateurs. 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 est pressée :

  • Si la touche n'est pas l'une des deux touches spéciales, elle est ajoutée à input_password.
  • Si la touche est *, le input_password est effacé. Cela peut être utilisé pour démarrer ou redémarrer la saisie du mot de passe.
  • Si la touche est # :
    • L'Arduino Nano compare input_password avec les mots de passe pré-définis. S'il correspond à l'un d'eux, le moteur servo est tourné à 90°.
    • Que le mot de passe soit correct ou non, le input_password est effacé pour la prochaine saisie.
    • Après un délai d'attente, l'Arduino Nano tourne le moteur servo à 0°.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !