Projet

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 :slight_smile: