const int red = 2;
const int yellow = 8;
const int green = 12;
const int button = 6;
int redInterval = 10000;
int yelInterval = 2000;
int greenInterval = 15000;
int currTime = 0;
int prevTime = 0;
int counter = 0;
void setup() {
pinMode(6, INPUT);
pinMode(2, OUTPUT);
pinMode(8, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(9600);
}
void loop() {
currTime = millis() - prevTime;
if (digitalRead(button) == HIGH){
if (currTime < 5000){
greenInterval = 20000;
redInterval = 5000;
}
else if (currTime < redInterval){
greenInterval = 20000;
}
}
if (counter == 0){
digitalWrite(red, HIGH);
if (currTime > (redInterval)){
digitalWrite(red, LOW);
counter = 1;
}
}
else if (counter == 1){
digitalWrite(green, HIGH);
if (currTime > (redInterval + greenInterval)){
digitalWrite(green, LOW);
counter = 2;
}
}
else if (counter == 2){
digitalWrite(yellow, HIGH);
if (currTime >= (redInterval + greenInterval + yelInterval)){
digitalWrite(yellow, LOW);
counter = 0;
prevTime = millis();
currTime = 0;
greenInterval = 15000;
redInterval = 10000;
}
}
}