// Inisialisasi pin
const int ldrPin = A0; // Pin untuk LDR
const int relayPin = 2; // Pin untuk relay
const int buttonPin = 3; // Pin untuk tombol manual
int luxThresholdMin = 50; // Ambang batas minimum
int luxThresholdMax = 100; // Ambang batas maksimum
bool manualOverride = false; // Status kontrol manual
void setup() {
pinMode(relayPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600); // Inisialisasi serial untuk debugging
}
void loop() {
int ldrValue = analogRead(ldrPin); // Membaca nilai dari LDR
int luxValue = map(ldrValue, 0, 1023, 0, 200); // Menyesuaikan rentang nilai
// Cek tombol manual
if (digitalRead(buttonPin) == LOW) {
manualOverride = !manualOverride; // Toggle kontrol manual
delay(300); // Debounce
}
if (manualOverride) {
digitalWrite(relayPin, HIGH); // Lampu hidup jika kontrol manual diaktifkan
Serial.println("Manual Override: Lampu Hidup");
} else {
if (luxValue < luxThresholdMin) {
digitalWrite(relayPin, HIGH); // Hidupkan lampu
Serial.println("Lampu Hidup = " + String(luxValue));
} else if (luxValue > luxThresholdMax) {
digitalWrite(relayPin, LOW); // Matikan lampu
Serial.println("Lampu Mati = " + String(luxValue));
}
}
delay(1000); // Delay untuk pembacaan berikutnya
}