Étape 1: Comment ça marche
Il s’agit de l’esquisse, tout le code est écrit dans la section de la boucle.
int tOn = 500; int tOffTime = 500; int timer; unsigned long previousMillis=0; #define pinLed 4 void setup() { pinMode(pinLed, OUTPUT); } void loop() { if (millis() - previousMillis) >= timer) { if (digitalRead(pinLed)==HIGH) { timer = tOff; } else { timer = tOn; } digitalWrite(pinLed, !digitalRead(pinLed)); } }
Nous allons voir comment cela fonctionne :
- tOn et tOff valeurs représentent combien de temps le led restera de suite et Pendant combien de temps restera éteint
- minuterie: à chaque cycle, cette valeur signifie « combien de temps jusqu'à ce que le led passera l’État » et ça va être égale à la tonne ou tOff
- previousMillis: nous avons rencontré déjà cela dans notre précédente inst Stocke la valeur précédente de millis() à sorcière l’état modifié led.
- si ((millis()-previousMillis) > = timer): Ceci se produire uniquement lorsque les valeurs de millis se sont écoulés depuis le dernier événement sera sera égale à "timer"
- si (digitalRead(ledPin)...: si la led est allumée, la variable « timer » va stocker le temps d’arrêt pour le prochain cycle et vice versa
Dans l’étape suivante, nous allons écrire tout ce code dans une fonction simple à l’aide de paramètres pour ajuster le tOn et tOff