Senin, 22 Januari 2024

Simulasi Arduino - Detektor Gerakan

Simulasi Arduino -  Detektor Gerakan

Pengertian Sensor PIR (Passive Infrared Receiver)

Sensor PIR merupakan sensor yang digunakan untuk mendeteksi adanya pancaran sinar infra red dari suatu objek. Sensor PIR memiliki sifat pasif, yang berarti tidak memancarkan sinar infra red tetapi hanya dapat menerima radiasi sinar infra red dari luar. 

Sensor PIR dapat mendeteksi radiasi dari berbagai objek karena semua objek memancarkan energi radiasi, seperti ketika terdeteksi sebuah gerakan dari sumber infra red dengan suhu tertentu yaitu manusia mencoba melewati sumber infra red yang lain misalnya dinding, maka sensor akan membandingkan pancaran infra red yang diterima setiap satuan waktu, sehingga jika ada pergerakan maka akan terjadi perubahan pembacaan pada sensor. 

Sensor PIR hanya akan mengeluarkan logika 0 dan 1. Logika 0 saat sensor tidak mendeteksi adanya perubahan pancaran infra red dan 1 saat sensor mendeteksi infra red. 

Sensor PIR hanya dapat mendeteksi pancaran infra red dengan panjang gelombang 8-14 mikrometer. Manusia memiliki suhu badan yang dapat menghasilkan pancaran infra red dengan panjang gelombang antara 9-10 mikrometer. Panjang gelombang tersebut dapat terdeteksi oleh sensor PIR sehingga membuat sensor ini sangat efektif digunakan sebagai human detektor. Sensor PIR hanya akan mendeteksi jika objek bergerak atau secara teknis saat terjadi adanya perubahan pancaran infra red.

Gambar 1. Rangkaian simulasi detektor gerakan

Code:

// Mendefinisikan pin yang digunakan
const int pirPin = 2; // Pin sensor PIR
const int ledPin = 13; // Pin LED

void setup() {
  pinMode(pirPin, INPUT); // Mengatur pin sensor PIR sebagai input
  pinMode(ledPin, OUTPUT); // Mengatur pin LED sebagai output
 }

void loop() {
  int motionSensorValue = digitalRead(pirPin); // Membaca nilai dari sensor PIR

  if (motionSensorValue == HIGH) {
    // Jika sensor mendeteksi pergerakan, nyalakan LED
    digitalWrite(ledPin, HIGH);   
  } else {
    // Jika tidak ada pergerakan, matikan LED
    digitalWrite(ledPin, LOW);
  }

  delay(500); // Tunda selama 500 milidetik untuk menghindari pembacaan ganda
}




0 komentar:

Posting Komentar