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