Control Servo

Bonjour à tous,
Je découvre arduino et j’essaie de contrôler un servo,
J’ai utilisé le croquis exemple “sweep” :

#include <Servo.h>

Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable ‘pos’
delay(15); // waits 15ms for the servo to reach the position
}
}

Je voudrais modifier ce croquis pour que le servo s’arrête après la première rotation de 180°
J’ai essayé sans succès, cela me semble pourtant une modification facile, mais pas pour moi !

Je vous saurais très reconnaissant si vous m’apportiez cet aide,
Merci beaucoup,

C’est bien de mettre le code entre balise (bouton </> dans la fenêtre d’écriture du message

La fonction septup ne s’exécute qu’une fois, la fonction loop s’exécute en boucle.

Il suffit donc de déplacer la première boucle for (allant de 0 à 180deg) à la fin de la fonction setup. Et de supprimer le contenu de la fonction loop

Merci beaucoup, j'y vais de ce pas !

Tu supprime la deuxième boucle For ou le moteur change de sens puisque la position se décremente

La loop s’exécute en boucle. Pour faire une tâche une seule fois au début d’un code, il faut la mettre dans le setup :

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

void loop() {
// Mettre le reste du code ici, qui tournera en boucle
}