#include <LiquidCrystal.h>
// Define pins for right traffic light
const int greenRight = 2;
const int yellowRight = 3;
const int redRight = 4;
// Define pins for left traffic light
const int greenLeft = 5;
const int yellowLeft = 6;
const int redLeft = 7;
// Initialize the LCD library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
void setup() {
// Initialize right traffic light pins
pinMode(greenRight, OUTPUT);
pinMode(yellowRight, OUTPUT);
pinMode(redRight, OUTPUT);
// Initialize left traffic light pins
pinMode(greenLeft, OUTPUT);
pinMode(yellowLeft, OUTPUT);
pinMode(redLeft, OUTPUT);
// Initialize the LCD
lcd.begin(16, 2);
lcd.print("Traffic Lights");
}
void loop() {
// Turn on green light on right, red on left
digitalWrite(greenRight, HIGH);
digitalWrite(yellowRight, LOW);
digitalWrite(redRight, LOW);
digitalWrite(greenLeft, LOW);
digitalWrite(yellowLeft, LOW);
digitalWrite(redLeft, HIGH);
lcd.setCursor(0, 1);
lcd.print("R: Green L: Red ");
delay(5000); // Wait for 5 seconds
// Turn on yellow light on right, yellow on left
digitalWrite(greenRight, LOW);
digitalWrite(yellowRight, HIGH);
digitalWrite(redRight, LOW);
digitalWrite(greenLeft, LOW);
digitalWrite(yellowLeft, HIGH);
digitalWrite(redLeft, LOW);
lcd.setCursor(0, 1);
lcd.print("R: Yellow L:Yellow");
delay(2000); // Wait for 2 seconds
// Turn on red light on right, green on left
digitalWrite(greenRight, LOW);
digitalWrite(yellowRight, LOW);
digitalWrite(redRight, HIGH);
digitalWrite(greenLeft, HIGH);
digitalWrite(yellowLeft, LOW);
digitalWrite(redLeft, LOW);
lcd.setCursor(0, 1);
lcd.print("R: Red L: Green ");
delay(5000); // Wait for 5 seconds
// Turn on yellow light on right, yellow on left
digitalWrite(greenRight, LOW);
digitalWrite(yellowRight, HIGH);
digitalWrite(redRight, LOW);
digitalWrite(greenLeft, LOW);
digitalWrite(yellowLeft, HIGH);
digitalWrite(redLeft, LOW);
lcd.setCursor(0, 1);
lcd.print("R: Yellow L:Yellow");
delay(2000); // Wait for 2 seconds
}