Go Down

Topic: programmer 2 servos (Read 8908 times) previous topic - next topic

casimir

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
Code: [Select]


#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

#1
Apr 26, 2013, 09:19 pm Last Edit: Apr 26, 2013, 09:20 pm by Jean-François Reason: 1
Et avec un truc du style :

Code: [Select]
void loop()
{
poss=80;
 for(pos = 0; pos < 80; pos += 1)  
 {                                  
   myservo1.write(pos);  
   myservo2.write(poss);      
   poss-=1
   delay (10);                      
 }

}
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

casimir

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

casimir

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

jfs

Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

casimir

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 ?

casimir

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

jfs

Définis déjà la séquence de ce que tu veux qu'ils fassent.
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.


casimir

#9
Apr 26, 2013, 10:47 pm Last Edit: Apr 26, 2013, 11:46 pm by amigaêl Reason: 1
voilà
merci beaucoup
couba1 = cou bas moteur 1
coumil2 = cou milieu moteur 2
Code: [Select]


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

casimir

j'ai refais ça mais ça marche pas en même temps  :smiley-yell:
Code: [Select]

#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

Si il ne sont pas dans la même boucle for(), ça ne pourras pas marcher en même temps.
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

casimir

merci pour votre réponse je vais essayé

casimir

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
Code: [Select]
#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

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.
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

Go Up