ESP8266 - Bouton - Moteur Servo

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

Le processus ci-dessus est répété encore et encore.

Le tutoriel comporte deux sections :

Préparation du matériel

1×ESP8266 NodeMCU
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Push Button
1×Optionnel: Bouton poussoir pour montage sur panneau
1×Module bouton poussoir
1×Servo-moteur
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: 5V Power Adapter for ESP8266
1×Recommandé: Carte d'extension à bornier à vis pour ESP8266
1×Recommandé: Répartiteur d'alimentation pour ESP8266 Type-C

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 servo-moteur et du bouton

Si vous ne connaissez pas les moteurs servo et les boutons (y compris les brochages, leur fonctionnement et comment les programmer), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du bouton moteur servo ESP8266 NodeMCU

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

Pour plus d'informations, consultez Brochage ESP8266. et Comment alimenter l'ESP8266..

Veuillez noter que le schéma de câblage présenté ci-dessus convient uniquement à un servomoteur à faible couple. Si le moteur vibre au lieu de tourner, une source d'alimentation externe doit être utilisée pour fournir plus de puissance au servomoteur. Ci-dessous est présenté le schéma de câblage avec une source d'alimentation externe pour le servomoteur.

Schéma de câblage de l'alimentation électrique externe du moteur servo ESP8266 NodeMCU

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

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

Code ESP8266 - Bouton contrôle le moteur servo sans anti-rebond

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-button-servo-motor */ #include <Servo.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 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 prev_button_state; // The previous state of button int button_state; // The current state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if(prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // rotate the servo motor to the angle position servo.write(angle); } }

Étapes rapides

Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel Installation du logiciel ESP8266. si c'est la première fois que vous utilisez l'ESP8266.
  • Câblez les composants comme indiqué dans le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Connectez l'ESP8266 NodeMCU à l'ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, par exemple (e.g. NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Copiez le code ci-dessus et ouvrez-le dans l'Arduino IDE.
  • Cliquez sur le bouton Upload dans l'Arduino IDE pour compiler et téléverser le code sur l'ESP8266.
  • Pressez le bouton plusieurs fois.
  • Vérifiez les changements dans le moteur servo.

※ Note:

En pratique, le code mentionné ci-dessus ne fonctionne pas toujours correctement. Pour garantir son bon fonctionnement, nous devons ESP8266 - Bouton - Anti-rebond.. Débouncer le bouton peut être difficile pour ceux qui sont nouveaux sur ESP8266. Heureusement, la bibliothèque ezButton simplifie grandement ce processus.

Code ESP8266 - Contrôle du servomoteur avec un bouton et anti-rebond

Pourquoi est-il nécessaire de supprimer les rebonds ? Consultez le tutoriel ESP8266 - Bouton - Anti-rebond. pour plus d'informations.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-button-servo-motor */ #include <Servo.h> #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define SERVO_PIN D5 // The ESP8266 pin connected to servo motor's pin ezButton button(BUTTON_PIN); // create ezButton object for 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 the Serial to communicate with the Serial Monitor. 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()) { // change angle of servo motor if (angle == 0) angle = 90; else if (angle == 90) angle = 0; // rotate the servo motor to the angle position Serial.print("The button is pressed => rotate servo to "); Serial.print(angle); Serial.println("°"); servo.write(angle); } }

Étapes rapides

  • Installez la bibliothèque ezButton. Consultez Comment faire pour les instructions.
  • Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour charger le code sur l'ESP8266.
  • Appuyez plusieurs fois sur le bouton.
  • Observez les changements dans le moteur servo.

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 !