Probleme de commande servo

bonjour je suis nouveau dans le domaine Arduino je commence il y a a penne dix jour donc très peu de connaissance
voici mon problème j ai fait un commande pour trois servomoteur le code c++ est correct lais lorsque je fais la simulation sur tinkercad ou sur la la carte il il y a défaut de fonctionnement le premier bouton déclenche deux servomoteur le second n en fait revenir qu un le troisième ne fait rien et le quatrièmement fait revenir le deuxième servomoteur le 5 et le 6 fonctionne parfaitement
voici le montage sur tinkercad en photo

et voici le code c++

// C++ code
//
#include <Servo.h>;
int direction1= 2;
int direction2= 3;

int hauteur1 = 4;
int hauteur2 = 5;

int longueur1=6;
int longueur2=7;

int position1=0;
int position2=0;
int position3=0;

int vitesse1=10;
int vitesse2=10;
int vitesse3=10;

Servo monservo1;
Servo monservo2;
Servo monservo3;

void setup(){

pinMode(direction1,INPUT_PULLUP);
pinMode(direction2,INPUT_PULLUP);

pinMode(hauteur1,INPUT_PULLUP);
pinMode(hauteur2,INPUT_PULLUP);

pinMode (longueur1,INPUT_PULLUP);
pinMode (longueur2,INPUT_PULLUP);

monservo1.attach (9,500,2500);
monservo2.attach(10,500,2500);
monservo3.attach(11,500,2500);

monservo1.write(0);
monservo2.write(0);
monservo3.write(0);
}

void loop(){

int droit = digitalRead (direction1);
int gauche = digitalRead (direction2);
int haut = digitalRead(hauteur1);
int bas = digitalRead(hauteur2);
int grand = digitalRead(longueur1);
int court = digitalRead(longueur2);

if (droit==LOW){
monservo1.write (position1);
position1=position1+1;
delay(vitesse1);
if (position1>180){
position1=180;
}
}

if (gauche==LOW){
monservo1.write (position1);
position1=position1-1;
delay(vitesse1);
if (position1<0){
position1=0;
}
}

if (droit==LOW){
monservo2.write (position2);
position2=position2+1;
delay(vitesse2);
if (position2>120){
position2=120;
}
}

if (bas==LOW){
monservo2.write (position2);
position2=position2-1;
delay(vitesse2);
if (position2<0){
position2=0;
}
}
if (grand==LOW){
monservo3.write (position3);
position3=position3+1;
delay(vitesse3);
if (position3>180){
position3=180;
}
}

if (grand==LOW){
monservo3.write (position3);
position3=position3-1;
delay(vitesse3);
if (position2<0){
position3=0;
}
}

delay(100);

}

la j avou je ne comprend pas merci de votre aide

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

ok merci et comment je fait svp

Le Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ il a été déplacé vers le forum francophone.

Merci d’éditer votre post pour rajouter les balises de de code, c’est quasiment illisible tel quel:

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l’icône </> dans la barre d’outils pour indiquer que c’est du code

(Assurez vous aussi d’indenter le code correctement dans l’IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

:warning: La rédaction de votre message ne répond pas aux critères attendus. Il n’aura sans doute pas de réponse tant que vous n’aurez pas pris en compte et mis en application les recommandations listées dans “Les bonnes pratiques du Forum Francophone”

Si ont peut dire, oui, il n'a pas d'erreurs à la compilation :wink:
Il faut juste lire la succession des if()... pour comprendre tes soucis!

	if (droit==LOW){
	if (gauche==LOW){
	if (droit==LOW){
	if (bas==LOW){
	if (grand==LOW){
	if (grand==LOW){

Cordialement
jpbbricole

Mois de mars + tinkercad.
Tinkercad est beaucoup utilisé par l'Éducation Nationale.
Serait-ce le début de la deuxième vague pour les sujets bac ?
Si c'est le cas il faut l'annoncer dès le début.

Parmi les conseils de J-M-L n'oublies pas :

Tu constateras que le code est immédiatement plus lisible, c'est bon pour nous et encore plus pour toi.

As-tu essayé d'écrire un programme avec un seul servo pour commencer, puis quand cela fonctionne écrire un autre programme avec deux servo, puis avec trois ?

C'est nettement plus facile de trouver les erreurs avec un code réduit plutôt qu'avec un code complet.

non juste un bleu de 59 ans qui essai de reste a la page mais dur

j ai fais le même montage avec deux servo avant et cela fonctionnai très bien mais avec trois j ai le problème cite ci dessus

j ai trouve l erreur en fait dans mon écriture j ai mis deux fois la même info j ai fai la modif et la c est super ça fonction comme je veux

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.