Sensor PIR Arduino Sebagai Alarm

Selamat Siang,Kali ini saya akan share tentang Sensor PIR yang di kontrol oleh arduino. Sensor PIR kepanjangan dari Pyroelectric yang cara kerjanya adalah mendeteksi adanya gerakan. Selanjutnya sensor ini akan mengirimkan sinyal HIGH ke mikrokontroller untuk diproses. Sensor ini memiliki sensivitas hingga 7 m dan dapat diatur dengan cara memutar potensiometer yang ada di sensor ini. Sebelumnya jangan sampai salah ada 2 buah potensiometer yang sebelah kiri adalah untuk pengaturan sensivitas dan yang sebelah kanan adalah untuk mengatur lamanya sinyal HIGH yang dikeluarkan.

Disini untuk melakukan percobaan ini yang saya butuhkan adalah
1. Protoboard
2. Arduino Nano
3. Sensor PIR
4. LED (Pengganti Alarm)
5. Kabel Jumper secukupnya.

Langkah kerjanya adalah sebagai berikut
1. Hubungkan antara sensor PIR dengan arduino nano yang anda punyai. Tolong di perhatikan  apakah anda sudah menghubungkan sudah benar, jangan terbalik antara VCC dan GND nya.
Hubungkan sinyal output sensor ke Pin D2
2. Hubungkan Sinyal Input Kaki Anoda LED ke Pin D2.
3. Silahkan di Colokan arduino nano yang di punya ke komputer dan silahkan copy paste codding dibawah ini.

Demikian info singkat dari sensor PIR ini semoga berhasil.

long unsigned int lowIn;

long unsigned int pause = 50;

boolean lockLow = true;

boolean takeLowTime;

int pirPin = 2;

int ledPin = 3;

/////////////////////////////

//SETUP

void setup(){

  Serial.begin(9600);

  pinMode(pirPin, INPUT);

  pinMode(ledPin, OUTPUT);

  digitalWrite(pirPin, LOW);

   }

void loop(){

     if(digitalRead(pirPin) == HIGH){

       digitalWrite(ledPin, HIGH);

       if(lockLow){

         lockLow = false;

         Serial.println(“—“);

         Serial.print(“motion detected at “);

         Serial.print(millis()/1000);

         Serial.println(” sec”);

         }

         takeLowTime = true;

       }

     if(digitalRead(pirPin) == LOW){

       digitalWrite(ledPin, LOW);

       if(takeLowTime){

        lowIn = millis();

        takeLowTime = false;

        }

           if(!lockLow && millis() – lowIn > pause){

           lockLow = true;

           Serial.print(“motion ended at “);

           Serial.print((millis() – pause)/1000);

           Serial.println(” sec”);

           }

       }

  }

Leave a Reply

Your email address will not be published. Required fields are marked *