#include <Arduino.h>
// Konfigurasi pin untuk komponen-komponen
const int TRIG_PIN = 11;
const int ECHO_PIN = 12;
const int LED1_PIN = 10;
const int LED2_PIN = 9;
const int LED3_PIN = 8;
const int BUZZER_PIN = 3; // Pin untuk buzzer
const int IR_PIN = 2; // Pin untuk sensor Infrared
void setup() {
// Konfigurasi pin sebagai input atau output
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(IR_PIN, INPUT);
// Mulai Serial untuk debugging
Serial.begin(9600);
}
void loop() {
// Baca sensor Ultrasonik
long duration, distance;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2; // Konversi ke centimeter
// Baca sensor Infrared
int irValue = digitalRead(IR_PIN);
// Kontrol LED dan Buzzer berdasarkan kondisi sensor
if (irValue == HIGH) {
// Jika jarak kurang dari atau sama dengan 5 cm, indikasi AMAN
if (distance <= 5) {
noTone(BUZZER_PIN); // Matikan buzzer
digitalWrite(LED1_PIN, LOW);
digitalWrite(LED2_PIN, LOW);
digitalWrite(LED3_PIN, LOW);
Serial.println("AMAN - Tidak ada bunyi buzzer.");
} else {
tone(BUZZER_PIN, 1000); // Bunyikan buzzer
digitalWrite(LED1_PIN, HIGH);
digitalWrite(LED2_PIN, HIGH);
digitalWrite(LED3_PIN, HIGH);
Serial.println("Tidak AMAN - Bunyi buzzer aktif.");
Serial.println("Deteksi pergerakan!");
}
} else {
digitalWrite(LED1_PIN, LOW);
digitalWrite(LED2_PIN, LOW);
digitalWrite(LED3_PIN, LOW);
noTone(BUZZER_PIN); // Matikan buzzer
Serial.println("Tidak ada pergerakan.");
}
// Tunda sebentar sebelum membaca ulang sensor
delay(1500);
}