Problème servomoteur et Keypad

Bonjour je travaille sur un projet ou je veux que lorsque je rentre un code mon servomoteur exécute une commande de 180 et que lorsque je rerentre le même code le servomoteur retourne a sa position de départ.
Je l'utilise pour ouvrir et fermer une serrure
voici le code que j'ai fait mais qui ne marche pas en effet lorsque je rentre le code une 2e fois le servomoteur ne retourne pas a sa position de départ
Merci de votre aide

PASSWORD_SERVO.ino (3.11 KB)

Je pense que ton erreur est là:

              if(pos==0){myservo.write(180);}
              pos=180;
              if(pos==180){myservo.write(0);}

Essaye :

              if(pos==0){myservo.write(180);
              pos=180;}
              if(pos==180){myservo.write(0);
              pos = 0;}

Merci pour ton aide mais ça ne marche toujours pas

Pour lire un angle, c'est servo.read, tu économises la variable pos

Lis la position
Si pos==180 write 0
Si pos==0 write 180

Je te laisse tout le loisir d'y mettre la syntaxe qui va bien :stuck_out_tongue:

Ne sachant pas ce que fait ce servo, sache que, si tu veux relever sa position REELLE (read c'est la derniere position envoyée, pas sa position réelle), un astucieux membre du forum a fait une petite vidéo pour modifier un SG90 afin d'en avoir un retour analogique réel. C'est dans les projets finis.

Trop modeste Kammo !!! :slight_smile:

Peut-être rajouter un delay(100); après chaque servo.write ?
Désolé, j'ai pas l'habitude des servo...

merci pour vos réponse rien ne marche je suis désespéré XD

Ici, il fait un delay plus long:
delay(1000);Essaye avec diverses valeurs de plus en plus longues pour voir si ça marche mieux.