const int boutonA = 2;
const int boutonB = 3;
const int boutonC = 4;
const int boutonD = 5;
const int LED1 = 6;
const int LED2 = 7;
const int LED3 = 8;
const int LED4 = 9;
int boutonAval = 0;
int boutonBval = 0;
int boutonCval = 0;
int boutonDval = 0;
int valeurChanson = 0;
int lastChangeTime = 0;
int timeout = 500; // 0,5 seconde
void setup() {
pinMode(boutonA, INPUT_PULLUP);
pinMode(boutonB, INPUT_PULLUP);
pinMode(boutonC, INPUT_PULLUP);
pinMode(boutonD, INPUT_PULLUP);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void loop() {
int currentTime = millis();
if (digitalRead(boutonA) == LOW) {
boutonAval = 1;
} else {
boutonAval = 0;
}
if (digitalRead(boutonB) == LOW) {
boutonBval = 2;
} else {
boutonBval = 0;
}
if (digitalRead(boutonC) == LOW) {
boutonCval = 4;
} else {
boutonCval = 0;
}
if (digitalRead(boutonD) == LOW) {
boutonDval = 8;
} else {
boutonDval = 0;
}
valeurChanson = boutonAval + boutonBval + boutonCval + boutonDval;
// Vérifier si la valeur a changé et si le délai d'attente est écoulé
if (valeurChanson != lastChangeTime && currentTime - lastChangeTime >= timeout) {
// Logique pour allumer les LEDs en fonction du nombre de boutons pressés
if (valeurChanson == 3) {
allumerLED(LED1);
} else if (valeurChanson == 5) {
allumerLED(LED2);
} else if (valeurChanson == 6) {
allumerLED(LED3);
} else if (valeurChanson == 7) {
allumerLED(LED4);
} else if (valeurChanson == 9) {
allumerLED(LED1);
allumerLED(LED2);
} else if (valeurChanson == 10) {
allumerLED(LED1);
allumerLED(LED3);
} else if (valeurChanson == 11) {
allumerLED(LED1);
allumerLED(LED4);
} else if (valeurChanson == 12) {
allumerLED(LED2);
allumerLED(LED3);
} else if (valeurChanson == 13) {
allumerLED(LED2);
allumerLED(LED4);
} else if (valeurChanson == 14) {
allumerLED(LED3);
allumerLED(LED4);
} else {
eteindreLEDs();
}
// Mettre à jour le temps du dernier changement
lastChangeTime = currentTime;
}
}
void allumerLED(int pinLED) {
digitalWrite(pinLED, HIGH);
}
void eteindreLEDs() {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
}