Controler 2 futaba S3003 avec une arduino
ticooli
Messages postés
2
Statut
Membre
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
bonjour
je suis nouveau dans ce domaine ,j'ai acheté une carte arduino uno et 2 servomoteurs j'ai réussi à les faire fonctionner mais je souhaite faire fonctionner l'un des moteurs de 0° à 180° et l'autre de 40° à 180° et là petit hic sa fonctionne l'un après l'autre.
quelqu'un peut-il me venir en aide
voici mon programme:
#include <Servo.h>
Servo myservo_0; // create servo object to control a servo
Servo myservo_1; // a maximum of eight servo objects can be created
int posA= 0; // variable to store the servo position
int posB=40;
void setup()
{
myservo_0.attach(9); // attaches the servo on pin 9 to the servo object
myservo_1.attach(10);
}
void loop()
{
{
for(posA = 0; posA < 180; posA += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo_0.write(posA); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(posA = 180; posA>=1; posA-=1) // goes from 180 degrees to 0 degrees
{
myservo_0.write(posA); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
{
for(posB=40; posB<180; posB +=1)
{
myservo_1.write(posB);
delay(15);
}
for(posB=180; posB>40; posB-=1)
{
myservo_1.write(posB);
delay(15);
}
}
}
je suis nouveau dans ce domaine ,j'ai acheté une carte arduino uno et 2 servomoteurs j'ai réussi à les faire fonctionner mais je souhaite faire fonctionner l'un des moteurs de 0° à 180° et l'autre de 40° à 180° et là petit hic sa fonctionne l'un après l'autre.
quelqu'un peut-il me venir en aide
voici mon programme:
#include <Servo.h>
Servo myservo_0; // create servo object to control a servo
Servo myservo_1; // a maximum of eight servo objects can be created
int posA= 0; // variable to store the servo position
int posB=40;
void setup()
{
myservo_0.attach(9); // attaches the servo on pin 9 to the servo object
myservo_1.attach(10);
}
void loop()
{
{
for(posA = 0; posA < 180; posA += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo_0.write(posA); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(posA = 180; posA>=1; posA-=1) // goes from 180 degrees to 0 degrees
{
myservo_0.write(posA); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
{
for(posB=40; posB<180; posB +=1)
{
myservo_1.write(posB);
delay(15);
}
for(posB=180; posB>40; posB-=1)
{
myservo_1.write(posB);
delay(15);
}
}
}
2 réponses
Salut.
Tu fais les rotation de manière séquentielle, logique qu'elles se réalise de manière séquentielle. Je te propose un truc différent :
Tu fais les rotation de manière séquentielle, logique qu'elles se réalise de manière séquentielle. Je te propose un truc différent :
for(int n=0;n<100;n++)
{
myservo_0.write(int(n*180./100.));
myservo_1.write(int(n*(180.-40.)/100.+40));
delay(15);
}
Salut.
Hum... il sont peut être couplé d'une manière ou d'une autre. Essai de modifier les angles du deuxième voir si ça influe sur le premier.
Si les deux sont couplé, c'est qu'un truc t'échappe quelque part, surement dans l'initialisation des variables.
Si les deux ne sont pas couplé, c'est encore plus étrange, celà veux dire que le write(0) correspond à un write(40).
Redonne éventuellement ton nouveau morceau de code.
Hum... il sont peut être couplé d'une manière ou d'une autre. Essai de modifier les angles du deuxième voir si ça influe sur le premier.
Si les deux sont couplé, c'est qu'un truc t'échappe quelque part, surement dans l'initialisation des variables.
Si les deux ne sont pas couplé, c'est encore plus étrange, celà veux dire que le write(0) correspond à un write(40).
Redonne éventuellement ton nouveau morceau de code.
je te remercie de ton aide mais j'ai toujours ce petit hic les 2 fonctionnent bien sauf que celui qui devrait faire 0° à 180° ne fait en réalité 40° à 180° je me tire un peu le cheveux
amicalement.