/* arduino action unique
08/11/2023
Dominique Hudry
Action exécutée une seule fois dans la loop
une led s'allume durant un certain temps puis s'éteint
une autre led éteinte s'allume apres la tempo
lien: https://wokwi.com/projects/380860078911817729
*/
const byte PinLed = 13;
const byte PinLed2 = 3;
const int Temporisation = 5000; // temporisation en milliseconde
bool ordreTempo = true; // déclenche la temporisation
unsigned long tempsActuel;
unsigned long tempsPrecedent = 0;
void setup() {
Serial.begin(9600);
pinMode(PinLed, OUTPUT);
pinMode(PinLed2, OUTPUT);
} // fin setup
void loop() {
tempsActuel = millis();
Serial.print("ordreTempo: ");
Serial.println(ordreTempo);
digitalWrite (PinLed, HIGH);// led allumée
if (ordreTempo == true) { //on appelle la tempo
digitalWrite(PinLed, HIGH);
digitalWrite(PinLed2, LOW);
temporisation();
} // fin if
else { //ordreTempo est à false alors attente
digitalWrite(PinLed, LOW);
digitalWrite(PinLed2, HIGH);
tempsActuel = millis();
tempsPrecedent = tempsActuel;//réactualisation
Serial.print(" Attente ");
} // fin else
} // fin loop
bool temporisation() {
tempsActuel = millis();
Serial.print("tempo en cours ");
if ((ordreTempo == true) && (tempsActuel - tempsPrecedent > Temporisation)) {
ordreTempo = false;
Serial.print("ordreTempo: ");
Serial.println(ordreTempo);
Serial.println("*** Fin tempo ***");
return (ordreTempo);
} // fin if
} // fin temporisation