2 boutons poussoirs et 2 LED

Bonjour a tous,

Je n'arrive pas a compiler un programme :
J'ai un BP1 et un BP2, et deux LED : LED 1 et LED2
Si appui sur BP1, ça allume LED1. SI rappui ça l'eteins
Meme chose pour BP2, si appui ça allume LED2, sinon ça l'eteins.
Par contre, si LED1 est allumée, et appui sur BP2, ça eteins LED1 et allume LED2, et inversement.

Voici mon Code :

int button1 = 2 ;
int button2 = 4 ;
int led1 = 6 ;
int led2 = 8 ;
int led3 = 10 ;
bool a = 0;
bool b = 0;
bool c = 0;
bool d = 0;

void setup() {
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

}

void loop() {

bool BP = digitalRead(button1);
bool BP2 = digitalRead(button2);

while (a == 0) {
BP = digitalRead(button1);
while (BP == 1) {
BP = digitalRead(button1);
digitalWrite(led1, HIGH);
b = 1;
}
if (b == 1) {
a = 1;
}
}
while (a == 1) {
BP = digitalRead(button1);
while (BP == 1) {
BP = digitalRead(button1);
digitalWrite(led1, LOW);
b = 0;
}
if (b == 0) {
a = 0;
}
}
while (c == 0) {
BP2 = digitalRead(button2);
while (BP2 == 1) {
BP2 = digitalRead(button2);
digitalWrite(led3, HIGH);
d = 1;
}
if (d == 1) {
c = 1;
}
}
while (c == 1) {
BP2 = digitalRead(button2);
while (BP2 == 1) {
BP2 = digitalRead(button2);
digitalWrite(led3, LOW);
d = 0;
}
if (d == 0) {
c = 0;
}
}
}

LED2 n'est jamais utilisée.

int button1 = 2 ;
int button2 = 4 ;
int led1 = 6 ;
int led2 = 8 ;
int led3 = 10 ;
bool a = 0;
bool b = 0;
bool c = 0;
bool d = 0;

void setup() {
  pinMode(button1, INPUT_PULLUP);
  pinMode(button2, INPUT_PULLUP);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}

void loop() {

  bool BP = digitalRead(button1);
  bool BP2 = digitalRead(button2);

  while (a == 0) {
    BP = digitalRead(button1);
    while (BP == 1) {
      BP = digitalRead(button1);
      digitalWrite(led1, HIGH);
      b = 1;
    }
    if (b == 1) {
      a = 1;
    }
  }
  while (a == 1) {
    BP = digitalRead(button1);
    while (BP == 1) {
      BP = digitalRead(button1);
      digitalWrite(led1, LOW);
      b = 0;
    }
    if (b == 0) {
      a = 0;
    }
  }
  while (c == 0) {
    BP2 = digitalRead(button2);
    while (BP2 == 1) {
      BP2 = digitalRead(button2);
      digitalWrite(led3, HIGH);
      d = 1;
    }
    if (d == 1) {
      c = 1;
    }
  }
  while (c == 1) {
    BP2 = digitalRead(button2);
    while (BP2 == 1) {
      BP2 = digitalRead(button2);
      digitalWrite(led3, LOW);
      d = 0;
    }
    if (d == 0) {
      c = 0;
    }
  }
}

file for WOKWI.COM

diagram.json
{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-nano", "id": "nano", "top": 0, "left": 0, "attrs": {} },
    {
      "type": "wokwi-pushbutton",
      "id": "btn1",
      "top": -51.4,
      "left": 153.6,
      "attrs": { "color": "green" }
    },
    {
      "type": "wokwi-pushbutton",
      "id": "btn2",
      "top": -99.4,
      "left": 153.6,
      "attrs": { "color": "green" }
    },
    { "type": "wokwi-led", "id": "led1", "top": -138, "left": -5.8, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led2", "top": -99.6, "left": -5.8, "attrs": { "color": "red" } },
    { "type": "wokwi-led", "id": "led3", "top": -61.2, "left": -5.8, "attrs": { "color": "red" } },
    {
      "type": "wokwi-resistor",
      "id": "r1",
      "top": -101.65,
      "left": -57.6,
      "attrs": { "value": "330" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r2",
      "top": -63.25,
      "left": -57.6,
      "attrs": { "value": "330" }
    },
    {
      "type": "wokwi-resistor",
      "id": "r3",
      "top": -24.85,
      "left": -57.6,
      "attrs": { "value": "330" }
    }
  ],
  "connections": [
    [ "nano:GND.2", "btn1:2.l", "black", [ "v0" ] ],
    [ "nano:2", "btn1:1.l", "green", [ "v0" ] ],
    [ "nano:GND.2", "btn2:2.l", "black", [ "v0" ] ],
    [ "led1:C", "r1:2", "green", [ "v0" ] ],
    [ "led2:C", "r2:2", "green", [ "v0" ] ],
    [ "r3:2", "led3:C", "green", [ "v0" ] ],
    [ "nano:10", "led3:A", "green", [ "v0" ] ],
    [ "nano:8", "led2:A", "green", [ "v0" ] ],
    [ "nano:6", "led1:A", "green", [ "v0" ] ],
    [ "nano:GND.2", "r3:1", "black", [ "v-14.4", "h-182.9" ] ],
    [ "r3:1", "r2:1", "green", [ "v0" ] ],
    [ "r2:1", "r1:1", "green", [ "v0" ] ],
    [ "nano:4", "btn2:1.l", "green", [ "v0" ] ]
  ],
  "dependencies": {}
}

twobuttons

Bonjour et bienvenue @sha33 ,

Merci de prendre quelques minutes pour lire "Les bonnes pratiques du forum francophone" et les appliquer.

En particulier, la mise en forme du code avec les balises <code/>

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