#include <Wire.h> //library untuk I2C
#include <LiquidCrystal_I2C.h> //library untuk LCD I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); //membuat objek lcd dengan alamat I2C 0x3F, 16 kolom, dan 2 baris
const int LDR_PIN = 34; //pin untuk sensor LDR
const int LED_PIN = 2; //pin untuk LED
const int LUX_THRESHOLD = 500; //nilai batas lux untuk menghidupkan/mematikan LED
void setup() {
Serial.begin(9600); //baud rate 9600 untuk serial monitor
pinMode(LED_PIN, OUTPUT); //set pin LED sebagai output
lcd.init(); //inisialisasi LCD
lcd.backlight(); //nyalakan backlight LCD
}
void loop() {
int sensorValue = analogRead(LDR_PIN); //membaca nilai sensor LDR
int lux = map(sensorValue, 0, 4095, 0, 1000); //konversi nilai ADC ke nilai lux
Serial.print("Lux: ");
Serial.println(lux);
lcd.clear(); //hapus tampilan LCD
lcd.setCursor(0,0); //set cursor ke baris 1 kolom 1
lcd.print("ITENSITAS CAHAYA"); //tulis label "Lux" ke LCD
lcd.setCursor(0,1); //set cursor ke baris 2 kolom 1
lcd.print("Nilai Lux: "); //tulis label "Lux" ke LCD
lcd.print(lux); //tulis nilai lux ke LCD
if (lux < LUX_THRESHOLD) {
digitalWrite(LED_PIN, HIGH); //hidupkan LED jika nilai lux kurang dari batas
} else {
digitalWrite(LED_PIN, LOW); //matikan LED jika nilai lux sudah mencapai batas
}
delay(1000); //tunggu 1 detik sebelum membaca nilai sensor lagi
}