Bonjour,
Je cherche à réaliser un bouton de marche d'un servomoteur, mais le problème étant que durant l'état HIGH du bouton en réalité le servomoteur change l'angle que j'ai changé avec un potentiomètre en état LOW, c'est à dire :
*Position LOW du bouton = Potentiomètre qui modifie la valeur de l'angle du servomoteur
*Position HIGH du bouton = Le servomoteur rejoint l'angle choisi précédemment(à l'aveugle du coup)
Alors que moi je voudrais que l'appui sur ce bouton me permette de modifier l'angle de ce servomoteur, et d'ailleurs je comprend pas pourquoi mon code ne fonctionne pas pourtant il est clairement dit que si l'état est en HIGH je modifie l'angle du moteur, voici mon code :
Code:#include <Servo.h> Servo myservo; int pot= 0; int val; const int tableau = 320; float pos[tableau]; const int bouton = 13; // la broche 13 devient bouton const int led = 2; byte etat; boolean boutonRelache; void setup(){ myservo.attach(9); pinMode(bouton, INPUT_PULLUP); // Initialise la broche 4 comme entrée pinMode(led, OUTPUT); // Initialise la broche 12 comme sortie boutonRelache=(digitalRead(bouton)==HIGH); etat = boutonRelache ? LOW : HIGH; Serial.begin(9600); } void loop(){ if (digitalRead(bouton) == HIGH){ if (!boutonRelache){ delay(20); boutonRelache = true; } } else{ if(boutonRelache){ boutonRelache = false; etat = (etat == HIGH) ? LOW : HIGH; delay(20); digitalWrite(led,etat); } if(etat == HIGH) { val = analogRead(pot); val=map(val,0,1023,0,180); delay(10); myservo.write(val); // allume la LED } } }
Je vous remercie pour vos réponse
-----