servo-balayage.ino

Arduino Duemilanove — Fiche carte · Fichier : servo-balayage.ino · Langage : Arduino · Usage : Faire balayer un servo-moteur de 0 à 180 degrés

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);
}

← Retour à la fiche