#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// Pin Definition
#define LED1 12
#define LED2 11
#define LED3 10
#define LDR A0
void setup() {
// LCD Init
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("It is Started.");
delay(1000);
lcd.clear();
delay(200);
lcd.setCursor(1,0);
lcd.print("*Status Update...*");
// Defining Outputs
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
// Defining Inputs for LDR
// pinMode(LDR, INPUT);
Serial.begin(9600);
}
void loop() {
// Taking inputs from the LDR
int x = analogRead(LDR);
int brightness = map(x,8,1015,100,0);
lcd.setCursor(0,1);
lcd.print("Brightness = ");
lcd.print(brightness);
lcd.print("%");
// Checking for Darkness
if (brightness < 40){
digitalWrite(LED1,1);
digitalWrite(LED2,1);
digitalWrite(LED3,1);
lcd.setCursor(0,2);
lcd.print("LEDs = On ");
}
// Check for Brightness
else {
digitalWrite(LED1,0);
digitalWrite(LED2,0);
digitalWrite(LED3,0);
lcd.setCursor(0,2);
lcd.print("LEDs = Off");
}
}