Qui trouvera la solution??

Bonjour à la communauté,

Je suis nouveau sur le site et comme vous vous en doutez, je crée mes propres expériences. Suite à la leçon sur les leds et à la leçon sur les interrupteurs, je décide de créer une board un peu plus complexe comprenant :

  • 5 interrupteurs
  • 4 leds
  • 1 led rgb

avec un mode on off pour chacun.

Je ne teste qu'une partie de mon schéma grâce à l'allumage d'une seule led via deux interrupteurs (le reste étant également monté)

Le problème :
le schéma 1 fonctionne : grâce aux deux premiers interrupteurs, je peux allumer et éteindre ma led jaune.
Le schéma 2 ne fonctionne pas. Pourtant, c'est le même avec d'autres variables, sur les mêmes ports. La led jaune reste constamment allumée et les interrupteurs ne fonctionnent pas.

J'ai essayé les majuscules, les minuscules pour les variables. J'ai comparé le code ligne par ligne. Pourquoi ça ne fonctionne pas? Pour moi, ce sont les deux-mêmes alors que visiblement pas.

SCHEMA 1

int LED = 2;
int INTERRUPTEUR_A = 9;
int INTERRUPTEUR_B = 8;

byte leds = 0;

void setup() 
{
  pinMode(LED, OUTPUT);
  pinMode(INTERRUPTEUR_A, INPUT_PULLUP);  
  pinMode(INTERRUPTEUR_B, INPUT_PULLUP);  
}

void loop() 
{
  if (digitalRead(INTERRUPTEUR_A) == LOW)
  {
    digitalWrite(LED, HIGH);
  }
  if (digitalRead(INTERRUPTEUR_B) == LOW)
  {
    digitalWrite(LED, LOW);
  }
}

SCHEMA 2

int LEDJAUNE = 2;
int INTERRUPTEUR1 = 8;
int INTERRUPTEUR2 = 9;

byte leds = 0;

void setup()
{
  pinMode (LEDJAUNE, OUTPUT);
  pinMode (INTERRUPTEUR1, INPUT_PULLUP);
  pinMode (INTERRUPTEUR2, INPUT_PULLUP);
  
}

void loop()
{
  if (digitalRead(INTERRUPTEUR1) == LOW);
  {
    digitalWrite(LEDJAUNE, HIGH);
  }
  if (digitalRead(INTERRUPTEUR2) == LOW);
  {
    digitalWrite(LEDJAUNE, LOW);
    
  }

}

Regard la difference:

  if (digitalRead(INTERRUPTEUR_A) == LOW)

n'est pas la meme chose:

  if (digitalRead(INTERRUPTEUR1) == LOW);
int INTERRUPTEUR_A = 9;
int INTERRUPTEUR_B = 8;

et

int INTERRUPTEUR1 = 8;
int INTERRUPTEUR2 = 9;

l'erreur est dans le ; après la condition du if

bravo wildbill :slight_smile:

l'autre erreur est de poster en français dans le forum anglais....

Merci à tous, thank you all :slight_smile: