#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int ldrPin = A0; // Pin analog tempat LDR dihubungkan
const int relayPin = 7; // Pin digital tempat relay dihubungkan
int ldrValue = 0; // Variabel untuk menyimpan nilai LDR
// Inisialisasi LCD dengan alamat I2C 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(relayPin, OUTPUT); // Mengatur pin relay sebagai output
lcd.init(); // Menginisialisasi LCD
lcd.backlight(); // Menyalakan backlight LCD
Serial.begin(9600); // Memulai komunikasi serial untuk debugging
}
void loop() {
ldrValue = analogRead(ldrPin); // Membaca nilai dari LDR
Serial.print("Nilai LDR: ");
Serial.println(ldrValue); // Mencetak nilai LDR ke Serial Monitor
// Mengatur kondisi untuk menyalakan atau mematikan relay dan menampilkan status di LCD
if (ldrValue > 500) {
// Jika nilai LDR lebih dari 500 (kondisi terang), nyalakan relay
digitalWrite(relayPin, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Relay: ON");
lcd.setCursor(0, 1);
lcd.print("Cahaya Terang");
} else {
// Jika nilai LDR kurang dari atau sama dengan 500 (kondisi gelap), matikan relay
digitalWrite(relayPin, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Relay: OFF");
lcd.setCursor(0, 1);
lcd.print("Cahaya Gelap");
}
delay(500); // Tunggu 500 ms sebelum membaca nilai lagi
}