// Define GPIO pins for IR sensors
const int IR_SENSOR_PIN_1 = 2;
const int IR_SENSOR_PIN_2 = 3;
// Define GPIO pins for Signal S1 LEDs
const int S1_RED_LED_PIN = 4;
const int S1_YELLOW_LED_PIN = 5;
const int S1_GREEN_LED_PIN = 6;
// Define GPIO pins for Signal S2 LEDs
const int S2_RED_LED_PIN = 7;
const int S2_YELLOW_LED_PIN = 8;
const int S2_GREEN_LED_PIN = 9;
// Initialize GPIO pins for IR sensors and LEDs
void setup() {
pinMode(IR_SENSOR_PIN_1, INPUT);
pinMode(IR_SENSOR_PIN_2, INPUT);
pinMode(S1_RED_LED_PIN, OUTPUT);
pinMode(S1_YELLOW_LED_PIN, OUTPUT);
pinMode(S1_GREEN_LED_PIN, OUTPUT);
pinMode(S2_RED_LED_PIN, OUTPUT);
pinMode(S2_YELLOW_LED_PIN, OUTPUT);
pinMode(S2_GREEN_LED_PIN, OUTPUT);
}
// Function to control the traffic lights based on density
void controlTrafficLights(int density) {
if (density == 10) {
digitalWrite(S1_GREEN_LED_PIN, HIGH);
digitalWrite(S1_YELLOW_LED_PIN, LOW);
digitalWrite(S1_RED_LED_PIN, LOW);
digitalWrite(S2_GREEN_LED_PIN, LOW);
digitalWrite(S2_YELLOW_LED_PIN, HIGH);
digitalWrite(S2_RED_LED_PIN, HIGH);
delay(40000);
digitalWrite(S2_YELLOW_LED_PIN, LOW);
delay(5000);
digitalWrite(S1_RED_LED_PIN, HIGH);
digitalWrite(S1_GREEN_LED_PIN, LOW);
delay(45000);
} else if (density == 20) {
digitalWrite(S1_GREEN_LED_PIN, HIGH);
digitalWrite(S1_YELLOW_LED_PIN, LOW);
digitalWrite(S1_RED_LED_PIN, LOW);
digitalWrite(S2_GREEN_LED_PIN, LOW);
digitalWrite(S2_YELLOW_LED_PIN, HIGH);
digitalWrite(S2_RED_LED_PIN, HIGH);
delay(50000);
digitalWrite(S2_YELLOW_LED_PIN, LOW);
delay(5000);
digitalWrite(S1_RED_LED_PIN, HIGH);
digitalWrite(S1_GREEN_LED_PIN, LOW);
delay(55000);
} else {
// Default behavior
digitalWrite(S1_GREEN_LED_PIN, HIGH);
digitalWrite(S1_YELLOW_LED_PIN, LOW);
digitalWrite(S1_RED_LED_PIN, LOW);
digitalWrite(S2_GREEN_LED_PIN, LOW);
digitalWrite(S2_YELLOW_LED_PIN, HIGH);
digitalWrite(S2_RED_LED_PIN, HIGH);
}
}
void loop() {
// Read IR sensor values and calculate density
int irSensor1Value = HIGH;
int irSensor2Value = LOW;
int density = irSensor1Value + irSensor2Value;
// Control traffic lights based on density
controlTrafficLights(density);
}