commande 2 servo different

bonjour.
je début avec l'Arduino et en programmation aussi d'ailleur :slight_smile:
Je Voudrais piloter 2 servo indépendamment l'un de l'autre.

Avec Plusieurs essais j'ai réussi a faire ce code

Include <Servo.h>

Préciser INCR # 1

Servo servo1, servo2;

int angle = 0;
Sens int = 0;

void setup ()
(
servo1.attach (9);
servo2.attach (8);
)

void loop ()
(

if (sens == 0)
(
angle + = incr;
)
else (
-= INCR Angle;
)

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 :slight_smile:

Il te suffit de gérer deux variables : angle1 et angle2, et de gérer deux constantes INCR1 et INCR2.

merci de ta réponse.
tu pourrais me donné un exemple sans vouloir abusé :-?
merci

Ici je contrôle deux servos : Contrôle avec un Wii Nunchuck - PoBot avec valX et valY.

merci
je début vraiment et j'ai du mal a comprendre comment intégrer a mon code 2 variable... ca doit pas être compliqué mais je bloque >:(

tu pourrais me montrais comment faire sur mon code joint a mon premier post?
j'espère ne pas trop abusé :-[

#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.

merci beaucoup