ESP32 S3 - Servomoteur
L'ESP32 S3 est un microcontrôleur performant qui rend le contrôle de servomoteurs simple en utilisant des signaux PWM et la bibliothèque ESP32Servo. Ce tutoriel vous accompagne à travers tout ce dont vous avez besoin — du câblage au code — afin que votre servomoteur balaie entre 0° et 180° en quelques minutes.
Ce que vous allez construire :
- Un servomoteur connecté à votre carte ESP32 S3
- Un mouvement de balayage de 0° à 180° et retour, piloté par du code Arduino
- Une configuration d'alimentation fiable qui protège votre carte contre les surintensités
- Une base pour des projets de robotique, d'automatisation, et de mécatronique

Matériel nécessaire
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Démarrage DIYables ESP32 S3 (ESP32 S3 inclus) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Note d'achat: Si vous utilisez plusieurs servomoteurs, nous recommandons d'utiliser le PCA9685 16 Channel PWM Servo Driver Module pour économiser les broches du MCU et faciliter le câblage.
À propos du servomoteur
Un servomoteur est un actionneur rotatif capable de tourner vers une position angulaire précise entre 0° et 180°, ce qui en fait un dispositif de sortie idéal pour la robotique et l'automatisation. Contrairement aux moteurs à courant continu ordinaires, un servomoteur intègre un mécanisme de rétroaction en interne, ce qui lui permet de maintenir l'angle commandé sans aucun circuit supplémentaire. Cette combinaison de précision et de simplicité explique pourquoi les servomoteurs s'associent si bien avec l'ESP32 S3.
Spécifications clés
Les servomoteurs hobby standards fonctionnent sous une alimentation 5 V et acceptent un signal PWM avec une période de 20 ms. La largeur d'impulsion détermine l'angle cible : environ 1 ms correspond à 0° et 2 ms correspond à 180°, avec 1,5 ms centrant l'arbre à 90°. La plupart des servomoteurs consomment entre 100 mA et 700 mA selon la charge, ce qui explique l'importance d'une planification d'alimentation soignée.
Brochage du servomoteur
Le servomoteur utilise une interface simple à trois fils qui se connecte directement à l'ESP32 S3 et à une source d'alimentation :
- Broche GND (marron ou noir) — se connecte à GND (0 V)
- Broche VCC (rouge) — se connecte à l'alimentation 5 V
- Broche Signal (jaune ou orange) — reçoit le signal de contrôle PWM d'une broche GPIO de l'ESP32 S3

Comment fonctionne le servomoteur
Schéma de câblage entre le servomoteur et l'ESP32 S3
Connectez le servomoteur à votre carte ESP32 S3 en utilisant le tableau ci-dessous. Le fil de signal va à la broche GPIO GPIO9, que l'ESP32 S3 pilote avec une forme d'onde PWM standard à 50 Hz générée par la bibliothèque ESP32Servo.
Notes de sécurité
Lorsque vous alimentez l'ESP32 S3 via USB, ne tirez pas l'alimentation du servomoteur depuis les broches Vin ou VBUS — la limite de courant du port USB est trop faible pour la plupart des servomoteurs en charge et peut endommager définitivement la carte. Pour tout ce qui dépasse de légers tests sur table, utilisez une alimentation externe 5 V dédiée pour le servomoteur et ne partagez que le rail GND avec l'ESP32 S3.
Lors de l'alimentation via le port USB :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche du servomoteur | Broche ESP32 S3 |
|---|---|
| GND (Marron/Noir) | GND |
| VCC (Rouge) | 5V |
| Signal (Jaune/Orange) | GPIO9 |
Lors de l'alimentation via la broche Vin avec une alimentation externe :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
※ Note:
AVERTISSEMENT DE SÉCURITÉ IMPORTANT : lorsque vous alimentez la carte ESP32 S3 via le port USB, n'alimentez PAS le servomoteur via la broche Vin ou la broche VBUS. Cela peut causer une consommation de courant excessive et peut endommager définitivement votre carte. Utilisez une alimentation externe pour le servomoteur si vous avez besoin de plus de puissance.
Code ESP32 S3
Le croquis suivant démontre un balayage continu de servomoteur sur l'ESP32 S3. Il utilise la bibliothèque ESP32Servo pour attacher le servomoteur à la broche GPIO9, puis fait avancer l'angle de 0° à 180° par pas de 1° avant d'inverser le sens, créant un mouvement de va-et-vient fluide qui se répète indéfiniment. Lire les commentaires en ligne dans le code vous donnera une explication ligne par ligne du fonctionnement de chaque partie.
Étapes rapides
- Nouveau sur ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
- Configurez Arduino IDE pour l'ESP32 S3 en suivant le guide installation du logiciel ESP32 S3.
- Câblez le servomoteur à l'ESP32 S3 selon le schéma de câblage ci-dessus.
- Connectez la carte ESP32 S3 à votre ordinateur avec un câble USB Type-C.
- Ouvrez Arduino IDE sur votre ordinateur.
- Sélectionnez la carte ESP32 S3 et son port COM correspondant sous Tools.
- Ouvrez le Library Manager en cliquant sur l'icône Libraries dans la barre latérale gauche.
- Tapez "ESP32Servo" dans le champ de recherche.
- Installez la bibliothèque de servomoteur de Kevin Harrington et John K. Bennett.
- Search for ESP32Servo created by Kevin Harrington,John K. Bennett and click the Install button.
- Copiez le code ci-dessus et collez-le dans un nouveau croquis Arduino IDE.
- Cliquez sur le bouton Upload pour compiler et téléverser le code sur l'ESP32 S3.

- Observez l'arbre du servomoteur tourner de 180° dans le sens horaire, puis s'inverser dans le sens anti-horaire, en se répétant en continu.
- Astuce pro : commencez avec des vitesses de balayage lentes lors des premiers tests d'un servomoteur — cela réduit la contrainte mécanique et facilite la détection de problèmes de câblage ou de calibration avant d'ajouter une charge.
Explication du code ligne par ligne
Le code ESP32 S3 ci-dessus contient une explication ligne par ligne. Merci de lire les commentaires dans le code !
Comment contrôler la vitesse d'un servomoteur
Applications et idées de projets
La combinaison ESP32 S3 et servomoteur ouvre la voie à un large éventail de réalisations pratiques, des simples démonstrations en classe aux systèmes mécatroniques complets :
- Bras robotique : construisez un bras robotique à plusieurs articulations utilisant plusieurs servomoteurs pour des opérations de préhension et de placement.
- Distributeur automatique pour animaux : utilisez une trappe contrôlée par servomoteur pour distribuer des portions mesurées de nourriture selon une minuterie.
- Serrure de porte intelligente : concevez un mécanisme de verrouillage contrôlé par WiFi, entraîné par un servomoteur sur l'ESP32 S3.
- Traqueur de panneau solaire : montez un servomoteur pour incliner un panneau vers le soleil en fonction d'un relevé de capteur de lumière.
- Support pan-tilt de caméra : construisez un support à deux axes pour une petite caméra, idéal pour des installations de surveillance ou de photographie.
- Arrosage automatique de plantes : utilisez une vanne à servomoteur pour libérer de l'eau quand un capteur d'humidité du sol le déclenche.
Regardez la vidéo pas à pas de ce projet ESP32 S3 ci-dessous.
Les instructions et le code source de la vidéo ci-dessus sont disponibles dans le tutoriel ESP32 S3 - Contrôler un servomoteur via le web
Mettez-vous au défi
Une fois que votre servomoteur balaie de façon fiable sur l'ESP32 S3, essayez ces défis pour approfondir votre compréhension du contrôle de moteur et de la programmation embarquée :
- Débutant : modifiez la plage de balayage pour se déplacer entre 45° et 135° au lieu de l'arc complet 0°–180°.
- Débutant : ajustez les valeurs de délai pour faire balayer le servomoteur plus vite ou plus lentement et observez l'effet sur la fluidité.
- Intermédiaire : ajoutez un bouton-poussoir afin que le servomoteur ne balaie que tant que le bouton est maintenu, puis maintienne sa position quand il est relâché.
- Intermédiaire : pilotez deux servomoteurs simultanément depuis le même croquis ESP32 S3 en utilisant des broches GPIO séparées.
- Avancé : construisez une interface web servie par l'ESP32 S3 qui vous permet de régler l'angle du servomoteur à distance via WiFi.
- Avancé : implémentez un contrôle par joystick en lisant un joystick analogique et en associant ses axes X/Y à des angles de servomoteur en temps réel.