« Utilisation d'un servo moteur » : différence entre les versions

De Fab Lab Sud31-Val d'Ariège
Aller à la navigation Aller à la recherche
(→‎Code source : Correction)
m (Administrateur a déplacé la page Utilisation d'un servo analogique vers Utilisation d'un servo moteur)
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 22 : Ligne 22 :
// Attache le servo à la broche 9 de l'Arduino
// Attache le servo à la broche 9 de l'Arduino
monservo.attach(9);
monservo.attach(9);
Serial.begin(9600);
}
}


Ligne 31 : Ligne 30 :
for(int angle = 0; angle <= 180; angle ++) {
for(int angle = 0; angle <= 180; angle ++) {
monservo.write(angle); // On demande au servo moteur de se placer à l'angle « angle »
monservo.write(angle); // On demande au servo moteur de se placer à l'angle « angle »
Serial.println(angle);
delay(15);
delay(15);
}
}
Ligne 37 : Ligne 35 :
for(int angle = 180; angle >= 0; angle --) {
for(int angle = 180; angle >= 0; angle --) {
monservo.write(angle); // On demande au servo moteur de se placer à l'angle « angle »
monservo.write(angle); // On demande au servo moteur de se placer à l'angle « angle »
Serial.println(angle);
delay(15);
delay(15);
}
}

Dernière version du 20 septembre 2015 à 07:53

Notes

  • Fonctionnement d'un servo moteur : impulsions toutes les 20 ms (au plus), durée d'impulsion de 1 ms à 2 ms => angle de 0° à 180°

Branchement

Branchements pour utilisation d'un servo moteur
  • La broche 5V de l'Arduino sur le fil rouge / orange du servo moteur
  • La broche GND de l'Arduino sur le fil noir / marron du servo moteur
  • La broche 9 de l'Arduino sur le fil blanc / jaune du servo moteur


Code source


#include <Servo.h> 

Servo monservo; // Objet de contrôle du servo moteur

// La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte
void setup() {
  // Attache le servo à la broche 9 de l'Arduino
  monservo.attach(9);
}

// La fonction loop est exécutée indéfiniment
void loop(){

  // On va parcourir tous les angles de 0° à 180°, par pas de 1°
  for(int angle = 0; angle <= 180; angle ++) {
    monservo.write(angle); // On demande au servo moteur de se placer à l'angle « angle »
    delay(15);
  } 
  // On va parcourir tous les angles de 180° à 0°, par pas de 1°
  for(int angle = 180; angle >= 0; angle --) {
    monservo.write(angle); // On demande au servo moteur de se placer à l'angle « angle »
    delay(15);
  } 

}