const int pirPin = 2; // Pin sensor PIR terhubung ke pin digital 2 (input)
const int ledPin = 9; // Pin LED terhubung ke pin digital 9 (output)
const int buzzerPin = 10; // Pin buzzer terhubung ke pin digital 10 (output)
int pirState = LOW; // Status PIR awal (tidak ada gerakan)
void setup() {
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600); // Serial dengan kecepatan 9600bps untuk debugging
}
void loop() {
int motionState = digitalRead(pirPin);
// Respons Ketika Gerakan Terdeteksi
if (motionState == HIGH) { // Membaca status sensor
Serial.println("Kereta Api akan melintas!");
// Nyalakan LED
digitalWrite(ledPin, HIGH);
// Mainkan bunyi seperti bunyi Kereta Api melintas
for (int i = 0; i < 4; i++) { // Nada buzzer dijalankan 4 kali
tone(buzzerPin, 400, 300); // Frekuensi 400 Hz, 300 milidetik
delay(350);
tone(buzzerPin, 550, 330); // Frekuensi 550 Hz, 330 milidetik
delay(350);
}
// Matikan LED dan buzzer setelah bunyi selesai
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
delay(500);
} else {
Serial.println("Kereta Api tidak terdeteksi.");
digitalWrite(ledPin, LOW); // Matikan LED jika tidak ada gerakan
}
delay(500); // Memberikan waktu sebelum pembacaan status PIR selanjutnya
}