// Pintu dan Lampu Otomatis menggunakan Sensor PIR dan LDR
#include <Servo.h>
// Pin konfigurasi
const int pirPin = 2; // Pin sensor PIR
const int ldrPin = A0; // Pin sensor LDR
const int ledPin = 9; // Pin LED
const int servoPin = 3; // Pin Servo
// Objek Servo
Servo servo;
// Variabel
int pirState = LOW; // Status sensor PIR
int ldrValue = 0; // Nilai sensor LDR
const int ldrThreshold = 500; // Ambang batas cahaya (sesuaikan)
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
servo.attach(servoPin);
// Inisialisasi servo pada posisi "tertutup"
servo.write(0);
Serial.begin(9600);
}
void loop() {
// Membaca sensor PIR
pirState = digitalRead(pirPin);
if (pirState == HIGH) {
Serial.println("Gerakan terdeteksi: Membuka pintu");
// Buka pintu
servo.write(90); // Posisi servo untuk membuka pintu
delay(5000); // Tunggu 5 detik
// Tutup pintu
Serial.println("Menutup pintu");
servo.write(0); // Posisi servo untuk menutup pintu
delay(1000);
}
// Membaca nilai LDR
ldrValue = analogRead(ldrPin);
Serial.print("Nilai LDR: ");
Serial.println(ldrValue);
// Menentukan kondisi lampu berdasarkan nilai LDR
if (ldrValue < ldrThreshold) {
Serial.println("Kondisi: Gelap, Lampu Menyala");
// Jika gelap, nyalakan lampu
digitalWrite(ledPin, HIGH);
} else {
Serial.println("Kondisi: Terang, Lampu Mati");
// Jika terang, matikan lampu
digitalWrite(ledPin, LOW);
}
delay(100); // Delay untuk stabilisasi sensor
}