#define pirPin 2 //deklarasi pin dari pir yang diberi nama variabel pirPin
#define ledPin 3 //deklarasi pin led yang dihubungkan ke pin 3 dan diberi nama variabel ledPin
int statusPir = LOW; //deklarasi kondisi dari sensor pir apakah high atau low
int gerakanPir; //deklarasi variabel untuk pembacaan pir sensor
void setup() {
// put your setup code here, to run once:
pinMode(pirPin, INPUT); //set pirPin menjadi pin input
pinMode(ledPin, OUTPUT); //set ledPin menjadi pin output
Serial.begin(9600); //memulai komunikasi serialke serial monitor dengan baud rate 9600
}
void loop() {
// put your main code here, to run repeatedly:
gerakanPir = digitalRead(pirPin); //membaca sinyal dari pir ketika ada gerakan
if(gerakanPir==HIGH){ //mengecek kondisi pir, jika mendeteksi gerakan maka skrip di bawah if akan dieksekusi secara berulang-ulang saat pir tetap mendeteksi gerakan
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
//menyalakan led ketika terdapat gerakan
if(statusPir==LOW){ //mengecek status dari pir apakah low atau high, jika low skrip di bawah if akan dieksekusi sekali ketika pir mendeteksi gerakan di awal
Serial.println("Ada Gerakan!!!"); //menampilkan peringatan ke serial monitor bahwa gerakan terdeteksi
statusPir=HIGH; //mengubah status pir dari low ke high
}
}
else { //jika pir tidak mendeteksi gerakan skrip akan dieksekusi
digitalWrite(ledPin, LOW); //mematikan led karena tidak ada gerakan
if(statusPir==HIGH){ //mengecek status pir, jika high skrip di dalam if akan dieksekusi
Serial.println("Tidak Ada Gerakan!"); //menampilkan peringatan bahwa gerakan tidak terdeteksi
statusPir=LOW; //mengubah status dari pir dari high ke low
}
}
}