Skip to content

Instantly share code, notes, and snippets.

@brysonian
Created October 21, 2019 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brysonian/8fec9ffcb8bd562a8f0c0faaf7cc8df5 to your computer and use it in GitHub Desktop.
Save brysonian/8fec9ffcb8bd562a8f0c0faaf7cc8df5 to your computer and use it in GitHub Desktop.
Simple Sketch to Randomly Choose LEDs
const int BUTTON_PIN = 9;
const int LED_PIN = 13;
const int LED2_PIN = 10;
int state = 0;
int lastVal = 0;
int ledState = LOW;
int led2State = LOW;
long startTime = 0;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
randomSeed(analogRead(0));
}
void loop() {
int val = digitalRead(BUTTON_PIN);
if ((val == LOW) && (lastVal == HIGH)) {
if (state == 0 || state == 2) {
state = 1;
}
startTime = millis();
}
lastVal = val;
if (state == 1 && millis() > startTime + 10000) {
state = 2;
long rnd = random(100);
if (rnd < 50) {
ledState = HIGH;
led2State = LOW;
} else {
ledState = LOW;
led2State = HIGH;
}
startTime = millis();
}
if (state == 2 && millis() > startTime + 10000) {
state = 0;
startTime = millis();
}
if (state == 0) {
digitalWrite(LED_PIN, LOW);
digitalWrite(LED2_PIN, LOW);
} else if (state == 1) {
digitalWrite(LED_PIN, ledState);
digitalWrite(LED2_PIN, led2State);
if (ledState == LOW) {
ledState = HIGH;
led2State = LOW;
} else {
ledState = LOW;
led2State = HIGH;
}
delay(200);
} else {
digitalWrite(LED_PIN, ledState);
digitalWrite(LED2_PIN, led2State);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment