// Commande d'un servo moteur par un Arduino UNO
// un inverseur en position travail envoie une masse à l'Arduino
// au repos le servo est en position 0 deg
#include <Servo.h> // utilisation de la bibliothèque Servo
Servo monServo;
const byte Commande = 3; // le commun de l'inverseur est relié à la pin 3
const byte DureePas = 60; // règle vitesse du servomoteur
int pos = 0; // valeur de la position pour les déplacements des servos
void setup() {
pinMode(Commande, INPUT_PULLUP); // configuration en entrée, au repos un niveau HIGH est présent
monServo.attach(8); // attache le servo à la pin 8
monServo.write(0); // positionne le servo à 0 deg
delay (500); // délai de 500 millisecondes
} // fin setup
void loop() {
while (digitalRead(Commande) == HIGH) {
// Tant que l'inverseur est au repos on attend
}
//l'inverseur est passé en position travail, le servo va bouger
for (pos = 0; pos <= 90; pos += 1) { // par pas de 1 deg
monServo.write(pos); // le servo quitte la position 0 deg pour 90 deg
delay(DureePas); // durée d'un pas
} // Fin du déplacement du servo
while (digitalRead(Commande) == LOW) {
// Tant que l'inverseur est au travail on attend
}
// l'inverseur est passé en position repos, le servo va bouger
for (pos = 90; pos >= 0; pos -= 1) { // par pas de 1 deg
monServo.write(pos); // le servo quitte la position 90 deg pour 0 deg
delay(DureePas); // durée d'un pas
} // Fin du déplacement du servo
} // fin loop