#include <Arduino.h> // Explicitly include standard Arduino header
// Pin definitions for Traffic Light 1
static const int RED1 = 13; // Red light for Traffic Light 1
static const int YELLOW1 = 12; // Yellow light for Traffic Light 1
static const int GREEN1 = 11; // Green light for Traffic Light 1
// Pin definitions for Traffic Light 2
static const int RED2 = 10; // Red light for Traffic Light 2
static const int YELLOW2 = 9; // Yellow light for Traffic Light 2
static const int GREEN2 = 8; // Green light for Traffic Light 2
// Traffic light delay durations (in milliseconds)
static const unsigned int GREEN_DELAY = 5000U; // Green light duration: 5 seconds
static const unsigned int YELLOW_DELAY = 2000U; // Yellow light duration: 2 seconds
void setup(void)
{
// Set all traffic light pins as outputs
pinMode(RED1, OUTPUT);
pinMode(YELLOW1, OUTPUT);
pinMode(GREEN1, OUTPUT);
pinMode(RED2, OUTPUT);
pinMode(YELLOW2, OUTPUT);
pinMode(GREEN2, OUTPUT);
}
void loop(void)
{
/* Step 1: Green for Traffic 1, Red for Traffic 2 */
digitalWrite(GREEN1, HIGH); // Turn on green light for Traffic Light 1
digitalWrite(RED2, HIGH); // Turn on red light for Traffic Light 2
delay(GREEN_DELAY); // Wait for green light duration
/* Step 2: Yellow for Traffic 1 */
digitalWrite(GREEN1, LOW); // Turn off green light for Traffic Light 1
digitalWrite(YELLOW1, HIGH); // Turn on yellow light for Traffic Light 1
delay(YELLOW_DELAY); // Wait for yellow light duration
/* Step 3: Red for Traffic 1, Green for Traffic 2 */
digitalWrite(YELLOW1, LOW); // Turn off yellow light for Traffic Light 1
digitalWrite(RED1, HIGH); // Turn on red light for Traffic Light 1
digitalWrite(RED2, LOW); // Turn off red light for Traffic Light 2
digitalWrite(GREEN2, HIGH); // Turn on green light for Traffic Light 2
delay(GREEN_DELAY); // Wait for green light duration
/* Step 4: Yellow for Traffic 2 */
digitalWrite(GREEN2, LOW); // Turn off green light for Traffic Light 2
digitalWrite(YELLOW2, HIGH); // Turn on yellow light for Traffic Light 2
delay(YELLOW_DELAY); // Wait for yellow light duration
/* Step 5: Reset to Red for Traffic 2, Green for Traffic 1 */
digitalWrite(YELLOW2, LOW); // Turn off yellow light for Traffic Light 2
digitalWrite(RED2, HIGH); // Turn on red light for Traffic Light 2
digitalWrite(RED1, LOW); // Turn off red light for Traffic Light 1
}