Problème de code (bouton)

ça y est, j'ai réussit mais mon code ne fonctionne qu'avec des LED mais le compte a rebours ne fonctionne pas, seulement la première valeur s'affiche , vous allez mieux comprendre en lisant ce code

const int ledBlanche = 11;
const int ledRouge = 12;
const int bouton = 4;
int etatBouton;
int previousState;
unsigned long currentMillis = 0;    // Millis actuel
unsigned long lastMillis = 0;       // Millis sauvegardé
unsigned long elapsedMillis = 0;    // Millis écoulé entre currentMillis et lastMillis
unsigned long counterPrint = 0;
unsigned long counter = 20000; // valeur du chrono


void setup()
{
  pinMode(bouton, INPUT);
  pinMode(ledBlanche, OUTPUT);
  pinMode(ledRouge, OUTPUT);
  Serial.begin(9600);
  previousState = HIGH;
}

void loop()
{
  etatBouton = digitalRead(bouton);
  currentMillis = millis();
  elapsedMillis = ( lastMillis - currentMillis );
  lastMillis = currentMillis;



  if (etatBouton == LOW) // si le bouton est enfoncé
  {
    digitalWrite(ledBlanche, HIGH);
    digitalWrite(ledRouge, LOW);

    counter += elapsedMillis;

    // Affichage de la valeur toutes les secondes
    if ( ( counterPrint + 1000 ) < counter ) {

      Serial.println( counter / 1000 );

      counterPrint = counter;

    }



  }

  if (etatBouton == HIGH && previousState == LOW) // si le bouton est relâché
  {
    digitalWrite(ledRouge, HIGH);
    digitalWrite(ledBlanche, LOW);
  }

  previousState = etatBouton;
}

Je pense que rien ne s'affiche car elapsedMillis vaut tres souvent 0.

Rajoute un delay(10) a la fin de ton loop. ça sert a rien de tourner plein régime.

Fait un Serial.println(elapsedMillis) pour voir si il vaut 0.