ESP8266 - Moteur de servomoteur de potentiomètre

Ce tutoriel vous explique comment utiliser l'ESP8266 pour contrôler l'angle d'un moteur servo en fonction de la valeur entrée par un potentiomètre. Plus en détail, nous apprendrons :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Servo Motor
1×Potentiometer
1×Breadboard
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

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 moteur servo et du potentiomètre

Si vous ne connaissez pas les moteurs servo et les potentiomètres, y compris le brochage, le fonctionnement et la programmation, les tutoriels suivants vous seront utiles :

Diagramme de câblage

Schéma de câblage du potentiomètre du moteur servo ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Pour des raisons de simplicité, le schéma de câblage ci-dessus est utilisé à des fins de test ou d'apprentissage, et pour un moteur servo de faible couple. En réalité, nous recommandons fortement l'utilisation d'une alimentation externe pour le moteur servo. Le schéma de câblage ci-dessous illustre comment connecter le moteur servo à une source d'alimentation externe.

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

This image is created using Fritzing. Click to enlarge image

Comment programmer

  • Lisez la valeur du potentiomètre (variant de 0 à 1023)
int analog_value = analogRead(A0);
  • Convertissez-le en un angle compris entre 0 et 180 degrés.
int angle = map(analog_value, 0, 1023, 0, 180);
  • Contrôlez le servo à l'angle spécifié.
servo.write(angle);

Code ESP8266

/* * 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-potentiometer-servo-motor */ #include <Servo.h> Servo servo; // create servo object to control a servo void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); servo.attach(D5); // attaches the servo on pin D5 to the servo object } void loop() { // reads the value of the potentiometer (value between 0 and 1023) int analog_value = analogRead(A0); // scales it to use it with the servo (value between 0 and 180) int angle = map(analog_value, 0, 1023, 0, 180); // sets the servo position according to the scaled value servo.write(angle); // print out the value Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Angle: "); Serial.println(angle); delay(100); }

Étapes rapides

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

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Câblez les composants comme indiqué dans le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, par exemple NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
  • Connectez votre ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Lancez Arduino IDE, sélectionnez la carte et le port appropriés.
  • Copiez le code ci-dessus et ouvrez-le dans l'Arduino IDE.
  • Cliquez sur le bouton Upload dans Arduino IDE pour transférer le code vers l'ESP8266.
Téléversement de code Arduino IDE
  • Ouvrez le moniteur série
  • Tournez le potentiomètre
  • Vérifiez la rotation du moteur servo
  • Consultez le résultat dans le moniteur série
COM6
Send
Analog: 0, Angle: 0 Analog: 85, Angle: 14 Analog: 201, Angle: 35 Analog: 286, Angle: 50 Analog: 370, Angle: 65 Analog: 444, Angle: 78 Analog: 521, Angle: 91 Analog: 608, Angle: 106 Analog: 690, Angle: 121 Analog: 793, Angle: 139 Analog: 907, Angle: 159 Analog: 1023, Angle: 180 Analog: 1023, Angle: 180
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explication du code

Découvrez l'explication détaillée dans les commentaires du code source !

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!