servo-balayage.ino

Arduino Due · 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 Due (AT91SAM3X8E, ARM Cortex-M3 84 MHz) reliée par USB à son port « Programming ». Attention : logique 3,3 V, jamais 5 V sur les broches. 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 Due (Programming Port) » puis Téléverser ; le moniteur série tourne à la vitesse choisie dans le code.

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