Belajar Mikrokontroler - Mengenal Sensor Pasive InfraRed (PIR) dan memprogramnya - Arduino #5

Belajar Mikrokontroler - Mengenal Sensor Pasive InfraRed (PIR) dan memprogramnya - Arduino #5

Sensor PIR memungkinkan Anda untuk mendeteksi adanya gerakan, hampir selalu digunakan untuk mendeteksi apakah manusia telah masuk atau keluar dari jangkauan sensor. Sensor ini kecil, murah, berdaya rendah, mudah digunakan dan tidak aus. Karena alasan itu, sensor ini biasanya ditemukan di peralatan dan gadget yang digunakan di rumah atau bisnis. Mereka sering disebut sebagai sensor PIR, "Passive Infrared", "Pyroelectric", atau "IR motion".


PIR pada dasarnya terbuat dari sensor piroelektrik (yang dapat Anda lihat di bawah sebagai kaleng logam bundar dengan kristal persegi panjang di tengahnya), yang dapat mendeteksi tingkat radiasi inframerah. Semuanya memancarkan radiasi tingkat rendah, dan semakin panas sesuatu, semakin banyak radiasi yang dipancarkan. Sensor dalam detektor gerak sebenarnya terbagi menjadi dua bagian. Alasannya adalah karena ingin mendeteksi gerakan (perubahan) bukan tingkat IR rata-rata. Kedua bagian dihubungkan sehingga saling meniadakan. Jika salah satu bagian melihat lebih banyak atau lebih sedikit radiasi IR daripada yang lain, output akan berayun tinggi atau rendah.


Bersama dengan sensor piroelektik adalah sekumpulan sirkuit pendukung, resistor dan kapasitor. Tampaknya sebagian besar sensor penghobi kecil menggunakan BISS0001 ("Micro Power PIR Motion Detector IC"), yang tidak diragukan lagi merupakan chip yang sangat murah. Chip ini mengambil output dari sensor dan melakukan beberapa pemrosesan kecil di atasnya untuk memancarkan pulsa output digital dari sensor analog.

PIR lama kami terlihat seperti ini:


PIR yang baru  memiliki pengaturan yang lebih dapat disesuaikan dan memiliki header yang dipasang di bantalan 3-pin ground / out / power.


Bagaimana PIR Bekerja

Sensor PIR lebih rumit daripada banyak sensor lain yang dijelaskan dalam tutorial ini (seperti fotosel, FSR, dan sakelar kemiringan) karena ada beberapa variabel yang memengaruhi input dan output sensor. Untuk mulai menjelaskan cara kerja sensor dasar, kami akan menggunakan diagram yang cukup bagus ini

Sensor PIR sendiri memiliki dua slot di dalamnya, masing-masing slot dibuat dari bahan khusus yang sensitif terhadap IR. Lensa yang digunakan di sini tidak benar-benar berfungsi banyak dan jadi kami melihat bahwa kedua slot dapat 'melihat' melewati jarak tertentu (pada dasarnya sensitivitas sensor). Saat sensor dalam keadaan idle, kedua slot mendeteksi jumlah IR yang sama, jumlah ambient yang dipancarkan dari ruangan atau dinding atau luar ruangan. Ketika suhu tubuh hangat seperti manusia atau hewan lewat, pertama-tama ia akan memotong setengah dari sensor PIR, yang menyebabkan perubahan diferensial positif antara kedua bagian tersebut. Ketika benda hangat meninggalkan area penginderaan, kebalikannya terjadi, di mana sensor menghasilkan perubahan diferensial negatif. Pulsa perubahan inilah yang terdeteksi.


Sensor PIR

Sensor IR itu sendiri ditempatkan dalam kaleng logam yang tertutup rapat untuk meningkatkan kekebalan terhadap kebisingan / suhu / kelembaban. Ada jendela yang terbuat dari bahan transmisif IR (biasanya dilapisi silikon karena sangat mudah didapat) yang melindungi elemen penginderaan. Di belakang jendela ada dua sensor yang seimbang.




Gambar ini menunjukkan skema internal. Sebenarnya ada JFET di dalam (sejenis transistor) yang memiliki noise sangat rendah dan menyangga impedansi sensor yang sangat tinggi menjadi sesuatu yang dapat dirasakan oleh chip berbiaya rendah (seperti BIS0001).

Lensa

Sensor PIR agak umum dan sebagian besar hanya bervariasi dalam harga dan sensitivitas. Sebagian besar keajaiban nyata terjadi dengan optik. Ini adalah ide yang cukup bagus untuk pembuatan: sensor PIR dan sirkuit sudah diperbaiki dengan biaya beberapa dolar. Harga lensa hanya beberapa sen dan dapat mengubah lebar, jangkauan, pola penginderaan, dengan sangat mudah.

Pada diagram di atas, lensa hanyalah sepotong plastik, tetapi itu berarti area pendeteksiannya hanyalah dua persegi panjang. Biasanya kami ingin memiliki area deteksi yang jauh lebih besar. Untuk melakukan itu, kami menggunakan lensa sederhana seperti yang ditemukan di kamera: lensa tersebut memadatkan area yang luas (seperti lanskap) menjadi area kecil (pada film atau sensor CCD). Untuk alasan yang akan segera terlihat, kami ingin membuat lensa PIR kecil dan tipis serta dapat dibentuk dari plastik murah, meskipun dapat menambah distorsi. Untuk alasan ini, sensor sebenarnya adalah lensa Fresnel:


Lensa Fresnel mengembunkan cahaya, memberikan jangkauan IR yang lebih besar ke sensor.



Oke, jadi sekarang kami memiliki jangkauan yang jauh lebih besar. Namun, ingatlah bahwa kita sebenarnya memiliki dua sensor, dan yang lebih penting kita tidak menginginkan dua persegi panjang area penginderaan yang sangat besar, melainkan hamburan dari beberapa area kecil. Jadi yang kami lakukan adalah membagi lensa menjadi beberapa bagian, yang masing-masing bagiannya adalah lensa fresnel.

Di sini Anda dapat melihat beberapa bagian faset

Bidikan makro ini menunjukkan lensa Fresnel yang berbeda di setiap segi!


Faset dan sub-lensa yang berbeda menciptakan berbagai area deteksi, berselang-seling satu sama lain. Itulah mengapa pusat lensa pada faset di atas 'tidak konsisten' - satu sama lain menunjuk ke separuh berbeda dari elemen penginderaan PIR



Berikut adalah gambaran lain, lebih kualitatif tetapi tidak kuantitatif. (Perhatikan bahwa sensor di toko Adafruit adalah 110 ° bukan 90 °)


Menghubungkan ke PIR


Kebanyakan modul PIR memiliki koneksi 3-pin di bagian samping atau bawah. Pinout dapat bervariasi antar modul, jadi periksa tiga kali pinout! Ini sering silkscreened tepat di sebelah koneksi (setidaknya, milik kita!) Satu pin akan di-ground, yang lain akan menjadi sinyal dan yang terakhir akan menjadi power. Daya biasanya input 3-5VDC tetapi mungkin setinggi 12V. Terkadang modul yang lebih besar tidak memiliki output langsung dan sebagai gantinya hanya mengoperasikan relai dalam hal ini terdapat ground, daya, dan dua koneksi sakelar.

Output dari beberapa relai mungkin 'kolektor terbuka' - itu berarti membutuhkan resistor pullup. Jika Anda tidak mendapatkan output variabel, pastikan untuk mencoba memasang pullup 10K antara sinyal dan pin daya.

Cara mudah untuk membuat prototipe dengan sensor PIR adalah dengan menghubungkannya ke breadboard karena port koneksi berjarak 0,1 ". Beberapa PIR sudah dilengkapi dengan header, yang dari adafruit memiliki header 3-pin lurus untuk menghubungkan kabel.


Untuk PIR kami, kabel merah adalah daya + tegangan, kabel hitam adalah - daya ground dan kuning adalah sinyal keluar. Pastikan Anda mencolokkan kabel seperti yang ditunjukkan di atas! Jika Anda mendapatkannya mundur, Anda tidak akan merusak PIR tetapi tidak akan berhasil.

Menguji PIR



Sekarang ketika PIR mendeteksi gerakan, pin keluaran akan menjadi "high" ke 3.3V dan menyalakan LED!

Setelah Anda memasang breadboard, masukkan baterai dan tunggu 30-60 detik hingga PIR 'stabil'. Selama waktu itu LED mungkin akan berkedip sedikit. Tunggu sampai LED mati dan kemudian bergerak di depannya, melambaikan tangan, dll, untuk melihat LED menyala!

Memicu kembali

Ada beberapa opsi yang mungkin Anda miliki dengan PIR Anda. Pertama kita akan menjelajahi opsi 'Retriggering'.

Setelah Anda memiliki LED berkedip, lihat di belakang sensor PIR dan pastikan jumper ditempatkan di posisi L seperti yang ditunjukkan di bawah ini.



Sekarang siapkan papan pengujian lagi. Anda mungkin memperhatikan bahwa saat menghubungkan sensor PIR seperti di atas, LED tidak tetap menyala saat bergerak di depannya tetapi sebenarnya menyala dan mati setiap detik atau lebih. Itu disebut "non-retriggering".


Sekarang ubah jumper sehingga berada di posisi H. Jika Anda mengatur pengujian, Anda akan melihat bahwa sekarang LED tetap menyala sepanjang waktu ketika ada sesuatu yang bergerak. Itu disebut "retriggering".


Untuk sebagian besar aplikasi, mode "retriggering" (jumper dalam posisi H seperti yang ditunjukkan di bawah) sedikit lebih baik.

Jika Anda perlu menghubungkan sensor ke sesuatu yang dipicu oleh tepi, Anda harus menyetelnya ke "non-retriggering" (jumper di posisi L).

Mengubah sensitivitas


Adafruit PIR memiliki trimpot di bagian belakang untuk mengatur sensitivitas. Anda dapat menyesuaikan ini jika PIR Anda terlalu sensitif atau tidak cukup sensitif - searah jarum jam membuatnya lebih sensitif.

Mengubah Waktu Pulsa dan Durasi Timeout

Ada dua 'batas waktu' yang terkait dengan sensor PIR. Salah satunya adalah batas waktu "Tx": berapa lama LED menyala setelah mendeteksi gerakan - ini mudah disesuaikan di Adafruit PIR karena ada potensiometer.

Yang kedua adalah timeout "Ti" yaitu berapa lama LED dijamin akan mati saat tidak ada gerakan. Yang ini tidak mudah diubah tetapi jika Anda terbiasa dengan besi solder, itu masuk akal.


Pertama, mari kita lihat lembar data BISS lagi

Pada sensor Adafruit PIR, terdapat potensiometer trim kecil berlabel TIME. Ini adalah resistor yang dapat disesuaikan 1 Megaohm yang ditambahkan ke resistor seri 10K. Dan C6 adalah 0,01uF jadi

Tx = 24576 x (10K + Rtime) x 0,01uF

Jika potensiometer Rtime diputar ke bawah berlawanan arah jarum jam (ke 0 ohm) lalu

Tx = 24576 x (10K) x 0,01uF = 2,5 detik (perkiraan)

Jika potensiometer Rtime diputar ke atas searah jarum jam ke 1 Megaohm maka

Tx = 24576 x (1010K) x 0,01uF = 250 detik (perkiraan)

Jika RTime ada di tengah, itu akan menjadi sekitar 120 detik (dua menit) sehingga Anda dapat menyesuaikannya seperlunya. Misalnya jika Anda ingin gerakan dari seseorang untuk menyalakan kipas angin minimal 1 menit, atur potensiometer Rtime menjadi sekitar 1/4.

Menggunakan PIR dengan Arduino

Membaca Sensor PIR

Menghubungkan sensor PIR ke mikrokontroler sangat sederhana. PIR bertindak sebagai keluaran digital, dapat berupa tegangan tinggi atau tegangan rendah, jadi yang perlu Anda lakukan hanyalah mendengarkan pin ke flip tinggi (terdeteksi) atau rendah (tidak terdeteksi) dengan mendengarkan input digital di Arduino Anda

Kemungkinan besar Anda ingin melakukan penggalian ulang, jadi pastikan untuk meletakkan pelompat di posisi H!

Nyalakan PIR dengan 5V dan hubungkan ground  ke ground. Kemudian hubungkan output ke pin digital. Dalam contoh ini kita akan menggunakan pin 2.


Kode ini sangat sederhana, dan pada dasarnya hanya melacak apakah input ke pin 2 HIGH atau LOW. Ini juga melacak status pin, sehingga mencetak pesan saat gerakan telah dimulai dan berhenti.

/*
 * PIR sensor tester
 */
 
int pin_led = 13;                
int pin_input = 2;               
int pir_awal = LOW;             // asumsi tidak ada gerakan ketika memulai
int val = 0;                   
 
void setup() {
  pinMode(pin_led, OUTPUT);      
  pinMode(pin_input, INPUT);     
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(pin_input);  
  if (val == HIGH) {            
    digitalWrite(pin_led, HIGH);  
    if (pir_awal == LOW) {
      Serial.println("Gerak Terdeteksi!");
      pir_awal = HIGH;
    }
  } else {
    digitalWrite(pin_led, LOW); 
    if (pir_awal == HIGH){
      Serial.println("Gerakan berakhir!");
      pir_awal = LOW;
    }
  }
}

Untuk lebih lengkapnya Belajar Mikrokontroler - Mengenal Sensor Pasive InfraRed (PIR) dan memprogramnya - Arduino  bisa dilihat di video berikut ini:






Selamat mencoba!

Post a Comment

Previous Post Next Post

Contact Form