Go Down

Topic: pbm pour controler 2 servo simultanemment. (Read 622 times) previous topic - next topic

fbmfbm

Bonjour,

j'utilise ce sketch avec la librairie servo pour piloter 2 servos futaba modifiés  pour obtenir une rotation de 360deg.
Pour tester, j'utilise un petentiometre pour inverser le sens de rotation des deux servos.

Quand la valeur direction est au-dessus d'un seuil les servo tournent dans un sens, et inversement au-dessous d'une valeur....

Les servo réagissent dans un sens...mais en tournant le pot. avec le seuil ateint, un seul des deux servo inverse sa rotation....l'autre tourne invariablement dans le même sens....

Quelqu'un à une idée pour ce genre de chose???

voici le pgm  très basic utilisé :


Code: [Select]
#include <Servo.h>

Servo servo1;
Servo servo2;
int direction=0;

void setup() {

 pinMode(1,OUTPUT);
 servo1.attach(4);
 servo2.attach(2);
  servo1.setMaximumPulse(2500);
  //servo1.setMinimumPulse(700);
  servo2.setMaximumPulse(2500);
  //servo2.setMinimumPulse(700);
 
 Serial.begin(19200);
 Serial.println('Ready');

}

void loop() {

 static int v = 0;
 direction=analogRead(2);
 int val = direction-0;
 
 Serial.println(val);
 
 if(  val>1000){
   servo1.write(90);
   servo1.refresh();
   servo2.write(90);
   servo2.refresh();
   
   Serial.println("avance");
   }


 if( val<400){
   servo1.write(0);
   servo1.refresh();
   servo2.write(0);
   servo2.refresh();
   
   }
}

Skall

une erreur dans la modif de tes servos ?
:-?

fbmfbm

Hello skall,

Merci pour la réponse.
Non je ne pense pas à un pbm dans la modif, si je croise les servos le pbm est identique...et la modif est plutôt basique....
Il mes semble que cela tient à un pbm d'intérruption ou de fréquence...mais sans sertitude.


Fbm  

Skall

est-ce que tu utilises la version de la librairie servo qui utilise le timer interne ? je crois que ca pose pb si c'est utilisé en meme temps que le port série... essaie de virer tes appels à serial....

fbmfbm

la version que j'utilise se nomme uniquement "servo.h", je pense que ce n''est pas la version avec le timer interne (j'ai vue une version avec comme nom "servoTimmer.h), mais comment en être certain ?
Je vais tenter de supprimer tout les appel à Serial pour tester.


fabien





Go Up