Boucle if non prise en compte

Bonjour je suis débutant en arduino et j'essaye de faire un sorte de jeu pu j'appui sur 4 boutons pour allumer/éteindre des leds, cette partie du code marche mais j'aimerais que quand les 3 leds sont allumées, qu'elles clignotent mais le problème c'est qu'elles le font directement et la première condition if est skippée. Quelqu'un aurait-il une solution ?

#define ledApin 12
#define ledBpin 11
#define ledCpin 10
#define buttonApin 2
#define buttonBpin 3
#define buttonCpin 4
#define buttonDpin 5
void setup() 
{
  pinMode(ledApin, OUTPUT);
  pinMode(ledBpin, OUTPUT);
  pinMode(ledCpin, OUTPUT);
  pinMode(buttonApin, INPUT_PULLUP);  
  pinMode(buttonBpin, INPUT_PULLUP);  
  pinMode(buttonCpin, INPUT_PULLUP);
  pinMode(buttonDpin, INPUT_PULLUP);  
}
void loop() 
{
  analogWrite(5,LOW) ;
  analogWrite(6,LOW);
  analogWrite(7,LOW);
  int bouton_2=0;
  int bouton_3=0;
  int bouton_4=0;
  int bouton_5=0;
  int compteur = 0;
  
  if (analogRead(6)==LOW){
  
    if (digitalRead(buttonBpin) == LOW)
    {
      digitalWrite(10,HIGH);
      digitalWrite(11,LOW);
      digitalWrite(12,HIGH);
    }
    if (digitalRead(buttonApin) == LOW)
    {
      digitalWrite(12,HIGH);
      digitalWrite(11,HIGH);
    }
    if (digitalRead(buttonCpin) == LOW )
    {
      digitalWrite(12,LOW);
      digitalWrite(11,LOW);
      digitalWrite(10,HIGH);
    }
    if (digitalRead(buttonDpin) == LOW)
    {
      digitalWrite(12,HIGH);
      digitalWrite(11,LOW);
      digitalWrite(10,LOW);
    }
  }
  else{
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    delay(1000);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
    digitalWrite(12,LOW);
    delay(1000);
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    delay(1000);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
    digitalWrite(12,LOW);
 }
}

Bonjour,

Qu'est ce que tu veux faire avec cette instruction?
if (analogRead(6) == LOW) {
Si tu compares à LOW c'est la lecture d'une entrée digitale donc digitalRead()

Qu'est ce qui est connecté sur la pin 6

Qu'est ce que tu veux faire avec ces instructions?

  analogWrite(5,LOW) ;
  analogWrite(6,LOW);
  analogWrite(7,LOW);

Tu as défini des constantes pour les pins de led, donc pourquoi tu utilises des numéros de pin en dur

    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.