const int displayPins[7] = {2, 3, 4, 5, 6, 7, 8}; // Pins for 7-segment display segments
const int redPin = 9; // Red LED connected to pin 9
const int yellowPin = 10; // Yellow LED connected to pin 10
const int greenPin = 11; // Green LED connected to pin 11
const int countdownDuration = 30; // Countdown duration in seconds
void setup() {
// Initialize display pins as OUTPUT
for (int i = 0; i < 7; i++) {
pinMode(displayPins[i], OUTPUT);
}
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// Red light
lightLED(3); // Display "red" on the 7-segment display
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
delay(1000); // Red light duration
// Red and Yellow lights (transition)
lightLED(4); // Display "r y" on the 7-segment display
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
delay(1000); // Transition duration
// Green light
lightLED(2); // Display "grn" on the 7-segment display
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, HIGH);
delay(1000); // Green light duration
// Yellow light
lightLED(1); // Display "yel" on the 7-segment display
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
digitalWrite(greenPin, LOW);
delay(1000); // Yellow light duration
}
void lightLED(int mode) {
switch (mode) {
case 1: // Yellow
digitalWrite(displayPins[0], LOW); // y
digitalWrite(displayPins[1], HIGH); // e
digitalWrite(displayPins[2], HIGH); // l
digitalWrite(displayPins[3], HIGH); // l
digitalWrite(displayPins[4], LOW); // o
digitalWrite(displayPins[5], LOW); // (Blank)
digitalWrite(displayPins[6], LOW); // (Blank)
break;
case 2: // Green
digitalWrite(displayPins[0], HIGH); // g
digitalWrite(displayPins[1], LOW); // e
digitalWrite(displayPins[2], LOW); // l
digitalWrite(displayPins[3], LOW); // l
digitalWrite(displayPins[4], LOW); // o
digitalWrite(displayPins[5], LOW); // (Blank)
digitalWrite(displayPins[6], LOW); // (Blank)
break;
case 3: // Red
digitalWrite(displayPins[0], LOW); // r
digitalWrite(displayPins[1], LOW); // e
digitalWrite(displayPins[2], LOW); // l
digitalWrite(displayPins[3], LOW); // l
digitalWrite(displayPins[4], HIGH); // o
digitalWrite(displayPins[5], LOW); // (Blank)
digitalWrite(displayPins[6], LOW); // (Blank)
break;
case 4: // Red and Yellow (transition)
digitalWrite(displayPins[0], LOW); // r
digitalWrite(displayPins[1], HIGH); // e
digitalWrite(displayPins[2], LOW); // l
digitalWrite(displayPins[3], LOW); // l
digitalWrite(displayPins[4], HIGH); // o
digitalWrite(displayPins[5], LOW); // (Blank)
digitalWrite(displayPins[6], LOW); // (Blank)
break;
default: // Turn off display
for (int i = 0; i < 7; i++) {
digitalWrite(displayPins[i], LOW);
}
break;
}
}