int REDCAR1 = 21;
int YELLOWCAR1 = 22;
int GREENCAR1 = 23;
int REDCAR2 = 16;
int YELLOWCAR2 = 17;
int GREENCAR2 = 18;
int REDPED = 26;
int GREENPED = 27;
int BUTTON = 13;
int crossTime = 5000;
unsigned long changeTime;
void setup() {
pinMode(REDCAR1, OUTPUT);
pinMode(YELLOWCAR1, OUTPUT);
pinMode(GREENCAR1, OUTPUT);
pinMode(REDCAR2, OUTPUT);
pinMode(YELLOWCAR2, OUTPUT);
pinMode(GREENCAR2, OUTPUT);
pinMode(REDPED, OUTPUT);
pinMode(GREENPED, OUTPUT);
pinMode(BUTTON, INPUT);
digitalWrite(GREENCAR2, HIGH);
digitalWrite(REDCAR1, HIGH);
digitalWrite(REDPED, HIGH);
digitalWrite(REDCAR2, LOW);
digitalWrite(YELLOWCAR2, LOW);
digitalWrite(YELLOWCAR1, LOW);
digitalWrite(GREENCAR1, LOW);
digitalWrite(GREENPED, LOW);
}
void loop() {
if (millis() - changeTime >= crossTime + 4000) {
changeLights();
}
}
void changeLights() {
digitalWrite(GREENCAR2, LOW);
digitalWrite(YELLOWCAR2, HIGH);
delay(2000);
digitalWrite(YELLOWCAR2, LOW);
digitalWrite(REDCAR2, HIGH);
digitalWrite(REDCAR1, LOW);
digitalWrite(REDPED, LOW);
digitalWrite(GREENCAR1, HIGH);
digitalWrite(GREENPED, HIGH);
delay(crossTime);
digitalWrite(GREENCAR1, LOW);
digitalWrite(YELLOWCAR1, HIGH);
digitalWrite(GREENPED, HIGH);
delay(2000);
for (int x=0; x<10; x++) {
digitalWrite(GREENPED, LOW);
delay(100);
digitalWrite(GREENPED, HIGH);
delay(100);
}
digitalWrite(GREENPED, LOW);
{
digitalWrite(REDCAR1, HIGH);
digitalWrite(REDPED, HIGH);
digitalWrite(GREENCAR2, HIGH);
digitalWrite(YELLOWCAR1, LOW);
digitalWrite(REDCAR2, LOW);
digitalWrite(GREENCAR1, LOW);
changeTime = millis();
}
}