#include <NewPing.h>
#include <Servo.h>
#define TRIGGER_PIN A0 // Pin PIR Out
#define ECHO_PIN A1 // Pin PIR Echo
#define MAX_DISTANCE 200 // Jarak maksimum yang dapat dideteksi (dalam cm)
int ledPins[5] = {13, 14, 15, 16, 17}; // Pin LED
int servoPin = 10; // Pin motor servo
int buzzerPin = 8; // Pin buzzer
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Deklarasi objek sensor PIR
Servo myServo; // Deklarasi objek servo
void setup() {
Serial.begin(9600);
myServo.attach(servoPin); // Hubungkan servo ke pin
for (int i = 0; i < 5; i++) {
pinMode(ledPins[i], OUTPUT);
}
pinMode(buzzerPin, OUTPUT);
}
void loop() {
unsigned int distance = sonar.ping_cm(); // Baca jarak yang dideteksi sensor PIR
if (distance <= 10) { // Benda terdeteksi dalam jarak 10 cm
int ledIndex = random(0, 5); // Pilih LED secara acak
digitalWrite(ledPins[ledIndex], HIGH); // Nyalakan LED
myServo.write(30); // Putar servo 30 derajat
delay(1000); // Tunggu 1 detik
myServo.write(90); // Kembalikan servo ke posisi awal
delay(1000);
tone(buzzerPin, 1000, 100); // Bunyikan buzzer selama 100ms
delay(500); // Tunggu 500ms
noTone(buzzerPin); // Matikan buzzer
delay(2000); // Tunggu 2 detik sebelum mematikan LED
digitalWrite(ledPins[ledIndex], LOW); // Matikan LED
} else {
myServo.write(90); // Kembalikan servo ke posisi awal
}
}