#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Initialiser l'écran LCD avec l'adresse I2C habituelle
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Broches des LEDs
const int ledPins[] = {2, 3, 4, 5, 6};
const int numLeds = 5; // Nombre de LEDs
unsigned long startTime;
void setup() {
lcd.init(); // Initialise l'écran LCD
lcd.backlight(); // Active le rétroéclairage
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT); // Définit les broches des LEDs comme sorties
digitalWrite(ledPins[i], LOW); // S'assure que toutes les LEDs sont éteintes
}
}
void loop() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], HIGH); // Allume la LED i
startTime = millis(); // Enregistre le temps de début
while (millis() - startTime < 5000) {
updateLCD(i); // Met à jour l'écran LCD avec le temps restant
}
digitalWrite(ledPins[i], LOW); // Éteint la LED i
}
lcd.clear();
lcd.print("Le melange est");
lcd.setCursor(0, 1);
lcd.print("prete");
while(1); // Arrête le programme
}
void updateLCD(int ledIndex) {
lcd.clear();
if (ledIndex < 4) {
lcd.print("R");
lcd.print(ledIndex + 1);
lcd.print(", T: ");
} else {
lcd.print("Melange sera");
lcd.setCursor(0, 1);
lcd.print("prete dans T: ");
}
lcd.print(5 - (millis() - startTime) / 1000);
lcd.print(" sec");
delay(100);
}