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); }

Sensor Pendeteksi Warna - Sortir Barang Dengan Sensor Warna | TCS230

Video Kali ini kita akan membahas mengenai sensor warna. Menunjukkan bagaimana cara kerjanya, cara menghubungkannya, cara mengkalibrasinya, dan cara mengekstrak nilai RGB dari sensor. TCS230 (juga dikenal sebagai TCS3200) adalah sensor warna yang populer dan murah. Ini menghasilkan gelombang yang frekuensinya mencerminkan intensitas warna. Ini juga memiliki fitur interupsi yang dapat diprogram yang dapat Anda atur untuk memicu sebagai respons terhadap warna tertentu. Sensor ini akan berguna dalam merancang robot yang mengikuti warna, penyortir produk yang di tandai dengan sebuah warna khusus.  Tetapi sebelum Anda menggunakannya, Anda harus mengkalibrasinya. Sensor ini dapat di aplikasikan atau diterapkan pada industri-industri untuk penyortiran atau pemisahan suatu produk pada saat dikemas atau packing, sehingga proses penyortiran dapat lebih cepat dan efisien. Copy dan paste script dibawah ini: FILE 1: KALIBRASI SENSOR #define S0 4 #define S1 5 #define S2 6 #define S3 7 #define se...

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);    } }