servo-balayage.ino
La bibliothèque Servo génère l'impulsion de commande (1 à 2 ms) et balaie l'angle de part en part. Alimenter un servo de taille moyenne par une source 5 V dédiée évite les redémarrages dus aux pics de courant.
Matériel requis
Une Arduino Duemilanove (ATmega168 ou 328P, 16 MHz, 5 V) avec son câble mini-USB-B ; le port série apparaît après installation du driver FTDI. 1 servo standard (SG90/MG90S) + alimentation 5 V externe conseillée.
Branchement
Orange (signal) sur la broche 3, rouge sur +5 V, marron sur GND (masse commune avec la carte).
Fonctionnement
myservo.write(angle) envoie l'impulsion de largeur proportionnelle à l'angle ; le pas de 5° toutes les 50 ms donne un mouvement régulier. Dans l'Arduino IDE, choisissez « Arduino Duemilanove » (ou « Diecimila » pour les très vieilles cartes) et le port FTDI, puis Téléverser. L'ATmega168 n'a que 14 Ko pour le sketch.
Pour aller plus loin
Ajoutez un potentiomètre sur A0 pour un asservissement position → servo (radar de robot).
servo-balayage.ino
// Balayage servo 0..180 degres avec la bibliotheque Servo.
#include <Servo.h>
Servo myservo;
int angle = 0;
int sens = 1;
void setup() {
myservo.attach(3); // broche avec pin signal du servo
Serial.begin(9600);
}
void loop() {
myservo.write(angle);
angle += sens * 5;
if (angle >= 180 || angle <= 0) sens = -sens;
delay(50);
}