#include <LiquidCrystal_I2C.h>
#define I2C_Addr 0x27
#define LCD_Row 4
#define LCD_Col 20
const int ldrPin = A0;
const int ledPin = 13;
const int streetLampPin = 12;
int ldrStatus = 0;
LiquidCrystal_I2C lcd(I2C_Addr, LCD_Col, LCD_Row);
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(streetLampPin, OUTPUT);
pinMode(ldrPin, INPUT);
lcd.init();
lcd.backlight();
}
void loop() {
lcd.clear();
ldrStatus = analogRead(ldrPin);
if (ldrStatus <=300) {
digitalWrite(ledPin, HIGH);
digitalWrite(streetLampPin, LOW);
Serial.println("LDR is DARK, LED Indicator ON");
lcd.setCursor(0, 0);
lcd.print("DARK OUTSIDE");
lcd.setCursor(0, 1);
lcd.print("It's time to");
lcd.setCursor(0, 2);
lcd.print("Switch ON Stret Lamp");
delay(100);
}
else
{
digitalWrite(ledPin, LOW);
digitalWrite(streetLampPin, HIGH);
Serial.println("LDR is Bright, LED Indicator OFF");
lcd.setCursor(0, 0);
lcd.print("BRIGHTNESS OUTSIDE");
lcd.setCursor(0, 1);
lcd.print("No Action Require");
delay(100);
}
}