KUNJUNGI KAMI

KUNJUNGI KITA DI BUKALAPAK, TOKOPEDIA DAN SHOPEE

Cara Kerja Sensor PIR HC-SR501 & Menghubungkannya dengan Arduino

 


Apakah kamu ingin membangun alarm keamanan rumah atau kamera jejak, atau mungkin kamu ingin membangunkan hiasan Halloween yang bergerak ketika anak-anak datang berkeliling meminta permen ke pintu kamu, maka kamu pasti harus mempertimbangkan untuk mendapatkan sensor Pasif Inframerah (PIR) HC-SR501.

Sensor PIR memungkinkan kamu untuk mendeteksi ketika seseorang atau hewan bergerak masuk atau keluar dari jangkauan sensor. Sensor ini adalah apa yang akan kamu temukan dalam sebagian besar sistem keamanan modern, sakelar lampu otomatis, pembuka pintu garasi, dan aplikasi serupa di mana kita ingin merespons gerakan.

Sebelum masuk ke detail lebih lanjut, mari kita pahami dulu bagaimana sebenarnya cara kerja sensor PIR."

Bagaimana cara kerja sensor PIR?


Semua objek, termasuk tubuh manusia, pada suhu di atas nol mutlak (0 Kelvin / -273,15 °C) memancarkan energi panas dalam bentuk radiasi inframerah. Semakin panas suatu objek, semakin banyak radiasi yang dipancarkannya. Radiasi ini tidak terlihat oleh mata manusia karena dipancarkan pada panjang gelombang inframerah. Sensor PIR dirancang khusus untuk mendeteksi tingkat radiasi inframerah seperti ini.

Sensor PIR terdiri dari dua bagian utama:"

1. Sebuah sensor piroelektrik, yang dapat Anda lihat dalam gambar di bawah ini sebagai logam bundar dengan kristal berbentuk persegi di tengahnya.

2. Sebuah lensa khusus yang disebut lensa fresnel yang mengarahkan sinyal inframerah ke sensor piroelektrik.



Sensor Piroelektrik

Sebuah sensor piroelektrik terdiri dari sebuah jendela dengan dua slot persegi panjang dan terbuat dari bahan (biasanya silikon berlapis) yang memungkinkan radiasi inframerah untuk melewatinya. Di belakang jendela, terdapat dua elektroda sensor inframerah terpisah, satu bertanggung jawab untuk menghasilkan output positif dan yang lainnya untuk menghasilkan output negatif.

Kedua elektroda dihubungkan sehingga saling menghapus satu sama lain. Hal ini karena kita mencari perubahan dalam tingkat IR dan bukan tingkat IR lingkungan. Itu sebabnya ketika satu bagian melihat lebih atau kurang radiasi IR daripada yang lain, kita mendapatkan output.


Ketika tidak ada pergerakan di sekitar sensor, kedua slot mendeteksi jumlah radiasi inframerah yang sama, menghasilkan sinyal output nol.

Tetapi ketika tubuh hangat seperti manusia atau hewan lewat, pertama-tama ia melintasi setengah dari sensor. Ini menyebabkan perubahan diferensial positif antara kedua bagian. Ketika tubuh hangat melintasi setengah lain dari sensor (keluar dari wilayah sensor), kebalikannya terjadi, dan sensor menghasilkan perubahan diferensial negatif. Dengan membaca perubahan tegangan ini, gerakan terdeteksi."


Lensa Fresnel

Mungkin kamu merasa bahwa lensa Fresnel yang digunakan di sini sebenarnya tidak melakukan apa-apa. Faktanya, inilah yang meningkatkan jangkauan dan bidang pandang sensor PIR. Konstruksi yang ramping dan ringan serta kemampuan mengumpulkan cahaya yang sangat baik membuatnya sangat berguna untuk membuat PIR ukuran kecil namun kuat.

Sebuah lensa Fresnel terdiri dari serangkaian alur konsentrik yang digariskan pada plastik. Kontur-kontur ini bertindak sebagai permukaan pemfokusan individual, mengumpulkan sinar cahaya sejajar pada titik fokus. Akibatnya, lensa Fresnel, meskipun lebih kecil dalam ukuran, mampu memfokuskan cahaya secara serupa dengan lensa optik konvensional.



Sebenarnya, untuk meningkatkan jangkauan dan bidang pandang sensor PIR, lensa ini dibagi menjadi beberapa bagian fasit, setiap bagian adalah lensa Fresnel terpisah.


Fasit-fasit yang berbeda dan sub-lensa menciptakan berbagai area/zona deteksi yang saling tumpang tindih. Itulah mengapa pusat-pusat lensa 'tidak konsisten' pada gambar di atas - setiap satu menunjuk ke setengah berbeda dari elemen sensor PIR.


Ikhtisar Perangkat Sensor PIR HC-SR501

Untuk sebagian besar proyek Arduino kami yang memerlukan deteksi apakah seseorang telah keluar atau masuk ke dalam area, sensor PIR HC-SR501 adalah pilihan yang bagus. Ini memiliki konsumsi daya rendah, biaya rendah, mudah dihubungkan, dan sangat populer di kalangan hobiis.

Sensor PIR ini sendiri cukup sederhana dan dapat digunakan langsung. Cukup berikan daya 5V - 12V dan ground. Output sensor akan menjadi HIGH ketika mendeteksi gerakan dan menjadi LOW ketika tidak ada gerakan (tidak mendeteksi gerakan).

Dengan menghubungkan output ini ke mikrokontroler, kamu dapat merespons gerakan dengan menghidupkan/mematikan lampu, mengaktifkan kipas angin, mengaktifkan hiasan Halloween, atau bahkan mengambil gambar penyerbu.

Dan yang terbaik adalah bahwa sensor ini mengonsumsi kurang dari 2mA arus dan dapat mendeteksi gerakan hingga 7 meter (21 kaki) dengan kendali sensitivitas.

Pengendali PIR BISS0001

Di tengah modul ini terdapat IC pengendali pasif inframerah (PIR) - BISS0001. Karena kekebalan terhadap noise yang diberikannya, BISS0001 adalah salah satu pengendali PIR yang paling stabil yang tersedia.

Chip ini mengambil output dari sensor piroelektrik dan melakukan beberapa pemrosesan kecil untuk menghasilkan pulsa output digital.


Kamu dapat mempelajari lebih lanjut tentang BISS0001 dari lembar data.

Daya

Modul ini dilengkapi dengan regulator tegangan presisi 3.3V, sehingga dapat ditenagai oleh tegangan DC apa pun mulai dari 4.5 hingga 12 volt, meskipun umumnya menggunakan 5V.

Modul ini dilengkapi dengan dioda perlindungan (juga dikenal sebagai dioda keselamatan) untuk melindungi modul dari tegangan dan arus terbalik. Jadi, bahkan jika kamu secara tidak sengaja menghubungkan daya dengan polaritas yang salah, modul kamu tidak akan rusak.


Penyesuaian Sensitivitas

Sensor PIR memiliki potensiometer di bagian belakang untuk menyesuaikan sensitivitas.


Potensiometer ini mengatur jangkauan deteksi maksimum. Sensitivitas dapat diatur dalam rentang sekitar 3 meter hingga 7 meter. Namun, topologi ruanganmu dapat memengaruhi jangkauan sebenarnya yang kamu dapatkan. Memutar potensiometer searah jarum jam akan meningkatkan sensitivitas dan dengan demikian jangkauan, dan sebaliknya.


Penyesuaian Waktu Tunda

Ada potensiometer lain di belakang sensor PIR untuk menyesuaikan Waktu Tunda.


Potensiometer ini mengatur berapa lama output akan tetap HIGH setelah gerakan terdeteksi. Ini dapat diatur dari 1 detik hingga sekitar 3 menit. Memutar potensiometer searah jarum jam akan meningkatkan tunda, sementara memutar potensiometer berlawanan arah jarum jam akan mengurangi tunda.

Pemilihan Jumper Pemicu

Ada dua mode pemicu yang menentukan bagaimana sensor akan bereaksi ketika gerakan terdeteksi.

Mode Pemicu Tunggal: Gerakan yang konstan akan menyebabkan pemicu tunggal.
Mode Pemicu Ganda: Gerakan yang konstan akan menyebabkan serangkaian pemicu.

Papan ini dilengkapi dengan jumper berg (beberapa modul memiliki jumper jembatan solder) yang memungkinkan kamu memilih salah satu dari dua mode:


L – Memilih ini akan mengatur mode pemicu tunggal. Dalam mode ini, output menjadi HIGH segera setelah gerakan terdeteksi dan tetap HIGH selama periode yang ditentukan oleh potensiometer Waktu Tunda. Deteksi selanjutnya diblokir sampai output kembali ke LOW pada akhir waktu tunda. Jika masih ada gerakan, output akan menjadi HIGH lagi. Seperti yang bisa kamu lihat dalam gambar di bawah ini, Gerakan #3 sepenuhnya diabaikan.


H – Memilih ini akan mengatur mode pemicu ganda. Dalam mode ini, output menjadi HIGH segera setelah gerakan terdeteksi dan tetap HIGH selama periode yang ditentukan oleh potensiometer Waktu Tunda. Berbeda dengan mode pemicu tunggal, deteksi selanjutnya tidak diblokir, sehingga waktu tunda diatur ulang setiap kali gerakan terdeteksi. Begitu gerakan berhenti, output kembali ke LOW hanya setelah waktu tunda. Oleh karena itu, dinamakan mode pemicu ganda.



Komponen Opsional – Termistor dan LDR

Modul HC-SR501 memiliki pad solder untuk dua komponen tambahan. Biasanya, komponen ini diberi label 'RT' dan 'RL'. Perhatikan bahwa pada beberapa papan, labelnya mungkin tertutup oleh lensa Fresnel di sisi sebaliknya dari komponen.

RT – Koneksi ini adalah untuk termistor atau resistor sensitif suhu. Menambahkan ini memungkinkan HC-SR501 digunakan dalam suhu ekstrem. Ini juga meningkatkan akurasi detektor sejauh tertentu.

RL – Koneksi ini adalah untuk Resistor Terkendali Cahaya (LDR) atau Fotoresistor. Menambahkan komponen ini memungkinkan HC-SR501 beroperasi dalam kondisi gelap. Ini berguna untuk membangun sistem pencahayaan yang sensitif terhadap gerakan.

Komponen tambahan ini dapat disolder langsung ke modul atau diperpanjang ke lokasi jarak jauh menggunakan kabel dan konektor.

Berikut adalah spesifikasi teknisnya:

Overating Voltage 4.5 – 20V (typically 5V)
Maximum Current Draw < 2mA
Time Delay ~ 1 sec to 3 min
Detection Distance 3 – 7 meters (9 – 21 feet)
Detection Angle 120 degrees (typically)



Pemetaan Pin Sensor PIR HC-SR501


HC-SR501 memiliki konektor 3-pin. Tanda-tandanya tersembunyi oleh lensa Fresnel, jadi lihat gambar berikut untuk pemetaan pin.



Diagram Pemetaan Pin Sensor PIR Inframerah Pasif

VCC adalah pasokan daya untuk sensor ini. Anda dapat menghubungkan tegangan masukan di antara 5 hingga 12V ke pin ini, meskipun 5V biasanya digunakan.

Output pin adalah keluaran logika TTL 3,3V. Ini akan menjadi TINGGI ketika mendeteksi gerakan dan menjadi rendah saat tidak ada gerakan (idle).

GND adalah pin tanah.


Menggunakan Sensor PIR sebagai unit mandiri


Salah satu alasan mengapa sensor PIR HC-SR501 sangat populer adalah karena sensor ini sangat serbaguna dan mampu beroperasi sendiri. Anda dapat meningkatkan serbagainya lebih lanjut dengan menghubungkannya ke mikrokontroler seperti Arduino.

Untuk eksperimen pertama kami, kita akan menggunakan HC-SR501 untuk menunjukkan seberapa berguna sensor ini jika digunakan secara mandiri.

Kabel untuk eksperimen ini sangat sederhana. Hubungkan baterai ke VCC sensor dan GND, dan hubungkan LED merah kecil ke pin keluaran melalui resistor pembatas arus 220Ω. Itu saja!

Sekarang ketika PIR mendeteksi gerakan, pin keluaran akan menjadi "TINGGI" dan menyalakan LED!"
Ingatlah bahwa setelah kamu menyuplai daya ke rangkaian, kamu perlu menunggu 30-60 detik agar PIR beradaptasi dengan energi inframerah di ruangan. LED mungkin akan berkedip sedikit selama waktu tersebut. Tunggu sampai LED benar-benar mati dan kemudian berjalan di depannya atau mengayunkan tangan, dan amati LED menyala sesuai dengan gerakan tersebut.

Output PIR ini dapat dihubungkan langsung ke modul relay jika kamu ingin menghidupkan/mematikan sesuatu berdasarkan gerakan.

Menghubungkan Sensor PIR ke Arduino

Sekarang bahwa kita memiliki pemahaman lengkap tentang bagaimana sensor PIR bekerja, kita dapat mulai menghubungkannya ke Arduino kita!

Menghubungkan sensor PIR ke Arduino sangatlah sederhana. Beri daya PIR dengan 5V dan hubungkan ground ke ground. PIR berfungsi sebagai output digital, jadi yang perlu kamu lakukan adalah mendengarkan pin output-nya. Hubungkan output ke pin digital Arduino #8.

Untuk HC-SR501 agar berfungsi dengan benar, atur jumper ke posisi H (Mode Pemicu Ganda). Kamu juga perlu mengatur Waktu Tunda setidaknya 3 detik, putar potensiometer Waktu Tunda searah jarum jam sejauh mungkin. Terakhir, atur potensiometer sensitivitas ke posisi yang kamu inginkan atau, jika kamu tidak yakin, atur ke tengah.

Tabel berikut ini mencantumkan koneksi pin:

Gambar di bawah ini menunjukkan bagaimana menghubungkan sensor PIR HC-SR501 ke Arduino.




Sekarang kamu siap untuk mengunggah beberapa kode dan membuat sensor PIR bekerja.


Contoh Kode Arduino

Kode tersebut sangat sederhana. Pada dasarnya, kode hanya memantau apakah input ke pin #8 berada di posisi HIGH atau LOW.
 int ledPin = 13;                // choose the pin for the LED
int inputPin = 8;               // 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
	
    if (pirState == LOW) 
	{
      Serial.println("Motion detected!");	// print on output change
      pirState = HIGH;
    }
  } 
  else 
  {
    digitalWrite(ledPin, LOW); // turn LED OFF
	
    if (pirState == HIGH)
	{
      Serial.println("Motion ended!");	// print on output change
      pirState = LOW;
    }
  }
}


Hal yang perlu dipertimbangkan sebelum merancang aplikasi berbasis PIR

Ketika merancang sistem berdasarkan HC-SR501, kamu perlu mempertimbangkan periode penundaan berikut ini.

Waktu Penutupan

Ketika output sensor menjadi LOW, itu akan tetap LOW selama sekitar 2 detik. Selama periode ini, deteksi gerakan terkunci.


Sebagai contoh, katakanlah kamu telah mengatur sensor untuk waktu tunda selama 4 detik dan mengatur jumper ke 'L'. Jadi ketika kamu mengayunkan tangan di depan sensor, output akan menjadi HIGH selama 4 detik dan kemudian menjadi LOW selama sekitar 2 detik. Semua gerakan dalam periode ini sepenuhnya diabaikan; seperti yang bisa kamu lihat, Gerakan #2 diabaikan di sini.

Penundaan Saat Menyalakan Daya

Seperti sebagian besar sensor PIR, HC-SR501 memerlukan sekitar 30 hingga 60 detik setelah dihidupkan untuk menjalani urutan inisialisasi. Pada saat itu, ia mempelajari tanda inframerah lingkungan sekitar. Pada dasarnya, ia melakukan kalibrasi terhadap lingkungannya untuk menentukan apa yang merupakan gerakan.

Pemicu palsu kemungkinan akan terjadi selama waktu kalibrasi ini, jadi semua pemicu selama waktu ini sebaiknya diabaikan. Pastikan juga bahwa tidak ada terlalu banyak pergerakan di depan sensor ketika sedang mengalami kalibrasi sendiri karena hal ini dapat mengganggu proses kalibrasi.

Referensi:
"How HC-SR501 PIR Sensor Works & Interface It With Arduino", Last Minute Engineer, https://lastminuteengineers.com/pir-sensor-arduino-tutorial/#google_vignette