Skip to main content

Pencuri Bisa Ketahuan Dengan Alat Ini - PIR HC-SR501 Motion Sensor Arduino

Sensor PIR merupakan sensor yang dapat mendeteksi pergerakan, dalam hal ini sensor PIR banyak digunakan untuk mengetahui apakah ada pergerakan manusia dalam daerah yang mampu dijangkau oleh sensor PIR. Sensor ini memiliki ukuran yang kecil, murah, hanya membutuhkan daya yang kecil, dan mudah untuk digunakan. Oleh sebab itu, sensor ini banyak digunakan pada skala rumah maupun bisnis. Sensor PIR ini sendiri merupakan kependekan dari “Passive InfraRed” sensor.


Inilah mengapa sensor PIR dapat mendeteksi pergerakan manusia yang masuk pada jangkauan sensor PIR, hal ini disebabkan manusia memiliki panas tubuh sehingga mengeluarkan radiasi infrared seperti yang ditunjukkan pada gambar dibawah.



 Kalibrasi Sensor

1. Kalibrasi Sensitivitas

Sensitivitas berpengaruh pada jangkauan sensor PIR, semakin maksimum putaran searah jarum jam maka pengaturan sensitivtas maka jangkauan sensor PIR akan semakin jauh atau sensitiv dalam mendeteksi gerak.


2. Kalibrasi Timing

Timing berfungsi untuk mengatur lama status HIGH pada output digital PIR setelah terdeteksi gerakan. Kalibrasi ini dilakukan untuk mengatur delay secara manual pada sistem yang tidak menggunakan Mikrokontroller seperti Arduino. Jika sistem menggunakan Arduino maka timing harus diatur pada posisi MIN. Pengaturan waktu nyala indikator akan diatur melalui program.

Coding:

const int PIN_HUMAN_DETECTOR = 2;

const int PIN_DETECTOR_MODE = 3;

const int PIN_BUTTON_MODE = 4;

const int PIN_ALARM = 6;

const int PIN_INDICATOR_LED = 7;


const int ALARM_DURATION = 100;

const int ALARM_DELAY = 100;


bool detector_on = true;

bool button_ready = true;


void setup() {

    pinMode( PIN_HUMAN_DETECTOR, INPUT );

    pinMode( PIN_DETECTOR_MODE, OUTPUT );

    digitalWrite( PIN_DETECTOR_MODE, HIGH );

    pinMode( PIN_INDICATOR_LED, OUTPUT );

    pinMode( PIN_BUTTON_MODE, INPUT_PULLUP );

    pinMode( PIN_ALARM, OUTPUT );

}


void loop() {

    

    if( digitalRead(PIN_HUMAN_DETECTOR) == HIGH && detector_on ) {

        alarm();

    }


    if( button_ready && digitalRead(PIN_BUTTON_MODE) == LOW ) {

        detector_on = !detector_on;

        button_ready = false;

        delay( 10 );

    } else if( !button_ready && digitalRead(PIN_BUTTON_MODE) == HIGH ) {

        button_ready = true;

        delay( 10 );

    }

        

    if( detector_on ) {

        digitalWrite( PIN_DETECTOR_MODE, HIGH );

    } else {

        digitalWrite( PIN_DETECTOR_MODE, LOW );

        digitalWrite( PIN_ALARM, LOW );

        digitalWrite( PIN_INDICATOR_LED, LOW );

    }


}


void alarm() {


    int alarm_duration = ALARM_DURATION;

    int alarm_delay = ALARM_DELAY;


    digitalWrite( PIN_ALARM, HIGH );

    digitalWrite( PIN_INDICATOR_LED, HIGH );

    while( alarm_duration > 0 ) {

        if( button_ready && digitalRead(PIN_BUTTON_MODE) == LOW ) {

            detector_on = false;

            button_ready = false;

            return;

        }

        alarm_duration -= 10;

        delay( 10 );

    }


    digitalWrite( PIN_ALARM, LOW );

    digitalWrite( PIN_INDICATOR_LED, LOW );

    while( alarm_delay > 0 ) {

        if( button_ready && digitalRead(PIN_BUTTON_MODE) == LOW ) {

            detector_on = false;

            button_ready = false;

            return;

        }

        alarm_delay -= 10;

        delay( 10 );

    }

}




Comments

Popular posts from this blog

Motor Servo dengan Sensor Ultrasonic

Coding: #include <Servo.h> #define trigPin 12 #define echoPin 11 Servo servo; int sound = 250; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); servo.attach(9); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 10) { Serial.println("the distance is less than 10"); servo.write(180); delay(1500); } else { servo.write(0); } if (distance > 60 || distance <= 0){ Serial.println("The distance is more than 60"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); }

Automatic Fish Feed, Pemberi Makan Ikan Otomatis Dengan Timer

Automatic Fish feeder adalah alat untuk memberi makan ikan secara otomatis dengan menggunakan timer. Kita dapat mengatur jadwal pemberian makan ikan berdasarkan waktu, misalkan memberi makan ikan 2 kali sehari, artinya alat akan secara otomatis akan terbuka setiap 12 Jam sekali atau 4 kali sehari, 6 jam sekali. Waktu ini dapat kita atur sesuai dengan keinginan kita. Berikut coding lengkapnya, silahkan di copas dibawah ini: #include <Servo.h> Servo motor; void setup() {   motor.attach(9); } void loop() {   motor.write(200);   delay(8000); /* sama dengan setiap 6 jam atau sehari 4 kali*/   motor.write(120);   delay(200); }

Control LED dengan Push Button Arduino, Push Button Part 1

  Control LED dengan Push Button Arduino, Push Button Part 1 PUSH BUTTON PART 1. Belajar bagaimana cara membuat tombol atau push button untuk menyalakan lampu LED dengan menggunakan Arduino. Untuk Script silahkan copy paste dibawah ini: int led=2; int button=4; void setup(){   pinMode(led,OUTPUT);   pinMode(button,INPUT); } void loop(){   if(digitalRead(button)==HIGH){     digitalWrite(led,HIGH);     }   else{    digitalWrite(led,LOW);    } }