#define pinRed 12
#define pinYellow 10
#define pinGreen 9
#define pinKey 11
int T = 3000;
void setup() {
// put your setup code here, to run once:
pinMode(pinRed, OUTPUT);
pinMode(pinYellow, OUTPUT);
pinMode(pinGreen, OUTPUT);
pinMode(pinKey, INPUT_PULLUP);
digitalWrite(pinRed, LOW);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, LOW);
}
bool ButtonTestDelayForRed() {
for (int i = 0; i <=T; i++){
if(digitalRead(pinKey) == LOW){
digitalWrite(pinRed, LOW);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, HIGH);
delay(T+1000);
digitalWrite(pinRed, HIGH);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, LOW);
delay(T);
break;
}
delay(1);
}
}
bool ButtonTestDelayForYellow() {
for (int i = 0; i <=T; i++){
if(digitalRead(pinKey) == LOW){
digitalWrite(pinRed, LOW);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, HIGH);
delay(T+1000);
digitalWrite(pinRed, HIGH);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, LOW);
delay(T);
digitalWrite(pinRed, LOW);
digitalWrite(pinYellow, HIGH);
digitalWrite(pinGreen, LOW);
delay(T);
break;
}
delay(1);
}
}
void loop() {
if(digitalRead(pinKey) == HIGH){
digitalWrite(pinRed, HIGH);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, LOW);
ButtonTestDelayForRed();
digitalWrite(pinRed, LOW);
digitalWrite(pinYellow, HIGH);
digitalWrite(pinGreen, LOW);
ButtonTestDelayForYellow();
digitalWrite(pinRed, LOW);
digitalWrite(pinYellow, LOW);
digitalWrite(pinGreen, HIGH);
delay(T+1000);
}
}