#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Definisikan alamat I2C dari LCD
#define I2C_ADDR 0x27
// Inisialisasi LCD dengan alamat I2C dan ukuran 16x2
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2);
// Definisikan pin yang akan digunakan
const int ldrPin = A0; // Pin sensor LDR terhubung ke pin analog A0
const int ledPin = 2; // Pin LED terhubung ke pin digital 2
void setup() {
Serial.begin(9600); // Mulai komunikasi serial dengan kecepatan 9600 baud
pinMode(ledPin, OUTPUT); // Set pin LED sebagai output
// Inisialisasi LCD
lcd.init();
lcd.backlight(); // Nyalakan backlight LCD
// Tampilkan pesan awal di LCD
lcd.setCursor(0, 0);
lcd.print("Lux: ");
lcd.setCursor(0, 1);
lcd.print("Status: ");
}
void loop() {
// Baca nilai dari sensor LDR
int ldrValue = analogRead(ldrPin);
// Tampilkan nilai lux di Serial Monitor
Serial.print("Lux: ");
Serial.println(ldrValue);
// Tampilkan nilai lux di LCD
lcd.setCursor(5, 0);
lcd.print(ldrValue);
// Cek jika nilai lux tinggi
if (ldrValue > 500) {
digitalWrite(ledPin, LOW); // Matikan LED
lcd.setCursor(8, 1);
lcd.print("Terang "); // Tampilkan status terang di LCD
} else {
digitalWrite(ledPin, HIGH); // Nyalakan LED
lcd.setCursor(8, 1);
lcd.print("Gelap "); // Tampilkan status gelap di LCD
}
delay(500); // Tunggu 500 milidetik sebelum membaca ulang sensor
}