#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define LDR_PIN 34
#define LED_PIN 25
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
// PWM LED ESP32
ledcAttach(LED_PIN, 5000, 8);
lcd.setCursor(0, 0);
lcd.print("Perpustakaan");
lcd.setCursor(0, 1);
lcd.print("Smart Lighting");
delay(2000);
lcd.clear();
}
void loop() {
// Membaca sensor cahaya
int nilaiLDR = analogRead(LDR_PIN);
// Mengubah nilai LDR menjadi kecerahan LED
// Semakin gelap, LED semakin terang
int brightness = map(nilaiLDR, 0, 4095, 255, 0);
brightness = constrain(brightness, 0, 255);
// Mengatur LED
ledcWrite(LED_PIN, brightness);
// Menampilkan pada LCD
lcd.setCursor(0, 0);
lcd.print("Cahaya: ");
lcd.print(nilaiLDR);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("LED: ");
lcd.print(brightness);
lcd.print("/255 ");
// Serial Monitor
Serial.print("Nilai LDR: ");
Serial.print(nilaiLDR);
Serial.print(" | LED: ");
Serial.println(brightness);
delay(500);
}