🛠 Piloter un servo moteur avec le PWM et un potentiomètre

Arduino Micro · intermediaire · Schéma : IMG-micro-intermediaire-3-micro-pwm-servo.svg — Servomoteur alimenté par une source externe 5V reliée à GND commun, signal sur la broche 9 d'une Arduino Micro, potentiomètre sur A0, alimentation Vin 7-12V conseillée

Objectifs

Piloter un servomoteur avec la bibliothèque Servo sur une broche PWM du Micro (3, 5, 6, 9, 10, 11 ou 13) et le commander au potentiomètre, en gérant correctement l'alimentation : le Micro se nourrit sur Vin (7-12 V) ou l'USB, et la broche 3V3 ne fournit que 50 mA.

Matériel

Code complet

// Servo sur broche PWM 9, commande par potentiomètre sur A0.
#include <Servo.h>

const uint8_t KNOB = A0;
const uint8_t PIN_SERVO = 9;   // broche PWM : 3,5,6,9,10,11,13
Servo monServo;

void setup {
  monServo.attach(PIN_SERVO);   // signal PWM 50 Hz
  Serial.begin(9600);
}

void loop {
  int brut = analogRead(KNOB);          // 0..1023
  uint8_t angle = map(brut, 0, 1023, 0, 180);
  monServo.write(angle);
  Serial.println(angle);
  delay(20);
}

Vérification attendue

Le bras du servo suit le potentiomètre entre 0 et 180 degrés, sans à-coups. En fin de course, le servo bourdonne légèrement puis se tait une fois l'angle maintenu.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels