// Inisialisasi Komponen LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16, 2);
// Inisialisasi Variable untuk kebutuhan
// sensor LDR
const float GAMMA = 0.7;
const float RL10 = 50;
// Inisialisasi pin-pin yang terkoneksi dengan kontroler
#define Led 3
int inputPin = 2;
int pirState = LOW;
int buzzer = 10;
int val = 0;
void setup() {
Serial.begin(9600);
pinMode (Led, OUTPUT);
pinMode (inputPin, INPUT);
pinMode (buzzer, OUTPUT);
// Mengaktifkan LCD
lcd.init();
lcd.backlight();
}
void loop() {
delay(5000);
// Bagian Pembacaan sensor LDR
int analogValue = analogRead (A0);
float voltage = analogValue/1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
int lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.println("Analog Value = "+String(analogValue));
Serial.println("voltage Value = "+String(voltage));
Serial.println("resistance Value = "+String(resistance));
lcd.setCursor (2, 0);
lcd.print ("Cahaya :");
// Bagian Pendeteksi Intensitas Cahaya dari Sensor LDR
if (lux > 50){
lcd.print ("Terang!");
digitalWrite (Led, LOW);
lcd.setCursor (0, 1);
lcd.print("LUX :");
lcd.print(lux);
lcd.setCursor (10, 1);
lcd.print(" ");
}
else{
lcd.print ("Gelap ");
digitalWrite (Led, HIGH);
// Bagian mendeteksi pergerakan dari sensor PIR
val = digitalRead (inputPin);
if (val == HIGH)
{
if (pirState == LOW)
{
lcd.setCursor (0, 1);
lcd.print ("Ada Gerakan ");
pirState = HIGH;
tone(buzzer, 120);
delay (1000);
tone(buzzer, 300);
delay (1000);
}
}
else
{
if (pirState == HIGH)
{
lcd.setCursor (0, 1);
lcd.print ("Tidak ada Gerak ");
pirState = LOW;
noTone(buzzer);
}
}
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
led1:A
led1:C
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
pir1:VCC
pir1:OUT
pir1:GND
bz1:1
bz1:2
relay1:VCC
relay1:GND
relay1:IN
relay1:NC
relay1:COM
relay1:NO