newbie led inter code tortueux

Salut,

:astonished: du bitwise, des tableaux multidimensionnel, de la manipulation de port, des machines d'état ...
Vous êtes parti dans des trucs hyper compliqué les mecs !

Restons simple, je propose ceci :

const byte broche_bp[] = {A0, A1, A2, A3, A4, A5, 2, 3 }; // Broches des boutons
const byte broche_led[] = {4, 5, 6, 7, 8, 9, 10, 11};     // Broches des leds
static byte valeurs[8] = {LOW};                           // Etat des led à t - 1

void setup() {
  for(byte i = 0; i < sizeof(broche_bp); ++i) {
    pinMode(broche_bp[i], INPUT);
    pinMode(broche_led[i], OUTPUT);
  }
}

void loop() {
  for(byte i = 0; i < sizeof(broche_bp); ++i) { // On scan chaque boutons
    if(digitalRead(broche_bp[i]) == HIGH) {     // Si le boutons est appuyé
      valeurs[i] = !valeurs[i];                 // On inverse l'état de la led
      for(byte j = 0; j < sizeof(broche_bp); ++j)            // Pour chaque leds
        digitalWrite(broche_led[j], (i == j && valeurs[i])); // On "écrit" HIGH si la led est celle correspondante au bouton appuyé et que l'état précédant de la led était LOW.	  
      while(digitalRead(broche_bp[i]) == HIGH); // On attend que le bouton soit relaché
      break;                                    // On quitte le for qui scan les boutons
    }
  }
}