int red = 3;
int yellow = 4;
int green = 5;
int stop = 8;
int walk = 9;
int button = 13;
int crossTime = 5000;
unsigned long buttonGap ;
void setup () {
pinMode(red, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
pinMode(stop, OUTPUT);
pinMode(walk, OUTPUT);
pinMode(button, INPUT);
digitalWrite(red, HIGH);
digitalWrite(walk, HIGH);
delay(3000);
digitalWrite(red, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(stop, HIGH);
digitalWrite(walk, LOW);
delay(1000);
digitalWrite(green, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(stop, HIGH);
digitalWrite(walk, LOW);
delay(2000);
}
void loop(){
int state = digitalRead(button);
if(state==HIGH && (millis() - buttonGap) > 5000) {
switchLights();
}
}
void switchLights() {
digitalWrite(green,LOW);
digitalWrite(yellow,HIGH);
digitalWrite(stop, HIGH);
delay(2000);
digitalWrite(yellow,LOW);
digitalWrite(red,HIGH);
digitalWrite(stop, HIGH);
delay(100);
digitalWrite(stop,LOW);
digitalWrite(walk,HIGH);
delay(crossTime);
for (int x=0; x<10; x++){
digitalWrite(walk,HIGH);
delay(250);
digitalWrite(walk,LOW);
delay(250);
}
digitalWrite(stop, HIGH);
delay(50);
digitalWrite(green,HIGH);
digitalWrite(red,LOW);
buttonGap = millis();
}