Hi! I'm working on a project using blink without delay, specifically millis().
I need to blink 5 LEDs at various rates for lengths of time each.
I've got parts of my code working...
The first section of code works fine:
Blink all 5 LEDs at 1 blink per second
//goal: continuously flash all 5 at 1/sec
unsigned long timeNow = millis(); //find time elapsed since program started
if(timeNow - lastTime > int1) //if current time - last time > interval you want to blink at
{ lastTime = timeNow; //update lastTime to be now, as the last time the LED blinked
if(ledState == LOW){ //if the LEDstate is 0
ledState = HIGH; //make it 1
}
else{ //if the LEDstate is 1
ledState = LOW; //make it 0
}
}
digitalWrite(LED1, ledState); //update LED1's state to 1 or 0
digitalWrite(LED2, ledState);
digitalWrite(LED3, ledState);
digitalWrite(LED4, ledState);
digitalWrite(LED5, ledState);
}
I'm having trouble with a specific section:
Blink LED1 and LED 5 1 time per second for 2 seconds, then LED2 and 4 1 time per second for 2 seconds, then LED3 1 time per sec for 2 seconds.
I've got it working using delay(), however the idea of this project is to use blink without delay.
digitalWrite(LED1, HIGH); digitalWrite(LED5, HIGH); delay(1000);
digitalWrite(LED1, LOW); digitalWrite(LED5, LOW);delay(1000);
digitalWrite(LED1, HIGH); digitalWrite(LED5, HIGH);delay(1000);
digitalWrite(LED1, LOW); digitalWrite(LED5, LOW);delay(1000);
digitalWrite(LED2, HIGH); digitalWrite(LED4, HIGH);delay(1000);
digitalWrite(LED2, LOW); digitalWrite(LED4, LOW);delay(1000);
digitalWrite(LED2, HIGH); digitalWrite(LED4, HIGH);delay(1000);
digitalWrite(LED2, LOW); digitalWrite(LED4, LOW);delay(1000);
digitalWrite(LED3, HIGH); delay(1000);
digitalWrite(LED3, LOW); delay(1000);
digitalWrite(LED3, HIGH); delay(1000);
digitalWrite(LED3, LOW); delay(1000);
digitalWrite(LED2, HIGH); digitalWrite(LED4, HIGH);delay(1000);
digitalWrite(LED2, LOW); digitalWrite(LED4, LOW);delay(1000);
digitalWrite(LED2, HIGH); digitalWrite(LED4, HIGH);delay(1000);
digitalWrite(LED2, LOW); digitalWrite(LED4, LOW);delay(1000);}
How can I use millis() to make this work?