if (angle == 0)
(
Sens = 0;
)
if (angle == 90) (
Sens = 1;
)
delay (100);
servo1.write (angle);
servo2.write (angle);
)
J'arrive a piloter mes 2 servo, mais Je Voudrais pouvoir gérer la vitesse de rotation, et l'angle de rotation de Chacun a des valeur différentes.
J'espère que je suis assez clair : -?
Il Faut commentaire »Que Je Fasse?
merci d'avance de votre aide
#include <Servo.h>
#define INCR1 1
#define INCR2 2
Servo servo1, servo2;
// les consignes de position
int cons1 = 0;
int cons2 = 0;
// l'angle courant
int angle1=0;
int angle2 = 0;
void setup ()
{
// les deux servos
servo1.attach(9);
servo2.attach(10);
// pour test, on veut atteindre la position médiane des 2 servos
cons1 = 90;
cons2 = 90;
// on commence à une extrémité
servo1.write(0);
servo2.write(0);
// et on attend que les servos se positionnent
delay(600);
}
void loop ()
{
// si on est en dessous de la position de consigne
if (angle1 < cons1)
{
angle1+=INCR1;
} // si on est au dessus
else if (angle1 > cons1) {
angle1-=INCR1;
}
// sinon rien à faire
// si on est en dessous de la position de consigne
if (angle2 < cons2)
{
angle2+=INCR2;
} // si on est au dessus
else if (angle2 > cons2) {
angle2-=INCR2;
}
// sinon rien à faire
servo1.write(angle1);
servo2.write(angle2);
delay (100);
}
note: l'incrément 2 étant supérieur à l'unité, ce code va dépasser la position de consigne puis osciller autour : il faudrait faire un test plus précis, si on est entre cons2 +/- INCR2.
(au passage je trouve étonnant d'avoir écrit plus haut un code incorrect, tu aurais pu au moins l'écrire correctement syntaxiquement, à défaut qu'il soit exact fonctionnellement).
merci beaucoup
je suis désoler d'avoir écrit un code incorrect, je l'es mis car il marché avec mes 2 servo.
j'ai encore beaucoup de boulot avant de savoir bien servir.