Bibliothèque Servo / ESP32Servo

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.

Créée par :  Adrien BRACQ & Rémi LACOMBE

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.

  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.

PWM et position

Le signal PWM est une impulsion électrique périodique dont la largeur détermine l’angle du servomoteur :

  • Une impulsion de 1 ms (~1000 µs) positionne le servo à .
  • Une impulsion de 1,5 ms (~1500 µs) le positionne au milieu (90°).
  • Une impulsion de 2 ms (~2000 µs) le positionne à 180°.

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é.

Fonctions principales

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

Différences entre Servo (Arduino) et ESP32Servo

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…)