// Define pin numbers for the traffic lights
const int green1Pin = 0; // Green light for direction 1
const int yellow1Pin = 1; // Yellow light for direction 1
const int red1Pin = 2; // Red light for direction 1
const int green2Pin = 10; // Green light for direction 2
const int yellow2Pin = 9; // Yellow light for direction 2
const int red2Pin = 8; // Red light for direction 2
const int green3Pin = 4; // Green light for direction 3
const int yellow3Pin = 5; // Yellow light for direction 3
const int red3Pin = 6; // Red light for direction 3
const int green4Pin = 13; // Green light for direction 4
const int yellow4Pin = 12; // Yellow light for direction 4
const int red4Pin = 11; // Red light for direction 4
void setup() {
// Set the LED pins as OUTPUT
pinMode(green1Pin, OUTPUT);
pinMode(yellow1Pin, OUTPUT);
pinMode(red1Pin, OUTPUT);
pinMode(green2Pin, OUTPUT);
pinMode(yellow2Pin, OUTPUT);
pinMode(red2Pin, OUTPUT);
pinMode(green3Pin, OUTPUT);
pinMode(yellow3Pin, OUTPUT);
pinMode(red3Pin, OUTPUT);
pinMode(green4Pin, OUTPUT);
pinMode(yellow4Pin, OUTPUT);
pinMode(red4Pin, OUTPUT);
// Set all lights to red initially
digitalWrite(red1Pin, HIGH);
digitalWrite(red2Pin, HIGH);
digitalWrite(red3Pin, HIGH);
digitalWrite(red4Pin, HIGH);
delay(500);
}
void loop() {
// Traffic light sequence for direction 1
digitalWrite(red2Pin, HIGH);
digitalWrite(red3Pin, HIGH);
digitalWrite(red4Pin, HIGH);
digitalWrite(red1Pin, LOW);
digitalWrite(green1Pin, HIGH);
delay(5000); // Green light for 5 seconds
digitalWrite(green1Pin, LOW);
digitalWrite(red2Pin, HIGH);
digitalWrite(yellow1Pin, HIGH);
delay(2000); // Yellow light for 2 seconds
digitalWrite(yellow1Pin, LOW);
// No delay after red1
// Traffic light sequence for direction 2
digitalWrite(red1Pin, HIGH);
digitalWrite(red3Pin, HIGH);
digitalWrite(red4Pin, HIGH);
delay(100);
digitalWrite(red2Pin, LOW);
digitalWrite(green2Pin, HIGH);
delay(5000); // Green light for 5 seconds
digitalWrite(green2Pin, LOW);
delay(100);
digitalWrite(red1Pin, HIGH);
digitalWrite(yellow2Pin, HIGH);
delay(2000); // Yellow light for 2 seconds
digitalWrite(yellow2Pin, LOW);
digitalWrite(red1Pin, LOW);
// No delay after red2
// Traffic light sequence for direction 3
digitalWrite(red1Pin, HIGH);
digitalWrite(red2Pin, HIGH);
digitalWrite(red4Pin, HIGH);
delay(100);
digitalWrite(red3Pin, LOW);
digitalWrite(green3Pin, HIGH);
delay(5000); // Green light for 5 seconds
digitalWrite(green3Pin, LOW);
delay(100);
digitalWrite(red1Pin, HIGH);
digitalWrite(yellow3Pin, HIGH);
delay(2000); // Yellow light for 2 seconds
digitalWrite(yellow3Pin, LOW);
digitalWrite(red1Pin, LOW);
// No delay after red3
// Traffic light sequence for direction 4
digitalWrite(red1Pin, HIGH);
digitalWrite(red2Pin, HIGH);
digitalWrite(red3Pin, HIGH);
delay(100);
digitalWrite(red4Pin, LOW);
digitalWrite(green4Pin, HIGH);
delay(5000); // Green light for 5 seconds
digitalWrite(green4Pin, LOW);
delay(100);
digitalWrite(red1Pin, HIGH);
digitalWrite(yellow4Pin, HIGH);
delay(2000); // Yellow light for 2 seconds
digitalWrite(yellow4Pin, LOW);
digitalWrite(red1Pin, LOW);
// No delay after red4
}