Pertemuan 7
Sensor Gerak PIR (HC-SR501)
Tujuan Pembelajaran
- Memahami prinsip kerja sensor PIR dalam mendeteksi gerakan.
- Mampu memasang dan membaca output sensor PIR.
- Mampu membuat sistem deteksi gerak sederhana (misal simulasi lampu otomatis / alarm).
Penjelasan Konsep
Prinsip kerja PIR
Sensor PIR HC-SR501 mendeteksi perubahan radiasi inframerah yang dipancarkan tubuh manusia/hewan (panas tubuh). Saat ada objek hangat yang bergerak melintas di jangkauan sensor, output PIR berubah dari LOW ke HIGH.
Karakteristik sensor PIR
- Sensor ini pasif - tidak memancarkan sinyal apa pun, hanya "mendengarkan" perubahan inframerah di sekitarnya, sehingga hemat daya.
- HC-SR501 dilengkapi dua trimpot: satu untuk mengatur sensitivitas/jarak deteksi, satu lagi untuk mengatur waktu delay output tetap HIGH setelah gerakan terdeteksi.
- Butuh waktu pemanasan (warm-up) sekitar 30–60 detik setelah dinyalakan sebelum pembacaannya stabil.
Aplikasi umum
Lampu otomatis, alarm keamanan, penghitung orang lewat, sistem hemat energi ruangan.
Kesalahan umum
- Tidak menunggu waktu pemanasan - menguji sensor segera setelah dinyalakan sering memicu pembacaan HIGH palsu karena sensor masih menyesuaikan diri dengan suhu ruangan sekitarnya.
- Trimpot delay diatur terlalu lama saat testing - siswa mengira sensor "tidak responsif" padahal LED memang sengaja tetap menyala lama sesuai pengaturan trimpot delay, bukan bug program.
- Sensor diarahkan ke sumber panas tetap (misalnya dekat lampu pijar, ventilasi AC/kipas) - bisa memicu pembacaan salah karena PIR sensitif terhadap perubahan radiasi inframerah, bukan hanya keberadaan manusia.
- Mengira PIR bisa mendeteksi objek diam - PIR hanya mendeteksi perubahan inframerah, sehingga orang yang berdiri diam cukup lama di jangkauan sensor bisa gagal terdeteksi terus-menerus.
Komponen yang Dibutuhkan
- 1x Arduino Uno atau ESP32
- 1x Sensor PIR HC-SR501
- 1x LED + resistor 220Ω (indikator)
- Breadboard, kabel jumper
Diagram / Skema Pengkabelan
Sensor PIR HC-SR501:
VCC -> 5V
OUT -> pin digital (mis. D7)
GND -> GND
LED indikator:
Anoda -> resistor 220Ω -> pin D8
Katoda -> GND
Contoh Kode Program
// Mendeteksi gerakan dengan sensor PIR, menyalakan LED saat gerakan terdeteksi
const int pinPir = 7;
const int pinLed = 8;
void setup() {
pinMode(pinPir, INPUT);
pinMode(pinLed, OUTPUT);
Serial.begin(9600);
Serial.println("Sensor PIR pemanasan, tunggu sebentar...");
delay(30000); // waktu pemanasan sensor PIR
Serial.println("Sensor siap!");
}
void loop() {
int statusGerak = digitalRead(pinPir);
if (statusGerak == HIGH) {
digitalWrite(pinLed, HIGH);
Serial.println("Gerakan terdeteksi!");
} else {
digitalWrite(pinLed, LOW);
}
delay(200);
}Tugas / Latihan
- Amati berapa lama LED tetap menyala setelah gerakan berhenti - sesuaikan trimpot delay di modul PIR, catat perubahannya.
- Kombinasikan sensor PIR dengan buzzer untuk membuat simulasi alarm keamanan sederhana.
- (Tantangan) Tambahkan penghitung jumlah deteksi gerakan (event count), dengan syarat gerakan baru hanya dihitung setelah status sempat kembali LOW terlebih dahulu (hindari satu gerakan panjang terhitung berkali-kali).