8. Proyek Sensor Jarak (Proximity) dengan Arduino

8. PROYEK SENSOR JARAK  (PROXIMITY) DENGAN ARDUINO

Terdapat beberapa jenis sensor jarak (proximity sensor) yang dapat digunakan pada Arduino, dimana setiap sensor memiliki spesifikasi berbeda, terutama perbedaan cara kerja dan jarak jangkauan sensor saat mendeteksi benda penghalangnya.




Description

Beberapa contoh penerapan sensor jarak, antara lain:

  • Pendeteksi barang yang berada pada ban berjalan (conveyor) di mesin produksi.
  • Pendeteksi garis yang dipakai oleh robot line follower.
  • Penghitung jarak atau ketinggian benda dengan cara menghitung selisih waktu antara gelombang kirim dan gelombang pantul.
  • Pendeteksi benda penghalang agar robot tidak menabrak benda tersebut. Pendeteksi gerakan benda dan lain-lain

8.1 Sensor Penghalang Dengan Infrared Obstacle Avoidance

Proyek ini bertujuan untuk menghidupkan LED, sekaligus membunyikan buzzer ketika benda terdeteksi oleh sensor infrared obstacle avoidance pada jarak tertentu. Sebaliknya ketika benda penghalang telah berpindah dan tidak terdeteksi oleh sensor maka LED dan Buzzer akan mati kembali, begitu seterusnya.

Nilai ambang (threshold) jarak deteksi dapat di-justifikasi dengan cara memutar trimmer warna biru ke kiri atau ke kanan seperti tampak pada Gambar 8.1. Sebagai catatan bahwa sensor infrared obstacle avoidance memiliki jangkaun deteksi maksimal 30 cm, sehingga sensor ini tidak cocok untuk mendeteksi benda yang jaraknya lebih dari 30cm.

Cara kerja sensor adalah dengan menembakkan sinar infra merah ke benda penghalang, kemudian sinar tersebut dipantulkan balik dan akan diterima oleh photodiode, sehingga sensor ini memiliki dua LED yang berfungsi sebagai pengirim (LED sinar IR) dan sebagai penerima pantulan sinar IR (LED photodiode).

Description

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
LED 5MM 1 pcs
Resistor % Watt 1 pcs 220 Ohm
Buzzer 5 Volt 1 pcs Description
Modul 602 1 pcs
Modul IR Obstacle Avoidance 1 pcs

Description

Ketika sensor bernilai LOW, berarti ada penghalang di depannya memicu buzzer dan LED untuk hidup, serta memberi pesan teks kef ila lynarg LCD. Sebaliknya ketika sensor bernilai HIGH, berarti tidak ada penghalang di depannya.

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#define pinProximity 2 // Pin Sensor #define pinLED 3 // Pin LED

#define pinBuzzer 4// Pin Buzzer

int isObstacle;

LiquidCrystal_I2C lcd(0x27,16, 2); // LCD 16×2 karakter

void setup() {

Serial.begin(9600);

pinMode(pinLED, OUTPUT); pinMode(pinBuzzer, OUTPUT);

// pin LED arduiono sebagai output

// pin Speaker Arduino sebagai output

pinMode(pinProximity, INPUT); // pin Sensor Arduino sebagai input

// inisialisasi data

digitalwrite(pinLED, LOW);

digitalwrite(pinBuzzer, LOW);

digitalwrite(pinProximity, HIGH);

lcd.init(); // Inisialisasi LCD

lcd.backlight(); // Menghidupkan backlight

{

void loop() {

// Pembacaan data sensor proximity

isobstacle = digitalRead(pinProximity);

if (isobstacle == HIGH) {

// tidak ada halangan

digitalWrite(pinLED, LOW); // LED mati

digitalwrite(pinBuzzer, LOW); // Buzzer diam

// Cetak ke Serial Monitor

Serial.println(“Sensor tidak mendeteksi adanya benda penghalang”);

// Cetak ke LCD I2C

lcd.clear();

lcd. setCursor(0,0);

lcd.print(“Pantau …”);

lcd.setCursor(θ, 1);

lcd.print(“Aman clear”);

}

else if (isobstacle == LOW)

{

// ditemui halangan

digitalwrite(pinLED, HIGH); // LED hidup

digitalwrite(pinBuzzer,HIGH);// Buzzer hidup

// Cetak ke Serial Monitor

Serial,println(“Sensor mendeteksi adanya benda penghalang”);

// Cetak ke LCD I2C

lcd.clear();

lcd.setCursor(θ, θ);

Icd.print(“Pantau …”);

lcd.setCursor(0,1);

lcd.print(“Awas terhalang”);

}

delay(500);

}

Untuk hasil akhir proyek tampak pada Gambar 8.7

Gambar 8.7 Sensor Saat Dikenai Penghalang

8.2 Menghitung Jarak Dengan Sensor Ultrasonik HC-SR04

Sensor ultrasonic berkerja dengan cara memancarkan gelombang ultrasonic pada frekwensi 40.000 Hertz yang merambat di udara. Jika ditemukan adanya obyek penghalang dijalurnya, maka gelombang tersebut akan kembali ke modul sensor ultrasonic.

Jarak sensor dan obyek penghalang dapat dihitung berdasarkan waktu tempuh dan kecepatan suara. Misalnya, jika obyek berjarak 10cm dari sensor kecepatan suara adalah 340m/s atau 0/034cm/Bs, maka gelombang suara akan menempuh sekitar 294 (mikrodetik). Namun apa yang akan diperoleh dart pin Echo adalah dua kali lipat jumlahnya karena gelombang suara melaju ke depan dan memantul ke belakang. Jadi untuk mendapatkan jarak dalam satuan cm kita perlu mengalikan nilai waktu(t) perjaianan yang diterima dari pin echo sebesar 0,034 dan membaginya dengan 2. Perhatikan Gambar 8.8

Proyek berikut ini cukup sederhana yaitu menghitung jarak antara sensor ultrasonic HC-SR04 dengan benda yang akan ditembak oleh gelombang ultrasonic. Setelah melalui proses perhitungan jarak, kemudian hasil jarak yang diperoleh akan ditampilkan pada LCD.

Kebutuhan Bahan

Bahan Jumjah Nilai Keterangan
Modul LCD1602 1 pcs
Modul Ultrasonic HC-SR04 1 pcs

Project membutuhkan library LiquidCrystal_I2C.h untuk modul LCD I2C. Adapun cara instalasi library dapat dilihat pada bab sebelumnya.

Description

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

const int pinTrigger = 9; // pin trigger HC-SR04

const int pinEcho=8; // pin echo HC-SR04

long duration;

int distanceCm, distanceInch;

// Atur alamat LC pada 0x27 untuk tampilan LCD 16 karakter 2 baris

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()

{

lcd.init(); // Inisialisasi LCD

lcd.backlight(); // Menghidupkan backlight

lcd.setCursor(ø,0);

lcd.print(“Menghitung Jarak”);

lcd.setCursor(0,1);

lcd.print(“Dengan Ultrasonic “);

pinMode(pinTrigger, oUTPUT); // set pin trigger sebagai output

pinMode(pinEcho, INPUT); // set pin echo sebagai input

}

void loop()

{

// Membersihkan pin pinTrigger selama 2 microdetik

digitalwrite(pinTrigger, LOW);

delayMicroseconds(2);

// Set pinTrigger menjadi HIGH selama 10 microdetik

digitalwrite(pinTrigger, HIGH);

delayMicroseconds(10);

digitalwrite(pinTrigger, LOW);

// Membaca pinEcho, mengembalikan waktu perjalanan gelombang suara dalam mikrodetik

duration = pulseIn(pinEcho, HIGH);

distanceCm=duration *0.034 / 2; // Jarak dalam CM

distanceInch = duration * 0.0133 / 2; // Jarak dalam INCH

lcd.clear();

lcd.setCursor(0,0);

lcd.print(“Jarak:“);

lcd.print(String(distanceCm));

lcd.print(“ cm”);

lcd.setCursor(0,1);

lcd.print(“Jarak: “);

lcd.print(String(distanceInch));

lcd.print(“ inch”);

delay(1000); //tunda 1 detik agar LCD tidak terlalu flicker

}

Adapun hasil akhirnya tampak seperti pada gambar 8.8.

Description

Untuk pengujian hasil pengukuran, silahkan pindahkan obyek penghafan dengan jarak berbeda-beda, maka akan diperoleh jarak berbeda di layar

8.3 Mendeteksi Panas Obyek Dengan Sensor PIR HC-SR501

Modul PIR (passive infrared) adalah modul sensor untuk mendeteksi panas tubuh manusia/hewan. Inti dari module PIR adalah sensor Pyroelectric Yang akan membangkitkan energi saat terkena panas seperti tampak pada Gambar

8.10.

Ketika tubuh manusia atau hewan berada di kisaran sensor, maka sensor akan mendeteksi adanya gerakan karena tubuh manusia atau hewan memancarkan energi panas dalam bentuk radiasi inframerah. Dari situlah nama sensor itu berasal, sebuah sensor Pasif Infra-Red. Istilah “pasif” berarti bahwa sensor tidak menggunakan energi apa pun untuk mendeteksi tujuan, ia hanya bekerja dengan mendeteksi energi yang dilepaskan oleh objek Iain.

Gambar 8.10 Sensor PIR Pyroelectric. (Sumber: howtomechatronics.com)

Modul PIR umumnya dilengkapi dengan penutup yang dirancang khusus, dikenal sebagai lensa Fresnel, bertujuan untuk memfokuskan sinyal infra merah ke sensor pyroelectric seperti tampak pada Gambar 8.12.

Modul PIR mempunyai tiga Pin, yaitu pin Ground, pin VCC sebagai jalur cat.u daya dan pin output yang akan memberi logika HIGH ketika obyek terdetek51. Modul PIR juga memiliki dua potensiometer yang berguna untuk mengatu.r sensitivitas sensor dan mengatur waktu tunda agar sinyal tetap pada kondi51 HIGH saat objek terdeteksi yang bisa disesuaikan mulai dari detik hingga menit. Perhatikan lebih seksama penjelasan pin pada Gambar 8.13.

Gambar 8.11 PIR Tanpa Penutup Gambar 8.12 PIR Dengan Lensa Fresnel

(Sumber: howtomechatronics.com) (Sumber: howtomechatronics.com)

Skenario proyek adalah ketika sensor PIR HC-SR501 mendeteksi adanya panas tubuh maka akan menyebabkan lampu bertegangan 220volt menyala secara otomatisı begitu pula sebaliknya jika sensor PIR tidak mendeteksi panas maka lampu akan mati. Dişini digunakan relay sebagai saklar elektrik untuk menghidupkan dan mematikan lampu 220volt. Relay akan aktif ketika berlogika HİGH dan sebaliknya akan mati ketika berlogika LOW. Waktu tunda relay aktif dapat diatur dari potensiometer delay time pada sensor PIR.

Catatan: Percobaan ini SANGAT BERBAHAYA!!! karena rangkaian melibatkan tegangan 220volt sebagai sumber tegangan lampu

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
Modul Relay 1 pcs Relay 1 channel, 5 volt
Modul Sensor PIR HC-SR501 1 pcs
Lampu LED 220 Volt 1 pcs
Stop kontak, kabel dan soket lampu 1 pcs

Diagram Sketch

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

int pinPIRSensor = 2;

int pinRelay=3;

int statusPanas = LOW;

int nilaiSensor =0;

// Atur alamat LC pada 0x27 untuk tampilan LCD 16 karakter 2 baris LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {

pinMode(pinPIRSensor, INPUT); // set pin sensor sebagai input

pinMode(pinRelay, OUTPUT); // set pin relay sebagai output

lcd.init(); // Inisialisasi LCD

lcd.backlight(); // Menghidupkan backlight

lcd.setCursor(0, 0);

lcd.print(“Deteksi Obyek”);

lcd.setCursor(ø,1);

lcd.print(“Sensor PIR “);

delay(3000);

}

void loop() {

// Membaca nilai pin sensor

nilaiSensor = digitalRead(pinPIRSensor);

// Sensor mendeteksi panas

if (nilaiSensor == HIGH) {

lcd.clear();

Icd.setCursor(0,0);

lcd.print(“Obyek Terdeteksi”);

lcd.setCursor(0, 1);

Icd.print(“Lampu Hidup”);

digitalwrite(pinRelay,HIGH);// Relay aktif untuk menghidupkan lampu

}

else

{

lcd.clear();

Icd.setCursor(0, 0);

Icd,print(“AUTO OFF”);

Icd.setCursor(ø, 1);

Icd.print(“Lampu Mati”);

// Sensor tidak mendeteksi panas

digitalwrite(pinRelay, LOW); // Relay tidak aktif dan lampu mati

}

delay(1000);

}

Dari hasil pengujian, ternyata sensor PIR mampu mendektesi panas obyek sampai 3-4 meten Karena modul PIR bersifat auto-off (auto LOW) maka sebaiknya sesuaikan waktu tunda di kondisi HIGH sesuai kebutuhan Anda seperti yang telah dijelaskan dibagian awal. Gambar 8.13 adalah ilustrasi hasil projeknya.





Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.