Paso 1: Cómo funciona
Este es el bosquejo, el código está escrito en la sección de bucle.
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)); } }
Vamos a ver cómo funciona:
- representan valores tOn y tOff tiempo el led permanecerá encendido y cuánto tiempo permanecerá apagado
- contador de tiempo: en cada ciclo, este valor significa «cuánto tiempo hasta que el led cambiará a estado» y que va a ser igual a la tonelada o tOff
- previousMillis: ya esta conocimos en nuestra anterior inst. Guarda el valor anterior de millis() en la bruja de la situación cambiante llevada.
- si ((millis()-previousMillis) > = temporizador): esto se sucederá sólo cuando los valores de millis transcurran desde el evento anterior será igual a "timer"
- si (digitalRead(ledPin)...: si el led está encendido, la variable "contador" almacenará el tiempo de apagado para el siguiente ciclo y viceversa
En el siguiente paso vamos a escribir todo este código en una función simple utilizando parámetros para ajustar tOn y tOff