ç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;
}