ESP32 - MG996R

Dans ce tutoriel, nous allons apprendre à utiliser le servo moteur à couple élevé MG996R avec un ESP32.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×MG996R Servo Motor
1×Jumper Wires
1×(Recommended) ESP32 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 Servomoteur

Le moteur servo MG996R est un moteur servo à couple élevé capable de soulever jusqu'à 15 kg de poids. Ce moteur peut faire pivoter sa manette de 0° à 180°, offrant un contrôle précis de la position angulaire. Pour des informations de base sur les moteurs servo, veuillez consulter le tutoriel ESP32 - Moteur Servo.

Brochage

Le moteur servo MG996R utilisé dans cet exemple comprend trois broches :

  • Broche VCC : (généralement rouge) doit être connectée à VCC (4,8V – 7,2V)
  • Broche GND : (généralement noire ou marron) doit être connectée à GND (0V)
  • Broche de signal : (généralement jaune ou orange) reçoit le signal de commande PWM d'une broche de l'ESP32.
Le câblage du moteur servo MG996R

Diagramme de câblage

Étant donné que le MG996R est un servo moteur à couple élevé, il consomme beaucoup de puissance. Nous ne devons pas alimenter ce moteur via la broche 5v de l'ESP32. Au lieu de cela, nous devons utiliser l'alimentation externe pour le servo moteur MG996R.

Schéma de câblage du moteur servo MG996R ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Code ESP32

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-mg996r */ #include <Servo.h> Servo servo; // créer un objet servo pour contrôler un servo void setup() { servo.attach(9); // attache le servo sur la broche 9 à l'objet servo servo.write(0); // tourne lentement le servo à 0 degrés immédiatement } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // tourne lentement de 0 degrés à 180 degrés, degré par degré // en incréments de 1 degré servo.write(angle); // contrôler le servo pour aller à la position dans la variable 'angle' delay(10); // attend 10ms pour que le servo atteigne la position } for (int angle = 180; angle >= 0; angle -= 1) { // tourne de 180 degrés à 0 degrés, degré par degré servo.write(angle); // contrôler le servo pour aller à la position dans la variable 'angle' delay(10); // attend 10ms pour que le servo atteigne la position } }

Étapes rapides

  • Si c'est la première fois que vous utilisez l'ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Effectuez le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, Module de développement ESP32) et le port COM.
  • Cliquez sur l'icône Libraries dans la barre de gauche de l'Arduino IDE.
  • Tapez ServoESP32 dans la boîte de recherche, puis recherchez la bibliothèque servo par Jaroslav Paral. Veuillez noter que les versions 1.1.1 et 1.1.0 comportent des bugs. Veuillez choisir une version différente.
  • Cliquez sur le bouton Install pour installer la bibliothèque du moteur servo pour ESP32.
Bibliothèque de moteur servo ESP32
  • Connectez l'ESP32 au PC via un câble USB
  • Ouvrez Arduino IDE, sélectionnez la carte et le port appropriés
  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
  • Cliquez sur le bouton Upload dans Arduino IDE pour téléverser le code sur l'ESP32
IDE Arduino - Comment télécharger du code
  • Voyez le résultat : le moteur servo tourne lentement de 0 à 180° puis revient lentement de 180 à 0°.

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

Comment contrôler la vitesse du moteur servo

En utilisant les fonctions map() et millis(), nous pouvons contrôler la vitesse du moteur servo de manière fluide sans bloquer d'autres codes.

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-mg996r */ #include <Servo.h> Servo myServo; unsigned long MOVING_TIME = 3000; // le temps de déplacement est de 3 secondes unsigned long moveStartTime; int startAngle = 30; // 30° int stopAngle = 90; // 90° void setup() { myServo.attach(9); moveStartTime = millis(); // commencer à se déplacer // TODO: autre code } void loop() { unsigned long progress = millis() - moveStartTime; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle); myServo.write(angle); } // TODO: autre code }

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!