#define trafficGreenPin 2
#define trafficAmberPin 3
#define trafficRedPin 4
#define pedestrianGreenPin 5
#define pedestrianRedPin 6
#define buttonPin 7
const int trafficAmberTime = 3000; // Amber light duration (ms)
const int trafficRedTime = 5000; // Red light duration (ms)
const int pedestrianGreenTime = 5000; // Pedestrian green light duration (ms)
void setup() {
pinMode(trafficGreenPin, OUTPUT);
pinMode(trafficAmberPin, OUTPUT);
pinMode(trafficRedPin, OUTPUT);
pinMode(pedestrianGreenPin, OUTPUT);
pinMode(pedestrianRedPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
// Initialize traffic lights to green
digitalWrite(trafficGreenPin, HIGH);
digitalWrite(trafficAmberPin, LOW);
digitalWrite(trafficRedPin, LOW);
digitalWrite(pedestrianGreenPin, LOW);
digitalWrite(pedestrianRedPin, HIGH);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
// Button pressed, initiate traffic light sequence
digitalWrite(trafficGreenPin, LOW);
digitalWrite(trafficAmberPin, HIGH);
delay(trafficAmberTime);
digitalWrite(trafficAmberPin, LOW);
digitalWrite(trafficRedPin, HIGH);
delay(1000);
digitalWrite(trafficRedPin, HIGH);
digitalWrite(pedestrianGreenPin, HIGH);
digitalWrite(pedestrianRedPin, LOW);
delay(pedestrianGreenTime);
digitalWrite(pedestrianGreenPin, LOW);
digitalWrite(pedestrianRedPin, HIGH);
delay(1000);
digitalWrite(trafficRedPin, HIGH);
digitalWrite(trafficAmberPin, HIGH);
delay(trafficAmberTime);
digitalWrite(trafficAmberPin, LOW);
digitalWrite(trafficGreenPin, HIGH);
digitalWrite(trafficRedPin, LOW);
}
}