// Define constants for pin numbers
const int redLedPin = 12;
const int yellowLedPin = 7;
const int greenLedPin = 2;
// Define constants for timing
const int redDuration = 5000; // 5000 milliseconds (5 seconds) for red light
const int yellowDuration = 2000; // 2000 milliseconds (2 seconds) for yellow light
const int greenDuration = 5000; // 5000 milliseconds (5 seconds) for green light
void setup() {
// Set the LED pins as outputs
pinMode(redLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
// Initial default state for the traffic light
trafficLightDefault();
}
void loop() {
// Traffic light sequence
redLight();
yellowLight();
greenLight();
}
void trafficLightDefault() {
// Default state: Red light on, others off
digitalWrite(redLedPin, HIGH);
digitalWrite(yellowLedPin, LOW);
digitalWrite(greenLedPin, LOW);
delay(redDuration);
}
void redLight() {
// Red light on, others off
digitalWrite(redLedPin, HIGH);
digitalWrite(yellowLedPin, LOW);
digitalWrite(greenLedPin, LOW);
delay(redDuration);
}
void yellowLight() {
// Yellow light on, others off
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
delay(yellowDuration);
}
void greenLight() {
// Green light on, others off
digitalWrite(redLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
delay(greenDuration);
}