int vehicle_red = 3;
int vehicle_yellow = 6;
int vehicle_green = 12;
int tao_red = 18;
int tao_green = 20;
int button = 17;
int cross = 1000;
unsigned long changeTime = 0;
int buttonState = 0;
void setup()
{
pinMode(vehicle_red, OUTPUT);
pinMode(vehicle_yellow, OUTPUT);
pinMode(vehicle_green, OUTPUT);
pinMode(tao_red, OUTPUT);
pinMode(tao_green, OUTPUT);
pinMode(button, INPUT);
}
void loop()
{
buttonState = digitalRead(button);
if (buttonState == 1 && (millis() - changeTime) > 2000)
{
changeLights();
}
else
{
digitalWrite(vehicle_green, HIGH);
digitalWrite(tao_red, HIGH);
digitalWrite(tao_green, LOW);
digitalWrite(vehicle_red, LOW);
delay(2000);
digitalWrite(vehicle_green, LOW);
digitalWrite(vehicle_yellow, HIGH);
delay(2000);
digitalWrite(vehicle_yellow, LOW);
digitalWrite(tao_red, LOW);
digitalWrite(tao_green, HIGH);
digitalWrite(vehicle_red, HIGH);
delay(2000);
digitalWrite(tao_red, LOW);
digitalWrite(tao_green, LOW);
digitalWrite(vehicle_red, LOW);
}
}
void changeLights()
{
digitalWrite(vehicle_green, LOW);
for (int x = 0; x < 13; x++)
{
digitalWrite(tao_red, HIGH);
digitalWrite(vehicle_yellow, HIGH);
digitalWrite(tao_green, LOW);
delay(400);
digitalWrite(tao_red, LOW);
digitalWrite(vehicle_yellow, LOW);
delay(400);
}
for (int y = 10; y < 100; y++)
{
digitalWrite(tao_green, HIGH);
digitalWrite(vehicle_red, HIGH);
delay(y);
digitalWrite(tao_green, LOW);
delay(y);
}
changeTime = millis();
}