static bool modeSilence = false;
static uint32_t debutModeSilence = 0;
static const uint32_t dureeModeSilence = 10000ul;
il faut savoir que dès que la prg démarre, le µ contrôleur compte les milli secondes, il incrémente un “compteur continue” il commence à 0 pour boucler au bout de 40 jours ( il me semble)
pour chronométrer un événement, on initialise une variable avec la valeur du compteur continu
par exemple 123456789
puis, à chaque tour de boucle, on contrôle si le temps alloué est passé.
exemple: en cas d’alarme, on peut faire tire le buzzer pendant 10 secondes, en soustrayant
le compteur continu et le compteur de début
millis()-compteur début >= temps alloué ( pour le buzzer, c’est 10 secondes )
même principe pour le clignotement des leds
pour faire clignoter les leds 1 fois par seconde, la période de la fréquence sera 1000 millisecondes
donc période / 2=500 . d’ ou allumée 500ms et éteinte 500ms
pour 2 clignotements par secondes, tu divises par 4 résultat = 250ms
pour compter le temps pendant lequel la led est allumée, on initialise un “chrono” avec la valeur actuelle du “compteur continu”
exemple: le compteur continue vaut 123456789ms, alors début clignotement est initialisé à 123456789ms
et on allume la led. Puis, à chaque tour de boucle on contrôle si le compteur continu à atteint le nombre de ms que l’on a alloué en demi période
soit par exemple: compteur_continu - début clignotement > = demi période
si oui, on éteint la led.