I want my LED to turn on gradually without using the delay()
function and blocking the code.
Here's the code i came up with:
int led_pin = 6;
unsigned long millisTimer = 0;
int PWMdelay = 5000;
int condition = 0;
int i = 0;
void setup() {
pinMode(led_pin, OUTPUT);
}
void loop() {
if(condition == 1){
if ((millis() - millisTimer) > PWMdelay){
if(i<255){
i++;
millisTimer = millis();
}
}
analogWrite(led_pin, i);
}
}
Is this the "right way" of slowing the PMW duration from 0 to 255 or there are alternative/better/easier ways?
i--
? Do you want to fade out the LED after the fade in? That does not work this way, since it will only vary between 254 and 255. – chrisl Jun 23 '19 at 14:44millisTimer = millis();
outside if-else – Juraj Jun 23 '19 at 14:46BlinkWithoutDelay
example) – Sim Son Jun 23 '19 at 14:46