Last active
September 23, 2020 15:37
-
-
Save GreenMoonArt/64e931ee3c8d8a4480e11fdaf6f11359 to your computer and use it in GitHub Desktop.
Use a timer (no delays) to randomly blink 2 LEDs.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
int greenLED = 11; | |
int orangeLED = 13; | |
unsigned long greenTimer = 0; | |
unsigned long greenInterval = 1000; //this will get updated in loop() | |
bool greenLEDstate = LOW; | |
unsigned long orangeTimer = 0; | |
unsigned long orangeInterval = 1000; //this will get updated in loop() | |
bool orangeLEDstate = LOW; | |
void setup() | |
{ | |
pinMode(greenLED, OUTPUT); | |
pinMode(orangeLED, OUTPUT); | |
} | |
void loop() | |
{ | |
unsigned long timer = millis(); // read in current time | |
if(timer - greenTimer >= greenInterval) // if interval reached | |
{ | |
greenTimer = timer; | |
greenInterval = random(100, 1000) ; // update interval | |
if(greenLEDstate == LOW) | |
{ | |
digitalWrite(greenLED, HIGH); | |
greenLEDstate = HIGH; | |
} | |
else | |
{ | |
digitalWrite(greenLED, LOW); | |
greenLEDstate = LOW; | |
} | |
} | |
if(timer - orangeTimer >= orangeInterval) // if interval reached | |
{ | |
orangeTimer = timer; | |
orangeInterval = random(100, 1000); // update interval | |
if(orangeLEDstate == LOW) | |
{ | |
digitalWrite(orangeLED, HIGH); | |
orangeLEDstate = HIGH; | |
} | |
else | |
{ | |
digitalWrite(orangeLED, LOW); | |
orangeLEDstate = LOW; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment