#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Define I2C address for the LCD. This address may vary depending on your specific LCD.
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_ROWS 2
// Initialize the LCD library
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_ROWS);
// Define LED pins
const int redLED = 2;
const int orangeLED = 3;
const int greenLED = 4;
void setup() {
// Initialize the LCD
lcd.begin(LCD_COLUMNS, LCD_ROWS);
lcd.backlight();
lcd.clear();
// Initialize LEDs
pinMode(redLED, OUTPUT);
pinMode(orangeLED, OUTPUT);
pinMode(greenLED, OUTPUT);
// Start with all LEDs off
digitalWrite(redLED, LOW);
digitalWrite(orangeLED, LOW);
digitalWrite(greenLED, LOW);
}
void loop() {
// Red Light On
digitalWrite(redLED, HIGH);
digitalWrite(orangeLED, LOW);
digitalWrite(greenLED, LOW);
lcd.clear();
lcd.print("Red Light stop");
delay(10000); // Red light on for 10 seconds
// Orange Light On
digitalWrite(redLED, LOW);
digitalWrite(orangeLED, HIGH);
digitalWrite(greenLED, LOW);
lcd.clear();
lcd.print("Orange Light ready");
delay(2000); // Orange light on for 2 seconds
// green Light On
digitalWrite(redLED, LOW);
digitalWrite(orangeLED, LOW);
digitalWrite(greenLED, HIGH);
lcd.clear();
lcd.print("Blue Light go");
delay(8000); // Blue light on for 8 seconds
// All lights off for a short interval
digitalWrite(redLED, LOW);
digitalWrite(orangeLED, LOW);
digitalWrite(greenLED, LOW);
lcd.clear();
lcd.print("All Lights OFF");
delay(1000); // All lights off for 1 second
}