Pages: [1]   Go Down
Author Topic: commande 2 servo different  (Read 1268 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour.
je début avec l'Arduino et en programmation aussi d'ailleur smiley
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 (smiley-cool;
)

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 smiley
« Last Edit: January 31, 2010, 04:56:53 am by cyril » Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ici je contrôle deux servos : http://www.pobot.org/Controle-avec-un-Wii-Nunchuck.html avec valX et valY.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  >smiley-sad

tu pourrais me montrais comment faire sur mon code joint a mon premier post?
j'espère ne pas trop abusé  :-[
« Last Edit: January 31, 2010, 09:42:11 am by cyril » Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
#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).
« Last Edit: January 31, 2010, 11:11:39 am by julien@pobot.org » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: