Bonjour a tous, je suis débutant sur arduino et j'ai concu mon premier programme.
Le principe est simple, une fois que 2 bouton sont appuyés simultanément (boutonstart et boutonporte) le moteur se lance dans un sens. Une fois que le moteur est bloque (tension de surintensité) le moteur change de sens. Jusque la tout va bien. Seulement pour la suite je rencontre un probléme, j'aimerais que le programme s’arrête quant j'appuie sur le troisième bouton ( Fin de course, donc quant fin de course est appuyer le programme s’arrête ). Seulement quant j'essaie de le faire sa ne marche absolument pas.
J'aimerais donc savoir comment faire en sorte que des que fin de course est appuyé le moteur s’arrête.
Voici le programme :
Toute aide sera la bienvenue !Code:// broches const int analogInPin = A0; int mota = 3; int motb = 4; int boutonStart = 2; int findecourse = 4; int boutonporte = 5; int seuilIntensiteBas = 495; int seuilIntensiteHaut = 560; // variables int valeur = 0; boolean surIntensiteMoteur() { valeur = analogRead(analogInPin); //Serial.print("valeur = " ); //Serial.println(valeur); if (valeur > seuilIntensiteBas && valeur < seuilIntensiteHaut) return false; //on est pas en surintensité. On retourne Faux else return true; //surintensité détectée } void moteur(boolean sens1, boolean marche) { if (!marche) { // arret moteur digitalWrite(mota, LOW); digitalWrite(motb, LOW); } else { // Moteur en marche if (sens1) { // sens 1 digitalWrite(mota, HIGH); digitalWrite(motb, LOW); } else { // sens 2 digitalWrite(mota, LOW); digitalWrite(motb, HIGH); } } } void setup() { pinMode(mota, OUTPUT); pinMode(motb, OUTPUT); pinMode(boutonStart, INPUT); pinMode(boutonporte, INPUT); Serial.begin(9600); } void loop() { boolean etatBouton = digitalRead(boutonStart); boolean etatBoutonn = digitalRead(boutonporte); if (etatBouton==HIGH && etatBoutonn==HIGH) moteur(1, 1); //long tempsDepart = millis(); //delay(2000); //while (millis() < (tempsDepart + 2000)) { //tant que on a pas patienté 2000ms (2s), on attend delay(40); if (surIntensiteMoteur()) { Serial.print("surintensite !"); moteur(0,0); delay(1000); moteur(0,1); // la je dois mettre que quant fin de course = 1 le moteur s'arrete } }
-----