programmer une pause

Bonjour
Je rencontre encore un petit problème
je ne sais pas comment faire une pause entre deux mouvements de servo
je m'explique, ici j'ai 2 mouvements de servo

       }
       for (position2 = 180; position2 > 75; position2 -=1)
       {
         myservo2.write(position2);
         delay(20);
         }
       for(position1 = 55; position1 < 90; position1 +=1)
       {
         myservo1.write(position1);
        
       delay(20);
       }

comment faire un pause de "delay(200);" entre

 }
       for (position2 = 180; position2 > 75; position2 -=1)
       {
         myservo2.write(position2);
         delay(20);

et

for(position1 = 55; position1 < 90; position1 +=1)
       {
         myservo1.write(position1);
        
       delay(20);

merci pour votre aide

bonjour,
je dirais que ta réponse est dans ta question :wink:
tu as séparé tes deux codes, ton delay(200); tu le mettrais ou?

j'ai essayé de fare ceci

 }
       for (position2 = 180; position2 > 75; position2 -=1)
       {
         myservo2.write(position2);
         delay(20);
         }
       for(position1 = 55; position1 < 90; position1 +=1)
       {
         myservo1.write(position1);
        
       delay(20);
    
       delay(200);
 
     }
       for (position2 = 180; position2 > 75; position2 -=1)
       {
         myservo2.write(position2);
         delay(20);



   }

mais ça ne fonctionne pas
si je remplace
delay(20);
par
delay(200);
mon servo met trop de temps à passer de la position
for(position1 = 55; position1 < 90; position1 +=1)

c'est sur que si tu mets ton delay dans la boucle for ca va pas le faire :grin:

for.......{
delay(20);
}

delay(200);

for....{
delay(20);
}

ça ne marche pas , il n'y a pas de pause, tu n'as pas une autre solution ?
merci de m'aider c'est très gentil de me donner un peu de ton temps !

delay(200) ca se voit pas beaucoup, mets 2000 pour tester.
mets ton code en entier, ca sera plus simple

avec 2000 ça ne marche pas non plus

else if (buttonState1 == LOW && buttonState2 == LOW && buttonState3 == HIGH)
 {
  
   for(position1 = 90; position1 < 130; position1 +=1)
 
    {
       myservo1.write(position1);
      delay(30);
    }
   for (position1 = 130; position1 > 0; position1 -=1)
    {
       myservo1.write(position1);
      delay(100);
    }
   for(position2 = 75; position2 < 180; position2 +=1)
 {
 myservo2.write(position2);
 delay(10);
}
delay(2000);
 for(position1 = 1; position1 < 90; position1 +=1)
 {
   myservo1.write(position1);
   delay(100);
   
 }
 
   
 for (position2 = 180; position2 > 75; position2 -=1)
 {
   myservo2.write(position2);
   delay(50);



 }
 }

 
}

tu es certain que ton else if se déclenche?

else if (buttonState1 == LOW && buttonState2 == LOW && buttonState3 == HIGH)

mets un Serial.println("debut operation 1");
etc...
dans chaque boucle for afin de bien voir si elles se lancent.
et un Serial.println("attente 2000");delay(2000);

ca permet de debugger ton code.

j'ai essayé avec delay(10000); et ça marche mais il ne reste quand même pas trop longtemps en arrêt, 10 secondes environ

j'ai pas bien compris ce que tu m'a dis, je débute, je comprend mieux avec des exemples.
merci pour tes réponses c'est gentil !

casimir:
j'ai essayé avec delay(10000); et ça marche mais il ne reste quand même pas trop longtemps en arrêt, 10 secondes environ

donc tu n'as pas la notion des 2 secondes :wink:
si tu veux qu'il s'arrete pendant plus de temps, augmente ton delay()

super pour le dépannage merci beaucoup !

j'ai encore une question, les servo fonctionnent l'un après l'autre si je veux qu'ils soit en mouvement en même temps il faut les programmer comment ?
tu peux me mettre un exemple STP ?
excuse moi de t'embêter encore

casimir:
super pour le dépannage merci beaucoup !

j'ai encore une question, les servo fonctionnent l'un après l'autre si je veux qu'ils soit en mouvement en même temps il faut les programmer comment ?
tu peux me mettre un exemple STP ?
excuse moi de t'embêter encore

de rien :wink:

je suis pas spécialiste des servos, mais si je me trompe pas, certains pourront le confirmer, le nono ne fait pas de multi tache, donc une tache après l'autre.
mais en faisant un test de la position du servo, je pense que l'on peut le faire.
a voir les codes sur les drivers.

donc le servo2 ne pourra pas bouger en même temps que le servo1, c'est soit l'un ou l'autre ?

Je suis pas spécialiste des servo non mais comme la lib se sert d'un timer, elle ne doit pas être bloquante. Donc :

myservo1.write(position1)
myservo2.write(position2)

devrait faire tout tourner

merci beaucoup je vais essayé !

:~ça ne marche pas ! =(