#include <LiquidCrystal_I2C.h>
int ledPin = 2;
int PirPin = 3;
int pirState = LOW;
int val = 0;
#define LDRPin 2
//int lux;
const float GAMMA = 0.7;
const float RL10 = 50;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(PirPin, INPUT);
pinMode(LDRPin, INPUT);
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10* 1e3 * pow(10, GAMMA) / resistance, (1/GAMMA));
lcd.setCursor(0,0);
val = digitalRead(PirPin);
// if (val == HIGH) { // check if the input is HIGH
// digitalWrite(ledPin, HIGH); // turn LED ON
// if (pirState == LOW) {
// // we have just turned on
// Serial.println("Gerakan Terdeteksi!");
// // We only want to print on the output change, not state
// pirState = HIGH;
// }
// } else {
// digitalWrite(ledPin, LOW); // turn LED OFF
// if (pirState == HIGH) {
// // we have just turned of
// Serial.println("Gerakan Berhenti!");
// // We only want to print on the output change, not state
// pirState = LOW;
// }
// }
if (lux < 100){
lcd.print("Malam Hari");
if(digitalRead(PirPin) == HIGH){
lcd.setCursor(0,1);
digitalWrite(ledPin, HIGH);
lcd.print("Ada Gerakan");
}
else {
lcd.setCursor(0,1);
digitalWrite(ledPin, LOW);
lcd.print("Tidak Ada Gerakan");
}
// }else {
// if (lux < 100){
// lcd.print("Malam Hari");
// if(digitalRead(PirPin) == LOW){
// lcd.setCursor(0,1);
// digitalWrite(ledPin, LOW);
// lcd.print("Tidak Ada Gerakan");
// }
} else {
lcd.setCursor(0, 1);
digitalWrite(ledPin, LOW);
lcd.setCursor(0, 0);
lcd.print("Siang Hari");
// else {
// if (lux < 100){
// digitalWrite(ledPin, HIGH);
// lcd.setCursor(0, 0);
// lcd.print("Malam Hari");
// if(pirState == HIGH){
// lcd.setCursor(0,1);
// lcd.print("Ada Gerakan");
// pirState == LOW;
// }
// }
}
delay(500);
}