#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>
// Inisialisasi LCD I2C (alamat 0x27 dan ukuran 16x2)
// LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Inisialisasi pin LED dan LDR
const int ledPin = 9; // Pin PWM untuk LED
const int ldrPin = A0; // Pin analog untuk LDR
const int buzzer = 3; // Pin analog untuk LDR
void setup() {
// Atur pin LED sebagai output
pinMode(ledPin, OUTPUT);
pinMode(buzzer, OUTPUT);
// Inisialisasi LCD
lcd.begin(16, 2); // Konfigurasi LCD 16x2
lcd.print("LUX Meter"); // Tampilkan teks awal
delay(2000);
lcd.clear();
}
void loop() {
// Membaca nilai intensitas cahaya dari LDR
int ldrValue = analogRead(ldrPin);
// Mengatur intensitas cahaya LED berdasarkan nilai LDR
int ledBrightness = map(ldrValue, 0, 1023, 0, 255);
analogWrite(ledPin, ledBrightness);
// Menghitung persentase kecerahan LED
int brightnessPercent = map(ledBrightness, 0, 255, 0, 100);
if (brightnessPercent > 90) {
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(buzzer, LOW);
}
// Menampilkan nilai pada LCD
lcd.setCursor(0, 0);
lcd.print("Percen : ");
lcd.print(brightnessPercent);
lcd.print(" %");
delay(500); // Delay untuk pembaruan data
}