How do I make two or more leds blink one at a time? For instance, red blinks first then green blinks, blue blinks, and finally it loops back to red, and continues the cycle again. This is for case 2
int redled = A3;
int greenled = 5;
int blueled = 8;
int purpleled1 = 9;
int purpleled2 = 10;
int yellowled1 = 12;
int yellowled2 = A1;
int button = A4;
int buttonstate;
int toggle = 0;
unsigned long previousMillis = 0;
unsigned long previousMillis2 = 0;
const long interval = 1000;
const long interval2 = 3000;
int LDR = 0;
int Light;
long OnTime1 = 1000;
long OffTime1 = 10000;
long OnTime2 = 1000;
long OffTime2 = 1000;
int redledstate = LOW;
int greenledstate = LOW;
void setup() {
pinMode(redled, OUTPUT);
pinMode(greenled, OUTPUT);
pinMode(blueled, OUTPUT);
pinMode(purpleled1, OUTPUT);
pinMode(purpleled2, OUTPUT);
pinMode(yellowled1, OUTPUT);
pinMode(yellowled2, OUTPUT);
pinMode(LDR, INPUT);
pinMode(button, INPUT);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
Light = analogRead(LDR);
Serial.println(Light);
buttonstate = digitalRead(button);
if (buttonstate == HIGH)
{
delay(200);
toggle = toggle + 1;
}
else if (toggle > 6)
{
delay(150);
toggle = 0;
}
else{}
switch (toggle) {
case 0: // Off
Serial.println("Off");
{
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
break;
case 2:
{
unsigned long currentMillis = millis();
if((redledstate == HIGH) && (currentMillis - previousMillis >= interval))
{
previousMillis = currentMillis;
Serial.println(previousMillis);
redledstate = LOW;
digitalWrite(redled, LOW);
}
else if ((redledstate == LOW) && (currentMillis - previousMillis >= interval) )
{
previousMillis = currentMillis;
redledstate = HIGH;
digitalWrite(redled, HIGH);
}
else if ((greenledstate == HIGH) && (currentMillis - previousMillis2 >= interval2))
{
// save the last time you blinked the LED
previousMillis2 = currentMillis;
greenledstate = LOW;
digitalWrite(greenled, LOW);
}
else if((greenledstate == LOW) && (currentMillis - previousMillis2 >= interval2))
{
previousMillis2 = currentMillis;
greenledstate = HIGH;
digitalWrite(greenled, HIGH);
}
}
}
break;
case 3: // Green
Serial.println("Green");
{
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
break;
case 4: // Blue
Serial.println("Blue");
{
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(blueled, HIGH);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
break;
case 5:
Serial.println("Light");
{
if (buttonstate == HIGH)
{
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
else if (Light > 700)
{
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
else if (Light > 650 && Light < 700)
{
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
else if (Light > 600 && Light < 650)
{
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
else if (Light > 550 && Light < 600)
{
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(blueled, HIGH);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
else if (Light > 500 && Light < 550)
{
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, HIGH);
digitalWrite(purpleled2, HIGH);
digitalWrite(yellowled1, LOW);
digitalWrite(yellowled2, LOW);
}
else if (Light > 450 && Light < 500)
{
digitalWrite(redled, LOW); // turn the LED on (HIGH is the voltage level)
digitalWrite(greenled, LOW);
digitalWrite(blueled, LOW);
digitalWrite(purpleled1, LOW);
digitalWrite(purpleled2, LOW);
digitalWrite(yellowled1, HIGH);
digitalWrite(yellowled2, HIGH);
}
else
{
}
}
}
}