#include <LiquidCrystal_I2C.h>
const int ldrPin = A0; // Pin analog untuk sensor cahaya (LDR)
const int ledPin = 9; // Pin LED
int ldrValue = 0; // Variabel untuk menyimpan nilai sensor cahaya
int brightness = 0; // Variabel untuk kecerahan LED
const float GAMMA = 0.7;
const float RL10 = 50;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
// put your main code here, to run repeatedly:
ldrValue = analogRead(ldrPin);
float voltase = ldrValue / 1024. * 5;
float resistensi = 2000 * voltase / (1-voltase / 5);
float kecerahan = pow(RL10 *1e3 * pow(10 , GAMMA) / resistensi , (1/GAMMA));
// Menghitung kecerahan berdasarkan nilai sensor cahaya
brightness = map(ldrValue, 0, 1023, 0, 255);
// Mengontrol kecerahan LED
analogWrite(ledPin, kecerahan);
lcd.setCursor(1,0);
lcd.print(kecerahan);
if(kecerahan < 2000){
lcd.setCursor(1,1);
lcd.print("REDUP ");
delay(400);
} else {
lcd.setCursor(1,1);
lcd.print("TERANG");
delay(400);
// lcd.clear();
}
Serial.print("LDR Value: ");
Serial.print(ldrValue);
Serial.print(" - Brightness: ");
Serial.println(kecerahan);
delay(100); // Jeda singkat
}