En prenant compte de tes remarques, j'ai ré-écris le code ce qui m'as donné ceci :
const int brocheMoteur = 3;//commande moteur sur 3
const int on = 11;//bouton K3 branché sur 11
const int reset = 10;//bouton K2 branché sur 10
const int capteur = 9;//bouton K1 branché sur 9
const int buzzer = 2;//meme si c'est 6 sur le shield, on prend une LED comme exemple
boolean etatAllumage;
boolean etatOn;
int compteurTours = 0;
void setup() {
// put your setup code here, to run once:
pinMode(brocheMoteur, OUTPUT);
pinMode(on, INPUT);
pinMode(reset, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
pinMode(capteur, INPUT);
Serial.begin(9600);
etatAllumage=0;
etatOn = HIGH;
}
void loop()
{
//put your main code here, to run repeatedly:
boolean etatReset = digitalRead(reset);
if (etatReset == true)//Si reset est appuyé
{
boolean etatCapteur = digitalRead(capteur);
while (etatCapteur == false) //Tant que le capteur de position initiale n'est pas détecté
{
digitalWrite(brocheMoteur, HIGH);
boolean etatCapteur = digitalRead(capteur); //on fait fonctionner la LED ou moteur
}
analogWrite(brocheMoteur,LOW); //on l'arrête
}
else//Si reset n'est pas appuyé
{
boolean etatOn = digitalRead(on);
if (etatOn == false) //si le bouton "on" est appuyé
{
etatAllumage = 1;
}
}
while (etatAllumage == 1)
{
digitalWrite(brocheMoteur,HIGH);
boolean etatCapteur = digitalRead(capteur);
if (etatCapteur == true) //si le capteur est appuyé, comment mettre un front montant ?
{
compteurTours = compteurTours + 1;
delay(1000);//remplace le front montant pour le moment
if (compteurTours == 30)//si le capteur est détecté 30 fois
{
digitalWrite(brocheMoteur, HIGH);//le moteur s'arrete
digitalWrite(buzzer, HIGH);//buzzer s'allume
delay(1000);
digitalWrite(buzzer, LOW);//puis s'arrete après 1sec
compteurTours = 0;//reset du compteur
}
boolean etatOn = digitalRead(on);
if (etatOn == true) //si le bouton "on" est appuyé
{
etatAllumage = 0;
}
}
}
digitalWrite(brocheMoteur,LOW);
delay(200);
}
et mon montage donne cela (voir image associée).
Cependant, cela ne fonctionne toujours pas, en simulant sur le site TinkerCAD, les variables etatReset et etatCapteur ne changent pas de valeur.
Serait-il possible que vous me montriez mes erreurs car je ne comprends pas pourquoi mon programme ne fonctionne pas.
Merci de m'accorder de votre temps ![]()
