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 LilyPad Arduino (ATmega168V/328V, 8 MHz, 3,3 V) avec ses pastilles à coudre, programmée par câble FTDI (breakout) et alimentée par 3,7 V (LiPo) ou 5 V sur V-REG. 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 « LilyPad Arduino » et le port FTDI, puis Téléverser. Le fil conductif crée des résistances de quelques ohms : gardez les courtes distances et isolez les croisements.
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);
}