#define ldrPin A0 // LDR terhubung ke pin analog A0
#define lamp1Pin 10 // Lampu 1 terhubung ke pin digital 7
#define lamp2Pin 11 // Lampu 2 terhubung ke pin digital 8
#define lamp3Pin 12 // Lampu 3 terhubung ke pin digital 9
#define lamp4Pin 13 // Lampu 4 terhubung ke pin digital 10
const float gama = 0.7;
const float rl10 = 50;
void setup() {
Serial.begin(9600);
pinMode(lamp1Pin, OUTPUT);
pinMode(lamp2Pin, OUTPUT);
pinMode(lamp3Pin, OUTPUT);
pinMode(lamp4Pin, OUTPUT);
}
void loop() {
int nilaiLDR = analogRead(ldrPin); // Membaca nilai LDR
float voltase = nilaiLDR / 1024.0 * 5.0; // Mengonversi ke voltase
float resistansi = 2000 * voltase / (5.0 - voltase); // Menghitung resistansi LDR
float kecerahan = pow((rl10 * 1e3 * pow(10, gama)) / resistansi, (1 / gama)); // Menghitung intensitas cahaya (lux)
Serial.print("Kecerahan = ");
Serial.println(kecerahan);
// Logika pengendalian lampu berdasarkan kategori cahaya
if (kecerahan > 600) {
// Kategori Gelap: Semua lampu menyala
digitalWrite(lamp1Pin, HIGH);
digitalWrite(lamp2Pin, HIGH);
digitalWrite(lamp3Pin, HIGH);
digitalWrite(lamp4Pin, HIGH);
Serial.println("Kategori: Gelap");
} else if (kecerahan > 300 && kecerahan <= 600) {
// Kategori Redup: 2 lampu menyala, 2 lampu mati
digitalWrite(lamp1Pin, HIGH);
digitalWrite(lamp2Pin, HIGH);
digitalWrite(lamp3Pin, LOW);
digitalWrite(lamp4Pin, LOW);
Serial.println("Kategori: Redup");
} else {
// Kategori Terang: Semua lampu mati
digitalWrite(lamp1Pin, LOW);
digitalWrite(lamp2Pin, LOW);
digitalWrite(lamp3Pin, LOW);
digitalWrite(lamp4Pin, LOW);
Serial.println("Kategori: Terang");
}
delay(1000); // Tunggu 1 detik sebelum pembacaan berikutnya
}