// Constante servant à stocker le numéro de broche sur laquelle est connectée notre LED
const int led_rouge_pin = 2;
const int led_verte_pin = 4;
const int led_bleu_pin = 3;
// Variable servant stocker le nombre de milliseconde s'étant écouler depuis
// le dernier changement d'état de la broche pilotant notre LED
long dernier_clignotement_rouge = 0;
long dernier_clignotement_verte = 0;
long dernier_clignotement_bleu = 0;
// Pour faire clignoter notre LED à une fréquence de 1Hz nous devons avoir une période de 1s
int demi_periode_rouge = 1000/4;
int demi_periode_bleu = 1000;
int demi_periode_verte = 1000/6;
void setup() {
// Nous initialisons notre communication série
Serial.begin(115200);
// Nous paramètrons la broche
pinMode(led_rouge_pin,OUTPUT);
pinMode(led_bleu_pin, OUTPUT);
pinMode(led_verte_pin, OUTPUT);
}
void loop() {
/*
Pour pouvoir faire clignoter notre LED, sans que cela bloque le déroulement de notre programme,
je vous propose cette solution :
si(temps_ecoulé_depuis_le_début_du_programme - temps_écoulé_depuis_le_début_du_programme_au_moment_du_dernier_changement_d-etat >= 1000/2){
on_change_l-état_de_notre_LED
on récupére et on stocke le temps écoulé depuis le début du programme
}
*/
if(millis() - dernier_clignotement_rouge >= demi_periode_rouge){
digitalWrite(led_rouge_pin,!digitalRead(led_rouge_pin));
dernier_clignotement_rouge = millis();
}
if(millis() - dernier_clignotement_verte >= demi_periode_verte){
digitalWrite(led_verte_pin,!digitalRead(led_verte_pin));
dernier_clignotement_verte = millis();
}
if(millis() - dernier_clignotement_bleu >= demi_periode_bleu){
digitalWrite(led_bleu_pin,!digitalRead(led_bleu_pin));
dernier_clignotement_bleu = millis();
}
}