newbie led inter code tortueux

Et pour faire s'éteindre la led automatiquement au bout de quelques secondes voici une possibilité en modifiant mon précédent code:

#define TEMPO    3000
unsigned long dernier_evenement = millis();


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é
      digitalWrite(  broche_led[last_pressed], LOW );  // on éteint la LED précédente, marche aussi si la précédente est la même que la courante
      last_state = (i != last_pressed)  || !last_state;
      if ( last_state )                                // on allume la led si différente de la précédente OU si le précédent état est éteint
        digitalWrite( broche_led[i], HIGH );
      last_pressed = i;                                // on mémorise la dernière led qui a changé
      dernier_evenement = millis();        
      while ( digitalRead(broche_bp[i]) == HIGH );     // on attend le relaché
      break;                                           // on sort du for
    }
  }
  if ( (millis() - dernier_evenement) >= TEMPO )
  {
    digitalWrite( broche_led[last_pressed], LOW );
    last_state = false;
  }
}