#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Pin definisi
const int ldrPin = A0;
const int ledPin = 9;
void setup() {
// Inisialisasi LCD
lcd.begin(16, 2);
lcd.backlight();
lcd.print("Light Level:");
// Inisialisasi pin LED
pinMode(ledPin, OUTPUT);
// Inisialisasi komunikasi serial
Serial.begin(9600);
}
void loop() {
// Membaca nilai dari LDR
int ldrValue = analogRead(ldrPin);
// Konversi nilai LDR ke tingkat cahaya (0-100)
int lightLevel = map(ldrValue, 0, 1023, 0, 100);
// Tampilkan tingkat cahaya di LCD
lcd.setCursor(0, 1);
lcd.print("Level: ");
lcd.print(lightLevel);
lcd.print(" % ");
// Kontrol LED berdasarkan tingkat cahaya (misal jika cahaya kurang dari 50%)
if (lightLevel < 50) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// Debug di Serial Monitor
Serial.print("LDR Value: ");
Serial.print(ldrValue);
Serial.print(" | Light Leve1: ");
Serial.println(lightLevel);
delay(500);
}