Sensor PIR dengan Arduino
PIR atau passive infrared merupakan salah satu aplikasi inframerah untuk sensor. Sensor ini berfungsi mendeteksi adanya pergerakan manusia dari perubahan pancaran gelombang inframerah dari tubuh manusia. Ketika manusia bergerak maka pancaran gelombangnya akan berubah, perubahan nilai ini akan menyebabkan sensor PIR aktif dan mengirimkan sinyal output.
Seperti halnya devices berbasis inframerah lainnya, PIR memiliki kelemahan yaitu bukan perangkat omnidirectional sehingga tidak mampu mendeteksi benda yang berada di belakangnya. Tidak seperti bluetooth yang mampu mendeteksi semua benda disekelilingnya dalam cakupan tertentu.
Supply tegangan sensor ini antara 3-9V sehingga bisa langsung menggunakan tegangan vcc 5V dari arduino atau board mikrokontroller lainnya. Terdapat tiga pin berupa VCC, Ground dan output untuk dihubungkan ke mikro. Contoh penggunaan sensor PIR menggunakan arduino dapat dilihat dari kode berikut yang diubah dari contoh kode PIR sensor di arduino playground dengan meniadakan alarm buzzer dan hanya menggunakan LED untuk indikator adanya gerakan.
Saat kondisi diam, arduino akan mengirimkan durasi kondisi diam pada serial monitor, begitu juga pada saat sensor mendeteksi adanya pergerakan. Serial.print(“x”) pada serial monitor digunakan untuk menandai lama pergerakan/tidak adanya pergerakan obyek yang dideteksi sensor.
int ledPin = 13; // choose the pin for the LED int inputPin = 2; // choose the input pin (for PIR sensor) int pirState = LOW; // we start, assuming no motion detected int val = 0; // variable for reading the pin status void setup() { pinMode(ledPin, OUTPUT); // declare LED as output pinMode(inputPin, INPUT); // declare sensor as input Serial.begin(9600); } void loop(){ val = digitalRead(inputPin); // read input value if (val == HIGH) { // check if the input is HIGH digitalWrite(ledPin, HIGH); // turn LED ON delay(300); if (pirState == LOW) { Serial.println(); Serial.println("Motion detected!"); // We only want to print on the output change, not state pirState = HIGH; } } else { digitalWrite(ledPin, LOW); delay(300); if (pirState == HIGH){ Serial.println(); Serial.println("Motion ended!"); pirState = LOW; } } Serial.print("x"); }
gan jelaskan fungsi pin yang ada di sensor pir ini ??
gan jelaskan fungsi pin yang ada di sensor pir ini ??
thanks buat postingannya gan, ngabantu banget (y)
sukses trus