Sensor PIR (Passive Infra Red)adalah sensor yang dapat mendeteksi pancaran sinar infra merah secara pasif (menangkap radiasi infra merah dari objek bergerak tanpa perlu memancarkan sinar infra merah sendiri secara aktif, berbeda dengan infrared sensor tipe pantulan / reflective yang umum digunakan sebagai komponen saklar sentuh seperti QRD1114).


Sensor ini efektif digunakan sebagai detektor gerakan / motion detectorhingga jarak 7 meter, misalnya untuk alarm anti maling di rumah / kantor. Cara kerjanya berdasarkan prinsip fisika dimana semua benda yang memiliki panas (suhu / temperatur) diketahui memancarkan radiasi energi dengan tingkat yang berbeda-beda sesuai temperatur objek tersebut. Pada saat objek dengan suhu tertentu (contohnya manusia) bergerak secara relatid terhadap objek lain dengan suhu yang berbeda (contohnya dinding), akan terjadi perbedaan intensitas sinar infra merah yang diterima dibanding besar intensitas infra merah sebelumnya. Dengan membandingkan nilai kedua intensitas dalam suatu interval waktu, sensor dapat mendeteksi adanya gerakan yang terjadi di sekitar sensor ini.

Pada saat sensor mendeteksi objek bergerak di jangkauan deteksi, sinyal keluaran digital akan bernilai HIGH dan secara otomatis menjadi LOW saat objek keluar dari jangkauan deteksi.

Spesifikasi dari Modul Elektronika ini:
Petunjuk Penyetelan
  • Putar potensiometer distancesearah jarum jam untuk menambah jarak efektif (maksimum 7 meter), putar ke arah sebaliknya untuk mengurangi jarak efektif (minimum 3m)
  • Putar potensiometer delay searah jarum jam untuk menambah waktu tunda (maksimum 10 menit), putar ke arah sebaliknya untuk mengurangi waktu tunda (minimum 0,3 detik)
  • Atur setelah pemicu dengan memindahkan jumper, LOW = mematikan pemicu berulang (repetitive trigger, sensor akan bernilai LOW setelah melewati waktu tunda walaupun objek masih berada di jangkauan deteksi), HIGH mengaktifkan pemicu berulang (sensor tetap HIGH saat objek tidak keluar dari jangkauan deteksi sepanjang waktu tunda).
Kami hanya menjual versi 2 dari modul ini (perbedaan dengan versi sebelumnya: tambahan 2 kapasitor buffer, 2 potensiometer untuk mengatur jarak efektif dan waktu tunda, jumper untuk memilih metoda picu, jarak deteksi yang lebih jauh). Hati-hati dalam membeli PIR sensor, bandingkan gambar v2 yang kami jual di sini (foto di atas, tampak depan dan bawah) dengan v1 di samping kanan (kami tidak menyediakan v1 / versi lama).


Cara kerja pembacaan sensor PIR secara lengkapnya dapat dijelaskan sebagai berikut:
Pancaran infra merah difokuskan oleh lensa Fresnel sehingga tepat jatuh pada permukaan sensor pyroelectric yang mengubah energi panas (thermal energy) yang terkandung pada foton / partikel cahaya dari sinar infra merah menjadi energi listrik. Sensor piroelektrik terbuat dari bahan galium nitrida(GaN), caesium nitrate(CsNO3) dan lithium tantalate(LiTaO3). Arus listrik ini memiliki tegangan yang dapat dibaca secara analog oleh sensor. Karena sinyal ini sangatlah lemah (dalam orde milivolt), sinyal perlu diamplifikasi oleh penguat operasional (opAmp) sebelum dibandingkan oleh sirkuit pembanding tegangan (voltage comparator circuit) terhadap tegangan referensi.

PIR sensor ini dirancang mendeteksi pancaran infra merah dengan panjang gelombang 8-14 mikrometer. Manusia memiliki suhu badan yang dapat menghasilkan pancaran infra merah dengan panjang gelombang antara 9-10 mikrometer (±9,4 mikrometer pada suhu ±37°C), dengan demikian panjang gelombang tersebut dapat dideteksi oleh sensor PIR. Secara umum sensor PIR memang dirancang untuk mendeteksi manusia.
Berikut contoh cara menyambungkan PIR Sensorini dengan Arduino Uno:


Ketikkan Arduino Sketch berikut ini:

// PIR sensor tester

intledPin = 13; // choose the pin for the LED
intinputPin = 2; // choose the input pin (for PIR sensor)
intpirState = LOW; // we start, assuming no motion detected
intval = 0; // variable for reading the pin status
 
voidsetup() {
  pinMode(ledPin, OUTPUT); // declare LED as output
  pinMode(inputPin, INPUT); // declare sensor as input
 
  Serial.begin(9600);
}
 
voidloop(){
  val = digitalRead(inputPin); // read input value
  if(val == HIGH) { // check if the input is HIGH
    digitalWrite(ledPin, HIGH); // turn LED ON
    if(pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else{
    digitalWrite(ledPin, LOW); // turn LED OFF
    if(pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}