#include <LiquidCrystal_I2C.h>
#define LDR_PIN A0 // Pin yang digunakan untuk membaca data dari LDR
LiquidCrystal_I2C lcd(0x27,16,2); // Display I2C 16 x 2
float RL10 = 50; // Nilai resistansi LDR pada kondisi standar (misalnya, dalam keadaan gelap)
float GAMMA = 0.7; // Koefisien karakteristik sensor LDR
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
lcd.init();
lcd.backlight();
lcd.clear();
}
void loop() {
int sensorValue = analogRead(LDR_PIN); // Membaca nilai analog dari pin LDR
float voltage = sensorValue * (3.3 / 4095); // Mengonversi nilai bacaan ke tegangan
float resistance = 10000 * (1/((3.3/voltage)-1)); // Menghitung resistansi LDR
// Menggunakan rumus konversi untuk menghitung intensitas cahaya dalam lux
float lux = pow((RL10 * 1e3 * pow(10.0, GAMMA) / resistance), (1.0 / GAMMA));
Serial.print("Nilai LDR: ");
Serial.println(sensorValue);
Serial.print("Intensitas Cahaya (lux): ");
Serial.println(lux);
lcd.setCursor(3, 0);
lcd.print("Lux Meter");
lcd.setCursor(3, 1);
lcd.print(lux);
delay(1000); // Delay untuk membaca nilai dengan interval tertentu
lcd.clear();
}