Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« on: February 02, 2013, 05:04:21 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 839
|
 |
« Reply #1 on: February 02, 2013, 06:02:32 am » |
bonjour, je dirais que ta réponse est dans ta question  tu as séparé tes deux codes, ton delay(200); tu le mettrais ou?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #2 on: February 02, 2013, 06:13:26 am » |
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)
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 839
|
 |
« Reply #3 on: February 02, 2013, 06:19:04 am » |
c'est sur que si tu mets ton delay dans la boucle for ca va pas le faire  for.......{ delay(20); }
delay(200);
for....{ delay(20); }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #4 on: February 02, 2013, 06:46:22 am » |
ç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 !
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 839
|
 |
« Reply #5 on: February 02, 2013, 06:50:44 am » |
delay(200) ca se voit pas beaucoup, mets 2000 pour tester. mets ton code en entier, ca sera plus simple
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #6 on: February 02, 2013, 07:08:37 am » |
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);
} }
}
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 839
|
 |
« Reply #7 on: February 02, 2013, 07:46:35 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #8 on: February 02, 2013, 07:53:05 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #9 on: February 02, 2013, 07:56:32 am » |
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 !
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 839
|
 |
« Reply #10 on: February 02, 2013, 08:00:33 am » |
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  si tu veux qu'il s'arrete pendant plus de temps, augmente ton delay()
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #11 on: February 02, 2013, 08:06:51 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 839
|
 |
« Reply #12 on: February 02, 2013, 08:12:19 am » |
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  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.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 3
Posts: 79
|
 |
« Reply #13 on: February 02, 2013, 08:15:25 am » |
donc le servo2 ne pourra pas bouger en même temps que le servo1, c'est soit l'un ou l'autre ?
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1668
Do or DIY
|
 |
« Reply #14 on: February 02, 2013, 08:19:58 am » |
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
|
|
|
|
|
Logged
|
|
|
|
|
|