// Pin definitions for LEDs
const int redLED = 3;
const int yellowLED = 4;
const int greenLED = 5;
// Seven segment display pins
const int sevSegPins[] = {7, 8, 9, 10, 11, 12, 13};
// Digits for 7-segment display
const byte numbers[10] = {
B11000000, // 0
B11111001, // 1
B10100100, // 2
B10110000, // 3
B10011001, // 4
B10010010, // 5
B10000010, // 6
B11111000, // 7
B10000000, // 8
B10010000 // 9
};
int counter = 0; // Counter for 7-segment display
void setup() {
// Initialize LEDs as output
pinMode(redLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
pinMode(greenLED, OUTPUT);
// Initialize seven-segment pins as output
for (int i = 0; i < 7; i++) {
pinMode(sevSegPins[i], OUTPUT);
}
}
void loop() {
// Red light on for 3 seconds
digitalWrite(redLED, HIGH);
displayNumber(counter);
delay(3000);
digitalWrite(redLED, LOW);
// Yellow light on for 3 second
counter = (counter + 1) % 10;
digitalWrite(yellowLED, HIGH);
displayNumber(counter);
delay(3000);
digitalWrite(yellowLED, LOW);
// Green light on for 3 seconds
counter = (counter + 1) % 10;
digitalWrite(greenLED, HIGH);
displayNumber(counter);
delay(3000);
digitalWrite(greenLED, LOW);
// Increment counter for next cycle
counter = (counter + 1) % 10;
}
// Function to display a number on the 7-segment display
void displayNumber(int num) {
byte segments = numbers[num];
for (int i = 0; i < 7; i++) {
digitalWrite(sevSegPins[i], bitRead(segments, i));
}
}