Comprendre le composant
Cette page documente la bibliothèque logicielle. Pour le fonctionnement matériel d’un servomoteur (moteur, réducteur, signal, alimentation), voir la référence Le Servomoteur.
Piloter un servomoteur en position depuis le code
Bibliothèque Servo / ESP32Servo
Référence de la bibliothèque Servo (et ESP32Servo pour l'ESP32) : concepts, fonctions principales et différences entre les deux.
La bibliothèque Servo (et ESP32Servo pour les microcontrôleurs de type ESP32) permet de contrôler un servomoteur en générant automatiquement le signal PWM correspondant à un angle. Elle évite d’avoir à configurer manuellement les timers ou à écrire un code de génération d’impulsions.
Le signal PWM est une impulsion électrique périodique dont la largeur détermine l’angle du servomoteur :
Ces impulsions sont envoyées toutes les 20 ms (fréquence de 50 Hz). La bibliothèque génère ce signal à votre place à partir de l’angle demandé.
Servo.attach(pin)Lie un servomoteur à une broche du microcontrôleur.
Servo monServo;
monServo.attach(9); // Attache un servomoteur à la broche D9
Servo.write(angle)Positionne le servomoteur à un angle précis (entre 0° et 180°).
monServo.write(90); // Place le servo à 90°
Servo.writeMicroseconds(value)Contrôle plus fin en envoyant directement une largeur d’impulsion (en microsecondes).
monServo.writeMicroseconds(1500); // Impulsion pour 90° (position médiane)
Servo.detach()Déconnecte le servomoteur de la broche, libérant ainsi les ressources.
monServo.detach(); // Libère la broche utilisée par le servomoteur
L’API est identique ; seule l’implémentation bas niveau change.
| Servo (Arduino) | ESP32Servo | |
|---|---|---|
| Génération PWM | Timers matériels intégrés | Module LEDC (PWM LED Controller), signaux stables |
| Broches compatibles | Broches PWM spécifiques uniquement | Presque toutes, sauf réservées (RX/TX, GPIO0…) |