Controler 2 futaba S3003 avec une arduino

Fermé
ticooli Messages postés 2 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 26 juin 2013 - 26 juin 2013 à 01:37
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 27 juin 2013 à 09:49
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);
}
}
}

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
26 juin 2013 à 08:41
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 :
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);
}
0
ticooli Messages postés 2 Date d'inscription mercredi 26 juin 2013 Statut Membre Dernière intervention 26 juin 2013
26 juin 2013 à 13:45
SLT
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.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 juin 2013 à 09:49
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.
0