Salut à tous!
Alors voila, je suis un peu nul en programmation, et j'aurai voulu savoir si une âme charitable pourrait me donner un coup de pouce!
Voila mon soucis, je veux piloter 2 servomoteurs à partir du programme de base Sweep, chaque servo moteur ayant une position mini et maxi spécifique.
j'ai commencé à ecrire mon code, mais je trouve que celui-ci devient lourd au fur et à mesure de son écriture!
Je me demandais si il existait une manière simple de l'écrire.
Voila mon code :
#include <Servo.h>
Servo myservo_1;
Servo myservo_2;
int pos_1 = 0;
int pos_2 = 0;
int posMIN_1 = 30;
int posMOY_1 = 80;
int posMAX_1 = 160;
int posMIN_2 = 50;
int posMOY_2 = 100;
int posMAX_2 = 180;
void setup()
{
myservo_1.attach(2);
myservo_2.attach(3);
myservo_1.write(pos_1);
myservo_2.write(pos_2);
delay(2000);
}
void loop()
{
for(pos_1 = posMIN_1 ; pos_1 < posMOY_1 ; pos_1 += 1)
{ myservo_1.write(pos_1);
delay(50);
}
for(pos_2 = posMIN_2 ; pos_2 < posMOY_2 ; pos_2 += 1)
{ myservo_2.write(pos_2);
delay(50);
}
delay(1000);
for(pos_1 = posMOY_1; pos_1 < posMAX_1; pos_1 += 1)
{ myservo_1.write(pos_1);
delay(50);
}
for(pos_2 = posMOY_2; pos_2 < posMAX_2; pos_2 += 1)
{ myservo_2.write(pos_2);
delay(50);
}
delay(500);
for(pos_1 = posMAX_1; pos_1 > posMOY_1; pos_1 -= 1)
{ myservo_1.write(pos_1);
delay(50);
}
for(pos_2 = posMAX_2; pos_2 > posMOY_2; pos_2 -= 1)
{ myservo_2.write(pos_2);
delay(50);
}
delay(1000);
for(pos_1 = posMOY_1; pos_1 > posMIN_1; pos_1 -= 1)
{ myservo_1.write(pos_1);
delay(50);
}
for(pos_2 = posMOY_2; pos_2 > posMIN_2; pos_2 -= 1)
{ myservo_2.write(pos_2);
delay(50);
}
delay(500);
}
Là, il est achevé mais j'espère qu'il y aurai plus simple!
Ce qui me gène le plus, c'est que les mouvement ne sont pas synchro!
Le servo 1 fait son 1er mouvement, puis c'est le servo 2, le servo 1 repart, puis le 2, et ainsi de suite!
J'aurai aimé que les 2 servo fassent leur mouvement en même temps!
Merci d'avance à tous