Arduino UNO R4 - Bouton - Servomoteur

Dans ce tutoriel, nous apprendrons comment contrôler un servomoteur avec un bouton en utilisant une carte Arduino Uno R4. Appuyer sur le bouton fera tourner le servomoteur jusqu'à 90 degrés, et appuyer à nouveau sur le bouton le ramènera à 0 degré. Ce processus se répète à chaque fois que le bouton est pressé.

Le tutoriel est divisé en deux sections :

Ce projet est idéal pour les débutants afin de comprendre le contrôle des servomoteurs, les entrées de bouton et les techniques d'anti-rebond avec Arduino Uno R4.

À propos du servomoteur et du bouton

Si vous n'êtes pas familiarisé(e) avec les servomoteurs et les boutons, y compris leur brochage, leur fonctionnement ou comment les programmer, veuillez vous référer aux tutoriels suivants pour plus d'informations.

Diagramme de câblage

Schéma de câblage Arduino UNO R4 : bouton et servomoteur

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

Voir Comment alimenter l'Arduino UNO R4..

Code Arduino UNO R4 - Bouton de commande du servomoteur sans anti-rebond

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-button-servo-motor */ #include <Servo.h> #define BUTTON_PIN 7 // The Arduino Uno R4 pin connected to button's pin #define SERVO_PIN 9 // The Arduino Uno R4 pin connected to servo motor's pin Servo servo; // create servo object to control a servo int angle = 0; // the current angle of servo motor int lastButtonState; // the previous state of button int currentButtonState; // the current state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); currentButtonState = digitalRead(BUTTON_PIN); } void loop() { lastButtonState = currentButtonState; // save the last state currentButtonState = digitalRead(BUTTON_PIN); // read new state if(lastButtonState == HIGH && currentButtonState == LOW) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Reliez les composants selon le schéma fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le port COM.
  • Copiez et collez le code ci-dessus dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour transférer le code vers l'Arduino UNO R4.
  • Appuyez sur le bouton à plusieurs reprises.
  • Observez le mouvement du servomoteur.

※ Note:

Parfois le code donné ne fonctionne pas correctement. Pour s'assurer qu'il fonctionne toujours correctement, nous devons utiliser l'anti-rebond des boutons. L'anti-rebond des boutons peut être difficile pour les débutants. Cependant, grâce à l'aide de la bibliothèque ezButton, cela devient beaucoup plus facile.

Code Arduino UNO R4 - Contrôle par bouton du servomoteur avec anti-rebond

Pourquoi l'anti-rebond est-il important ? ⇒ voir Arduino UNO R4 - Bouton - anti-rebond.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-uno-r4/arduino-uno-r4-button-servo-motor */ #include <Servo.h> #include <ezButton.h> #define BUTTON_PIN 7 // The Arduino Uno R4 pin connected to button's pin #define SERVO_PIN 9 // The Arduino Uno R4 pin connected to servo motor's pin ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; Servo servo; // create servo object to control a servo int angle = 0; // the current angle of servo motor void setup() { Serial.begin(9600); // initialize serial button.setDebounceTime(50); // set debounce time to 50 milliseconds servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Étapes rapides

  • Installez la bibliothèque ezButton. Voir Comment faire
  • Copiez le code et ouvrez-le dans l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour transférer le code vers l'Arduino UNO R4
  • Appuyez sur le bouton à plusieurs reprises
  • Observez comment le servomoteur bouge

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 !