Go Down

Topic: Contrôler 2 servo indépendamment mais simultanemen (Read 581 times) previous topic - next topic

Corentin

Bonjour!
Je suis débutant avec Arduino et le code.

Je souhaite obtenir des mouvements plutôt lents et fluides avec deux servos, j'ai donc était obligé d'utiliser la fonction suivante pour chacun d'eux:

for(pos = 0; pos < 180; pos += 1)
   {
     Servo.write(pos);
     delay(25);
    }

Mais je souhaiterais entamer le mouvement du deuxième servo alors que le premier n'a pas terminer sa course.

J'ai pensais à "séquencer" les deux mouvements avec des déplacements en microsecondes et je pourrais alors "entrelacer" les deux traitements de positions? Mais cela me paraît très fastidieux surtout que je suis vraiment débutant en code.

Donc voici ma question paradoxale:
Comment, si cela paraît envisageable,  contrôler deux servos de manière indépendante mais un même instant?

Je ne sais pas si je suis vraiment clair, Merci de votre attention!

churchill

Quote
Mais je souhaiterais entamer le mouvement du deuxième servo alors que le premier n'a pas terminer sa course.

Ce n'est pas un problème spécifique à l'arduino mais un problème de programmation. Ce que tu veux, ce sont 2 compteurs indépendants l'un de l'autre. Il te faut donc 2 variables que tu peux incrémenter séparément (ou ensemble mais décalées).
Le code que tu dois écrire peut-être quelque chose comme :
Code: [Select]

position1 = 0
position2 = 90
boucle:
 moteur1 en position1
 incrémenter position1
 si position1=180, alors mettre position1 à 0
 moteur2 en position2
 incrémenter position2
 si position2=180, alors mettre position2 à 0
 attendre_le_delay

Ce code n'est pas en C (ni en rien d'autre d'ailleurs) et c'est fait exprès. L'exercice, c'est de le coder en C. Si tu as un soucis sur un point spécifique, exposes nous le problème et on t'aidera, mais on ne fera pas tout :-)
Churchill

Corentin

Bonjour,
Je suis entrain de travailler sur la mise en forme du code, grâce aux indices de churchill (merci pour ton aide!) et d'autre astuces que j'ai trouvé.
Je n'ai pas trop eu le temps de bosser à fond dessus, vu que je n'ai pas d'ordinateur chez moi ... :o (je suis étudiant donc je me débrouille pour avancer sur le problème et me connecter sur le forum à l'école ...)
Je donnerai des nouvelles le plus vite possible.

Go Up