#include <LiquidCrystal.h>
LiquidCrystal lcd(10,9,8,7,6,5); //rs,En,d4,d5,d6,d7
const int ldrPin = A0; //the number of the LDR pin
const int pirPin = 11;
const int streetLampPin = 12;
void setup()
{
Serial.begin(9600);
pinMode(ldrPin, INPUT); //initialize the LDR pin as an input
pinMode(streetLampPin, OUTPUT); //initialize the Street Lamp pin as an output
pinMode(pirPin, INPUT);
lcd.begin(20,4);
}
void loop()
{
int ldrStatus = analogRead(ldrPin); //read the status of the LDR value //check if the LDR status is <= 300
int pirStatus = digitalRead(pirPin);
lcd.clear();
if (ldrStatus <=300 )
{
Serial.println("LDR is DARK");
lcd.setCursor(0,0);
lcd.print("DARK OUTSIDE");
if(pirStatus == HIGH)
{
Serial.println("Motion Detected, Street Lamp Turned ON");
lcd.setCursor(0, 1);
lcd.print("Motion Detect");
lcd.setCursor(0, 2);
lcd.print("Turning ON Street");
lcd.setCursor(0, 3);
lcd.print("Lamp");
digitalWrite(streetLampPin, HIGH);
}
else
{
Serial.println("No Motion Detected");
lcd.setCursor(0, 1);
lcd.print("No Motion Detect");
lcd.setCursor(0, 2);
lcd.print("Street Lamp Turned");
lcd.setCursor(0, 3);
lcd.print("OFF");
digitalWrite(streetLampPin, LOW);
}
delay(300);
}
else
{
Serial.println("LDR is Bright, Street Lamp Off");
lcd.setCursor(0, 0);
lcd.print("BRIGHTNESS OUTSIDE");
lcd.setCursor(0, 1);
lcd.print("Turning OFF Street");
lcd.setCursor(0, 2);
lcd.print("Lamp");
digitalWrite(streetLampPin, LOW);
delay(300);
}
}