🛠 Piloter un micro-servo moteur

Arduino Nano (Classic, ATmega328P) · intermediaire · Schéma : IMG-nano-classic-intermediaire-5-nanoc-servo.svg — micro-servo SG90 alimenté en 5 V, signal sur broche 9 de l'Arduino Nano, balayage 0-180 degrés

Objetivos

Controlar un micro-servo (tipo SG90) con la biblioteca Servo: el servo espera una trama de 20 ms cuyo pulso de 1 a 2 ms define el ángulo. Se programa un barrido de 0 a 180° y se aborda la correcta alimentación (los 5 V del Nano son suficientes para UN servo pequeño, nunca para varios).

Material

Código completo

// Balayage servo 0-180 degres sur la broche 9
#include <Servo.h>

Servo myservo;
uint8_t angle = 0;
bool sens = true;

void setup {
  myservo.attach(9);        // signal sur broche 9
  myservo.write(0);
  Serial.begin(9600);
}

void loop {
  angle += sens ? 5 : -5;   // pas de 5 degres
  if (angle >= 180) sens = false;
  if (angle <= 0)   sens = true;
  myservo.write(angle);     // 0..180
  Serial.println(angle);
  delay(50);                // vitesse du balayage
}

Verificación esperada

El brazo del servo barre regularmente de 0° a 180° y vuelve, suavemente, sin jitter excesivo ni zumbido permanente. El monitor serie muestra la consigna de ángulo creciente y luego decreciente. Al detenerse en una posición, el servo mantiene su par sin temblar en bucle.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales