🛠 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

Objetivos

Controlar un servomotor con la biblioteca Servo en un pin PWM del Micro (3, 5, 6, 9, 10, 11 o 13) y comandarlo mediante un potenciómetro, gestionando correctamente la alimentación: el Micro se alimenta por Vin (7-12 V) o por USB, y el pin 3V3 solo proporciona 50 mA.

Material

Código completo

// Servo sur broche PWM 9, commande par potentiometre 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);
}

Verificación esperada

El brazo del servo sigue al potenciómetro entre 0 y 180 grados, sin tirones. En el final del recorrido, el servo zumba ligeramente y luego se calla una vez mantenido el ángulo.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales