Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara menggunakan sensor PIR HC SR501 Arduino

Cara menggunakan sensor PIR HC SR501 Arduino untuk menghidupkan lampu secara otomatis

HC SR501 Pir Arduino Cara Membuat Lampu Menyala Otomatis - Sensor PIR merupakan sensor yang mampu mendeteksi "Pergerakan" Manusia. PIR merupakan singkatan dari Passive Infrared. 

1. Apa itu sensor PIR?

Sensor PIR adalah sensor yang mendeteksi perubahan radiasi inframerah yang berasal dari pergerakan benda atau manusia.PIR merupakan singkatan dari Passive Infra Red. Sensor ini pada dasarnya dibuat dengan Sensor Pyroelectric.

Sederhananya sensor PIR adalah sensor yang bisa mendeteksi pergerakan manusia.

Beberapa benda tertentu atau manusia memiliki pancaran radiasi inframerah. Ketika benda atau menusia bergerak, maka radiasi yang terpancar akan berubah. Perubahan radiasi ini yang dimanfaatkan oleh sensor PIR dan mengolahnya menjadi sebuah sinyal.

Dengan sinyal ini nanti diproses untuk kebutuhan tertentu, salah satunya untuk menyatakan kehadiran manusia.


2. Dimana sensor PIR akan digunakan?

Berdasarkan fungsinya, sensor PIR dapat digunakan pada banyak aplikasi, baik pada rumah, taman, kantor dan lainnya, seperti:

  • Lampu hidup otomatis
  • AC hidup otomatis
  • Alarm untuk CCTV
  • Kipas Ventilasi
  • Alarm anti maling
  • dan sebagainya

3. Cara Kerja Sensor PIR HC SR501

Banyak jenis dan produsen yang memproduksi sensor PIR, seperti Panasonic, Adafruit, Kemet, Murata, Parallax, Seed Technology, Sparkfun, Zilog dan lain-lain.

Ketika kita berbicara tentang sensor, itu sebenarnya kita berbicara tentang satu komponen utama pendeteksi. Namun jika kita berbicara tentang sensor PIR HC SR501, itu sebenarnya kita berbicara tentang modul sensor HC SR501.

A. Apa yang dimaksud dengan modul?

Modul adalah suatu papan elektronik yang telah terdiri dari komopnen-komponen tambahan pendukung, dari komponen utama.

Sensor PIR (komponen utama) itu tugasnya hanya mendeteksi perubahan suhu infrared dan mengeluarkan sinyal listrik yang sangat kecil

Sinyal listrik ini harus dikuatkan untuk bisa kita gunakan pada tahapan selanjutnya. Salah satu komponen penguat sinyal ini adalah IC BISS0001.

BISS0001 adalah sebuah IC yang digunakan khusus untuk membaca sinyal output dari sensor PIR dan merubahnya menjadi sinyal yang dapat digunakan oleh komponen lain seperti mikrokontroller.

Beberapa fitur dari IC BISS0001 adalah:

  1. Chip CMOS Berdaya rendah (cocok untuk mengggunakan baterai)
  2. Chip CMOS dengan Amplifier operasional impedansi input tinggi 
  3. Bisa deteksi level dua arah / tahan terhadap noise(gangguan)
  4. Built-in Power up menonaktifkan & mengeluarkan logika kontrol pulsa
  5. Mode ganda: dapat dipicu & tidak dapat dipicu.

B. Bagaimana cara kerja sensor PIR HC SR501?

Didalam modul PIR SR501 terdapat beberapa komponen tambahan yaitu lensa Fresnel, Sensor, IC BISS001, Pengaturan sensitifitas, pengaturan jeda waktu, jumper trigger, dioda pengaman, regulator 3.3V.
chip piko, pir arduino, hc sr501, sr501, pir sr501, hc 501, sr501 pir, rangkaian sensor pir dengan arduino, pir sensor sr501, sensor pir dengan arduino, sensor pir arduino uno, arduino uno pir, cara membuat sensor gerak dengan arduino, rangkaian pir arduino, rangkaian pir hc sr501, hc sr501 schematics, pir shcematics,
Pin Out PIR HC SR501 dan Konfigurasinya

Cara kerja:
Radiasi inframerah yang dipancarkan oleh suatu benda akan mengenai Lensa Fresnel. Lensa Fresnel akan meneruskan dan memfokuskan radiasi inframerah ke Sensor Pyroelectric
Sensor Pyroelectric akan mengeluarkan sinyal kecil dan diterima serta diolah oleh IC BISS0001. Hasil Output dari pengolahan sinyal akan dipengaruhi oleh Potensiometer Sensitifitas, Delay serta Jumper Trigger.

Sensitifitas adalah kemampuan modul untuk mendeteksi pergerakan. Semakin tinggi sensitifitas yang diatur pada potensiometer ini, semakin jauh jarak yang dapat dideteksi. Modul ini dapat mendeteksi maksimal sekitar 7 meter.

Delay adalah waktu jeda pemberian sinyal output dengan logika HIGH. Jika waktu jeda diatur rendah, waktu minimal sekitar 3 detik. Jika waktu jeda diatur tinggi, waktu maksimal sekitar 5 menit.

4. Rangkaian PIR HC SR501 Arduino

Modul SR501 adalah modul yang sangat mudah digunakan. Modul ini hanya memiliki 3 pin, 2 diantaranya sebagai power (VCC GND) dan 1 sebagai sinyal output. Untuk rangkaiannya adalah sebagai berikut.

chip piko, pir arduino, hc sr501, sr501, pir sr501, hc 501, sr501 pir, rangkaian sensor pir dengan arduino, pir sensor sr501, sensor pir dengan arduino, sensor pir arduino uno, arduino uno pir, cara membuat sensor gerak dengan arduino, rangkaian pir arduino, rangkaian pir hc sr501, hc sr501 schematics, pir shcematics,
Rangkaian PIR HC SR501 Arduino Uno


Pada rangkaian ini, saya menggunakan Pin 2 sebagai pin terima data, tapi anda dapat menggunakan pin yang lain

5. Program PIR SR501 Arduino

A. Mendeteksi Gerak

Sensor PIR akan mengeluarkan tegangan HIGH ketika mendeteksi pergerakan dan sebaliknya. Berikut adalah program untuk menampilkan notifikasi ke Serial Monitor dan LED internal ketika ada pergerakan atau tidak.
/*  
    Deteksi Gerak - https://www.chippiko.com/
    Kode dasar edit dari https://learn.adafruit.com/
*/

int pinSensor = 2;
int pinLed = 13;
int statusSensor = LOW;
int nilai = 0;

void setup() {
  Serial.begin(9600);
  pinMode(pinLed, OUTPUT);
  pinMode(pinSensor, INPUT);
}

void loop() {
  nilai = digitalRead(pinSensor);
  if (nilai == HIGH)
  {
    digitalWrite(pinLed, HIGH);
    if (statusSensor == LOW) {
      Serial.println("Terdeteksi!");

      statusSensor = HIGH;
    }
  }

  else
  {
    digitalWrite(pinLed, LOW);
    if (statusSensor == HIGH) {
      Serial.println("Tidak terdeteksi!");
      statusSensor = LOW;
    }
  }
}

B. Menyalakan Lampu Disaat Ada Orang Diruangan dan Mematikannya ketika Orang tersebut keluar dari Ruangan

Sekarang kita akan membuat alat yang akan menghidupkan lampu ketika sensor mendeteksi pergerakan orang dan akan membaca pergerakan selama dalam rentang waktu 4 menit. 

Jika didalam 4 menit tidak ada pergerakan sama sekali, maka lampu akan mati.

Prinsip kerjanya adalah saat sensor mendeteksi pergerakan, maka sensor akan mengirimkan logika HIGH ke mikrokontroller.

Maka, mikrokontroller akan berhitung dari 0 hingga 240 detik dengan setiap penjumlahan 0.25 detik.

Dalam 1 detik, mikrokontroller akan membaca data dari sensor sebanyak 4 kali.

Contoh, mikrokontroller mendapatkan data HIGH dari sensor saat sedang menghitung ke detik 100, maka nilai perhitungan akan menjadi 0 kembali.

Dari ini, kita dapat membuat sensor akan terus menyalakan lampu terus-menerus dan akan mati lampunya jika dalam 4 menit tidak ada pergerakan sama sekali.

Progam ini menggunakan Millis. Untuk memahami cara kerja Millis(), bisa ke halaman ini.

Untuk hasil terbaik, mohon putar potensiometer Sensitifitas pada nilai tertinggi (full ke kanan) dan delay pada nilai terendah (full ke kiri).


int ketentuan = 4 * 60;               //Atur nilai maksimal 4 menit
const unsigned long batasAngka = 250; //Setiap 250 mili detik lakukan perhitungan
unsigned long millisSebelumnya = 0;   //Digunakan untuk millis
unsigned long millisSekarang = 0;     //Digunakan untuk millis
float penghitung = 0;                 

int sensorPin1 = 10;                  //Pin D10 untuk Sensor 1
int sensorPin2 = 11;                  //Pin D11 untuk Sensor 2
int sensorPin3 = 12;                  //Pin D12 untuk Sensor 3

int kondisiSensorPin1 = 0;            //Untuk menyimpan data HIGH/LOW dari Sensor 1
int kondisiSensorPin2 = 0;            //Untuk menyimpan data HIGH/LOW dari Sensor 1
int kondisiSensorPin3 = 0;            //Untuk menyimpan data HIGH/LOW dari Sensor 1

int lampu = 13;                       //Pin D13 Untuk Lampu/Relay

void setup()
{
  Serial.begin(9600);
  Serial.println("Mulai");
  
  pinMode(sensorPin1, INPUT);         //Jadikan pin D10 sebagai input
  pinMode(sensorPin2, INPUT);         //Jadikan pin D11 sebagai input
  pinMode(sensorPin3, INPUT);         //Jadikan pin D12 sebagai input
  pinMode(lampu, OUTPUT);             //Jadikan pin D13 sebagai output
}

void loop()
{
  //Ambil data nilai millis
  millisSekarang = millis();              

  //Baca nilai dari sensor
  kondisiSensorPin1 = digitalRead(sensorPin1);
  kondisiSensorPin2 = digitalRead(sensorPin2);
  kondisiSensorPin3 = digitalRead(sensorPin3);
  
  //Kirim data nilai sensor ke serial monitor
  if (kondisiSensorPin1 == HIGH) {Serial.println("Pin 10 HIGH");}
  if (kondisiSensorPin2 == HIGH) {Serial.println("Pin 11 HIGH");}
  if (kondisiSensorPin3 == HIGH) {Serial.println("Pin 12 HIGH");}

  //Jika salah satu dari sensor memberikan sinyal HIGH, maka hidupkan lampu
  if ((kondisiSensorPin1 == HIGH) || (kondisiSensorPin2 == HIGH) || (kondisiSensorPin3 == HIGH)) 
  {
    digitalWrite(lampu, HIGH);
    Serial.println("Lampu dihidupkan");
    penghitung = 0;
  }

  //Hitung data setiap per 250 milidetik
  if ((millisSekarang - millisSebelumnya) >= batasAngka)
  {
    penghitung = penghitung + .25; 
    Serial.print(penghitung);
    Serial.println(" Detik");
    millisSebelumnya = millisSekarang;
  }

  //Jika data yang dihitung telah sampai 4 menit, maka lampu dimatikan
  if (penghitung == ketentuan)
  {
    digitalWrite(lampu, LOW);
    Serial.println("Lampu di matikan");
  }
}

6. Download Datasheet BISS0001

Semoga artikel ini bermanfaat untuk dapat membantu proyek arduino anda. Terima kasih telah berkunjung.

Posting Komentar untuk "Cara menggunakan sensor PIR HC SR501 Arduino"