system
April 26, 2013, 5:41pm
1
Bonour
Comme vous allez le constater je suis très nul!!!j'essai desesperement faire fonctionné 2 servos en même temps, le problème que je rencontre c'est que les mouvements se font l'un après l'autre.
les servos sont face à face
je vous met le programme
merci d'avance
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int pos = 0;
int poss = 0;
void setup()
{
myservo1.attach(3);
myservo2.attach(7);
}
void loop()
{
for(pos = 0; pos < 80; pos += 1)
{
myservo1.write(pos);
delay (10);
}
for(poss = 80; poss >= 0; poss-=1)
{
myservo2.write(poss);
delay (10);
}
}
jfs
April 26, 2013, 7:19pm
2
Et avec un truc du style :
void loop()
{
poss=80;
for(pos = 0; pos < 80; pos += 1)
{
myservo1.write(pos);
myservo2.write(poss);
poss-=1
delay (10);
}
}
system
April 26, 2013, 7:30pm
3
merci pour votre réponse je vais essayer de refaire le programme.
system
April 26, 2013, 7:40pm
4
ça fonctionne très bien merci beaucoup de m'avoir dépanné !!
system
April 26, 2013, 8:20pm
6
heu ?? je peux poser encore une petite question ?
si je veux que mes servos fonctionnent en même temps mais qu'ils ne fassent pas la même chose je fais comment ?
system
April 26, 2013, 8:21pm
7
merci d'avance pour la réponse j'ai envoyé trop vite mon message !
jfs
April 26, 2013, 8:36pm
8
Définis déjà la séquence de ce que tu veux qu'ils fassent.
system
April 26, 2013, 8:47pm
10
voilà
merci beaucoup
couba1 = cou bas moteur 1
coumil2 = cou milieu moteur 2
#include <Servo.h>
Servo couba1;
Servo coumil2;
int pos = 0;
int position2 = 0;
void setup()
{
couba1.attach(3);
coumil2.attach(7);
}
void loop()
{
for(pos = 90; pos >= 1; pos -= 1)
{
couba1.write(pos);
delay(20);
}
for (pos = 0; pos < 90; pos += 1)
{
couba1.write(pos);
delay(20);
}
for(pos = 90; pos >= 1; pos -= 1)
{
couba1.write(pos);
delay(20);
}
for (pos = 0; pos < 90; pos += 1)
{
couba1.write(pos);
delay(20);
}
for(pos = 90; pos > 55; pos -=1)
{
couba1.write(pos);
delay(20);
}
for (position2 = 90; position2 < 180; position2 +=1)
{
coumil2.write(position2);
delay(20);
delay(100);
}
for (position2 = 180; position2 > 90; position2 -=1)
{
coumil2.write(position2);
delay(20);
}
for(pos = 55; pos < 90; pos +=1)
{
couba1.write(pos);
delay(20);
}
}
system
April 26, 2013, 9:44pm
11
j'ai refais ça mais ça marche pas en même temps
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int pos = 0;
int poss = 0;
void setup()
{
myservo1.attach(3);
myservo2.attach(7);
}
void loop()
{
poss=90;
for(pos = 45; pos < 90; pos += 1)
{
myservo1.write(pos);
delay (20);
}
{
poss=45;
for(pos = 90; pos >= 45; pos -= 1)
{
myservo2.write(poss);
poss-=1;
delay (20);
}
poss=90;
for(pos = 45; pos < 90; pos += 1)
{
myservo2.write(pos);
delay (20);
}
{
poss=45;
for(pos = 90; pos >= 45; pos -= 1)
{
myservo1.write(poss);
poss-=1;
delay (20);
}
}}}
jfs
April 27, 2013, 5:22am
12
Si il ne sont pas dans la même boucle for(), ça ne pourras pas marcher en même temps.
system
April 27, 2013, 7:05am
13
merci pour votre réponse je vais essayé
system
April 27, 2013, 8:05am
14
Bonjour
j'ai essayé de rectifier mon programme mais j'ai des erreurs j'ai beau faire plusieurs essais mais je n'arrive pas à trouver où se trouve le problème
pourriez vous m'aider ?
merci d'avance
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int pos = 0;
int poss = 0;
void setup()
{
myservo1.attach(3);
myservo2.attach(7);
}
void loop()
{
pos=90;
for(pos = 45; pos < 90; pos += 1)
{
poss=45;
(poss = 90; poss >= 45; poss -= 1)
{
myservo1.write(pos);
pos-=1;
myservo2.write(poss);
poss+=1;
delay (20);
delay (20);
}
}
}
{
poss=90;
for(poss = 45; poss < 90; poss += 1)
pos=45;
{
(pos = 90; pos >= 45; pos -= 1)
{
myservo2.write(poss);
poss-=1;
myservo1.write(pos);
pos+=1;
delay (20);
delay (20);
}
}}
jfs
April 27, 2013, 8:16am
15
Si les servo.write ne sont pas dans la même boucle et en plus avec des delay() entre eux c'est sur que ça ne va pas fonctionner en même temps.
system
April 27, 2013, 8:36am
16
J'ai refais ça, mais j'ai toujours une erreur
de plus je ne sais pas comment faire pour copier les messages d'erreurs
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int pos = 0;
int poss = 0;
void setup()
{
myservo1.attach(3);
myservo2.attach(7);
}
void loop()
{
pos=90;
poss=45;
for(pos = 45; pos < 90; pos += 1)
for (poss = 90; poss >= 45; poss -= 1)
{
myservo1.write(pos);
myservo2.write(poss);
pos-=1;
poss+=1;
delay (20);
delay (20);
}}
{
poss=90;
pos=45;
for(poss = 45; poss < 90; poss += 1)
for (pos = 90; pos >= 45; pos -= 1)
{
myservo2.write(poss);
myservo1.write(pos);
poss-=1;
pos+=1;
delay (20);
delay (20);
}}
jfs
April 27, 2013, 9:02am
17
void loop()
{
poss=45;
for(pos = 45; pos < 90; pos += 1)
{
myservo1.write(pos);
myservo2.write(poss);
poss+=1;
delay (20);
}
poss=90;
for (pos = 90; pos >= 45; pos -= 1)
{
myservo2.write(poss);
myservo1.write(pos);
poss-=1;
delay (20);
}
}
system
April 27, 2013, 9:05am
18
merci beaucoup c'est trop gentil, je vais essayé et vous dis si ça marche
system
April 27, 2013, 9:23am
19
Mille mercis!!! ça marche bien j'ai juste enlevé 1 parenthèse après "delay" et rajouté à la fin !
je vais pouvoir m'amuser ce aprèm
system
April 27, 2013, 3:38pm
20
Re-bonjour, c'est encore moi !
depuis le debut de l'aprèm je fais des essais et je suis encore bloqué ! =(
le dernier sketch mes 2 bras bougeaient en même temps avec un mouvement opposé, c'est déjà génial mais je n'arrive pas à faire par exemple 1 bras de 45°à 90° puis de 90° à 45° et l'autre en même temps faire 180° à 0 ° et de 0° à 180°
j'ai fais ça (et pleins d'autres trucs de ce genre ) mais je ne trouve pas .
avec ce code par exemple mes servos font 45°à 90° puis 180° à 0°
pourriez vous m'aider ?
je vous remercie pour votre patience et votre gentillesse !
void loop()
{
poss=45;
for(pos = 45; pos < 90; pos += 1)
{
myservo1.write(pos);
myservo2.write(poss);
poss+=1;
delay (20);
delay (20);
}
{
poss=180;
for (pos = 180; pos >= 0; pos -= 1)
{
myservo2.write(poss);
myservo1.write(pos);
poss-=1;
delay (20);
delay (20);
}}}