🛠 Piloter un servo avec le PWM (LEDC)

Arduino Nano ESP32 · intermediaire · Schéma : IMG-nano-esp32-intermediaire-3-nanoesp32-pwm-servo.svg — Servo SG90 alimenté par une source 5 V externe, signal sur D9, masse commune avec la carte.

Objectifs

Commander un micro-servo avec la bibliothèque Servo (construite sur le contrôleur PWM LEDC de l'ESP32-S3) et lui faire balayer 0 à 180°. Comprendre l'alimentation : la carte n'a aucune broche 5 V, alors qu'un servo standard fonctionne en 4,8-6 V.

Matériel

Code complet

#include <Servo.h>

Servo balai;
const uint8_t PIN_SERVO = 9;   // D9, PWM via LEDC dans le core Arduino

void setup {
  Serial.begin(115200);
  balai.attach(PIN_SERVO);     // PWM 50 Hz, standard servo
}

void loop {
  for (int a = 0; a <= 180; a += 15) { balai.write(a); delay(300); }
  for (int a = 180; a >= 0; a -= 15) { balai.write(a); delay(300); }
}

Vérification attendue

Le bras du servo balaie 0 → 180 → 0° en boucle fluide. Alimenté depuis une source externe 5 V avec masse commune, le mouvement est complet sans redémarrage de la carte ni scintillement de la LED USB.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels