programmer 2 servos

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); 
  

  }
}

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);                      
  } 
 
}

merci pour votre réponse je vais essayer de refaire le programme.

ça fonctionne très bien merci beaucoup de m'avoir dépanné !!

De rien :wink:

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 ?

merci d'avance pour la réponse j'ai envoyé trop vite mon message !

Définis déjà la séquence de ce que tu veux qu'ils fassent.

ok merci

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);
       }
 }

j'ai refais ça mais ça marche pas en même temps :stuck_out_tongue_closed_eyes:

#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); 
  
}

  }}}

Si il ne sont pas dans la même boucle for(), ça ne pourras pas marcher en même temps.

merci pour votre réponse je vais essayé

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); 
  
}

  }}

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.

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); 
 }}
 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);

 }
}

merci beaucoup c'est trop gentil, je vais essayé et vous dis si ça marche

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

Re-bonjour, c'est encore moi ! :blush:
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); 
   }}}