APLIKASI SENSOR ULTRASONIK
( ROBOT ANTI PENGHALANG )
( ROBOT ANTI PENGHALANG )
1. Pendahuluan [kembali]
Robot dilengkapi dengan alat penginderaan. Indera robot ini terletak pada sensor, misalnya Sensor Cahaya/LDR yang mendeteksi cahaya, Sensor UV untuk mendeteksi keberadaan api (biasa dipakai pada robot pemadam api), atau Sensor Ultrasonik yang digunakan sebagai sensor untuk mendeteksi jarak dari sensor ke objek didepannya.
Sensor Ultrasonik merupakan sensor yang bekerja dengan cara memancarkan suatu gelombang dan kemudian menghitung waktu pantulan gelombang tersebut.
Gelombang Ultrasonik bekerja pada frekuensi mulai dari 20 kHz hingga sekitar 20 MHz. Frekuensi kerja yang digunakan dalam gelombang ultrasonik bervariasi tergantung pada medium yang dilalui, mulai dari kerapatan rendah pada fasa gas, cair hingga padat. Secara matematis gelombang ultrasonik dapat dirumuskan sebagai : s = v.t/2
dimana s adalah jarak dalam satuan meter,
v adalah kecepatan suara yaitu 344 m/detik dan t adalah waktu tempuh dalam satuan detik.
v adalah kecepatan suara yaitu 344 m/detik dan t adalah waktu tempuh dalam satuan detik.
Ketika gelombang ultrasonik menumbuk suatu penghalang maka sebagian gelombang tersebut akan dipantulkan dan sebagian yang lain akan diteruskan.Gelombang yang diserap akan dihitung oleh komparator dan diteruskan menjadi bilangan binary.
Secara umum, Sensor Ultrasonik digunakan untuk menghitung jarak dari suatu objek yang berada didepan sensor tersebut. Sehingga dengan fungsinya tersebut, Sensor Ultrasonik biasa digunakan pada perangkat yang membutuhkan perhitungan jarak.
Arduini Uno
Arduino UNO adalah sebuah board mikrokontroler yang didasarkan pada
ATmega328. Arduino UNO mempunyai 14 pin digital input/output (6 di
antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah
osilator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah
ICSP header, dan sebuat tombol reset. Arduino UNO memuat semua yang
dibutuhkan untuk menunjang mikrokontroler, mudah menghubungkannya ke
sebuah computer dengan sebuah kabel USB atau mensuplainya dengan sebuah
adaptor AC ke DC atau menggunakan baterai untuk memulainya.
Arduino Uno berbeda dari semua board Arduino sebelumnya, Arduino UNO tidak menggunakan chip driver FTDI USB-to-serial. Sebaliknya, fitur-fitur Atmega16U2 (Atmega8U2 sampai ke versi R2) diprogram sebagai sebuah pengubah USB ke serial. Revisi 2 dari board Arduino Uno mempunyai sebuah resistor yang menarik garis 8U2 HWB ke ground, yang membuatnya lebih mudah untuk diletakkan ke dalam DFU mode.
Revisi 3 dari board Arduino UNO memiliki fitur-fitur baru sebagai berikut :
1.) Pertama adalah pinout: ada penambahan pin SDA dan SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, IOREF yang memungkinkan shield untuk beradaptasi dengan tegangan yang disediakan dari papan / board. Di masa depan, shield akan kompatibel dengan kedua papan yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino yang beroperasi 3.3V. Kedua adalah pin tidak terhubung, yang dicadangkan untuk tujuan masa depan.
2.) Reset sirkuit yang sangat kuat.
3.) Atmega16U2 menggantikan Atmega8U2
"Uno" dalam bahasa Italia berarti satu, alasan diberi nama tersebut adalah untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduino, dan akan terus berkembang.
Sensor HC-SR04
Sensor HC-SR04 adalah sensor pengukur jarak berbasis gelobang
ultrasonik. Prinsip kerja sensor ini mirip dengan radar ultrasonik di
pancarkan kemudian diterima balik oleh receiver ultrasonik. Jarak antara
waktu pancar dan waktu terima adalah representasi dari jarak objek.
Spesifikasi Sensor HC-SR04 :
1.) Jangkauan deteksi kisaran 2 - 400 cm
2.) Sudut deteksi terbaik adalah 15 derajat
3.) Tegangan kerja 5V DC
4.) Resolusi 1 cm
5.) Frekuensi Ultrasonik 40 kHz
6.) Dapat dihubungkan langsing ke kaki mikrokontroller
Sensor HC-SR04 menggunakan 4 pin, yaitu :
Secara umum, Sensor Ultrasonik digunakan untuk menghitung jarak dari suatu objek yang berada didepan sensor tersebut. Sehingga dengan fungsinya tersebut, Sensor Ultrasonik biasa digunakan pada perangkat yang membutuhkan perhitungan jarak.
2. Teori Komponen [kembali]
Arduini Uno

Arduino Uno berbeda dari semua board Arduino sebelumnya, Arduino UNO tidak menggunakan chip driver FTDI USB-to-serial. Sebaliknya, fitur-fitur Atmega16U2 (Atmega8U2 sampai ke versi R2) diprogram sebagai sebuah pengubah USB ke serial. Revisi 2 dari board Arduino Uno mempunyai sebuah resistor yang menarik garis 8U2 HWB ke ground, yang membuatnya lebih mudah untuk diletakkan ke dalam DFU mode.
Revisi 3 dari board Arduino UNO memiliki fitur-fitur baru sebagai berikut :
1.) Pertama adalah pinout: ada penambahan pin SDA dan SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin RESET, IOREF yang memungkinkan shield untuk beradaptasi dengan tegangan yang disediakan dari papan / board. Di masa depan, shield akan kompatibel dengan kedua papan yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino yang beroperasi 3.3V. Kedua adalah pin tidak terhubung, yang dicadangkan untuk tujuan masa depan.
2.) Reset sirkuit yang sangat kuat.
3.) Atmega16U2 menggantikan Atmega8U2
"Uno" dalam bahasa Italia berarti satu, alasan diberi nama tersebut adalah untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduino, dan akan terus berkembang.
Sensor HC-SR04

Spesifikasi Sensor HC-SR04 :
1.) Jangkauan deteksi kisaran 2 - 400 cm
2.) Sudut deteksi terbaik adalah 15 derajat
3.) Tegangan kerja 5V DC
4.) Resolusi 1 cm
5.) Frekuensi Ultrasonik 40 kHz
6.) Dapat dihubungkan langsing ke kaki mikrokontroller
Sensor HC-SR04 menggunakan 4 pin, yaitu :
1.) VCC : sebagai masukan aliran listrik
2.) Trigger : untuk trigger keluarnya sinyal dari sensor
3.) Echo : untuk menangkap sinyal pantul dari benda
4.) Ground : sebagai keluaran aliran listrik
LED
LED (Light Emitting Diode) LED adalah komponen elektronika yang dapat
memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED
merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Cara
kerjanya pun hampir sama dengan Dioda yang memiliki dua kutub yaitu
kutub Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan
cahaya apabila dialiri tegangan maju (bias forward) dari Anoda menuju ke
Katoda.
LCD
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang
menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan
diberbagai bidang misalnya alal-alat elektronik seperti televisi,
kalkulator, atau pun layar komputer. Pada postingan aplikasi LCD yang
dugunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat
berfungsi sebagai penampil yang nantinya akan digunakan untuk
menampilkan status kerja alat.
Berikut ini karakteristik dari LCD 16x2 :
1. Terdiri dari 16 karakter dan 2 baris.
2. Mempunyai 192 karakter tersimpan.
3. Terdapat karakter generator terprogram.
4. Dapat diamati dengan mode 4-bit dan 8-bit.
5. Dilengkapi dengan back light.
File Program - Download
File Proteus - Download
Library Sensor Ultrasonik - Download
Video Rangaian - Download
LED

LCD

Berikut ini karakteristik dari LCD 16x2 :
1. Terdiri dari 16 karakter dan 2 baris.
2. Mempunyai 192 karakter tersimpan.
3. Terdapat karakter generator terprogram.
4. Dapat diamati dengan mode 4-bit dan 8-bit.
5. Dilengkapi dengan back light.
3. Rangkaian Simulasi [kembali]
Prinsip Kerja :
Rangkaian ini menggunakan Arduino Uno sebagai otak dari rangkaian dengan Sensor HC-SR04 sebagai input, dan LCD + LED sebagai output, dimana Sensor HC-SR04 terhubung ke PORT A, LCD terhubung ke pin 13-8, dan LED terhubung ke pin 7-3. Pertama untuk menjalankan simulasi, klik tombol PLAY. Kemudian, untuk memulai operasi maka ditekan tombol RESET. Setelah itu, apabila jarak objek lebih dari 1 m, maka pada LCD akan tampil kalimat "Jarak objek = lebih dari 1 m", dan LED bergeser dari kiri ke kanan. Lalu apabila jarak objek kurang dari 1 m, maka pada LCD akan tampil kalimat "Jarak objek = kurang dari 1 m", dan semua LED akan berkedip-kedip.
Rangkaian ini menggunakan Arduino Uno sebagai otak dari rangkaian dengan Sensor HC-SR04 sebagai input, dan LCD + LED sebagai output, dimana Sensor HC-SR04 terhubung ke PORT A, LCD terhubung ke pin 13-8, dan LED terhubung ke pin 7-3. Pertama untuk menjalankan simulasi, klik tombol PLAY. Kemudian, untuk memulai operasi maka ditekan tombol RESET. Setelah itu, apabila jarak objek lebih dari 1 m, maka pada LCD akan tampil kalimat "Jarak objek = lebih dari 1 m", dan LED bergeser dari kiri ke kanan. Lalu apabila jarak objek kurang dari 1 m, maka pada LCD akan tampil kalimat "Jarak objek = kurang dari 1 m", dan semua LED akan berkedip-kedip.
4. Flowchart [kembali]
5. Listing Program [kembali]
#include <LiquidCrystal.h> //mengaktifkan library LCD
LiquidCrystal lcd(13,12,11,10,9,8); //menyatakan port yang digunakan untuk mengaktifkan LCD
int led[] = {7,6,5,4,3}; //menyatakan penggunaan pin 3-7 pada Arduino dengan variabel LED dalam bentuk array
const int pingPin = A1; //menyatakan variabel Trigger untuk pin A1 pada Arduino
const int echoPin = A0; //menyatakan variabel Echo untuk pin A0 pada Arduino
void setup() //semua kode yang disini akan dibaca sekali
{
lcd.begin(16, 2); //menyatakan posisi kalimat pada LCD
lcd.print ("Jarak objek ="); //menampilkan kalimat "Jarak objek =" pada LCD
for (int i=0;i<=5;i++) //melakukan perulangan yang dimulai dari 0 dengan nilai batas kecil dari 5, INCREASE
{
pinMode (led[i], OUTPUT); //menyatakan pin-pin Arduino yang digunakan sebagai OUTPUT
pinMode (7, OUTPUT); //menyatakan pin 7 pada Arduino digunakan sebagai OUTPUT
pinMode (6, OUTPUT); //menyatakan pin 6 pada Arduino digunakan sebagai OUTPUT
pinMode (5, OUTPUT); //menyatakan pin 5 pada Arduino digunakan sebagai OUTPUT
pinMode (4, OUTPUT); //menyatakan pin 4 pada Arduino digunakan sebagai OUTPUT
pinMode (3, OUTPUT); //menyatakan pin 3 pada Arduino digunakan sebagai OUTPUT
}
}
void loop() //semua kode yang ada disini akan dibaca berulang kali (terus menerus)
{
long duration, cm;
pinMode(pingPin, OUTPUT); //menyatakan pin Arduino yang digunakan sebagai OUTPUT
digitalWrite(pingPin, LOW); //memberikan 0V (Mati) kepada pin Trigger
delayMicroseconds(2); //memberikan delay sebesar 2ms
digitalWrite(pingPin, HIGH); //memberikan 5V (Nyala) kepada pin Trigger
delayMicroseconds(10); //memberikan delay sebesar 10ms
digitalWrite(pingPin, LOW); //memberikan 0V (Mati) kepada pin Trigger
pinMode(echoPin, INPUT); //menyatakan pin Arduino yang digunakan sebagai INPUT
duration = pulseIn(echoPin, HIGH);
cm = microsecondsToCentimeters(duration);
if (cm >=100) //kondisi if, dimana nilai cm besar sama dengan 100
{
for(int e=5;e>=0;e--) //melakukan perulangan yang dimulai dari 5 dengan nilai batas besar dari 0, DECREASE
{
digitalWrite(led[e],HIGH); //memberikan 5V (Nyala) kepada pin-pin LED
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
digitalWrite(led[e],LOW); //memberikan 0V (Mati) kepada pin-pin LED
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
}
lcd.setCursor (0, 1); //menyatakan posisi kursor pada LCD
lcd.print ("lebih dari 1 m"); //menampilkan kalimat "lebih dari 1 m" pada LCD
}
if (cm <=100) //kondisi if, dimana nilai cm kecil sama dengan 100
{
digitalWrite(7,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 7 dari Arduino
digitalWrite(6,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 6 dari Arduino
digitalWrite(5,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 5 dari Arduino
digitalWrite(4,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 4 dari Arduino
digitalWrite(3,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 3 dari Arduino
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
digitalWrite(7,LOW); //memberikan 0V (Mati) kepada LED pada pin 7 dari Arduino
digitalWrite(6,LOW); //memberikan 0V (Mati) kepada LED pada pin 6 dari Arduino
digitalWrite(5,LOW); //memberikan 0V (Mati) kepada LED pada pin 5 dari Arduino
digitalWrite(4,LOW); //memberikan 0V (Mati) kepada LED pada pin 4 dari Arduino
digitalWrite(3,LOW); //memberikan 0V (Mati) kepada LED pada pin 3 dari Arduino
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
lcd.setCursor (0, 1); //menyatakan posisi kursor pada LCD
lcd.print ("kurang dari 1 m"); //menampilkan kalimat "kurang dari 1 m" pada LCD
}
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
} //akhir program
LiquidCrystal lcd(13,12,11,10,9,8); //menyatakan port yang digunakan untuk mengaktifkan LCD
int led[] = {7,6,5,4,3}; //menyatakan penggunaan pin 3-7 pada Arduino dengan variabel LED dalam bentuk array
const int pingPin = A1; //menyatakan variabel Trigger untuk pin A1 pada Arduino
const int echoPin = A0; //menyatakan variabel Echo untuk pin A0 pada Arduino
void setup() //semua kode yang disini akan dibaca sekali
{
lcd.begin(16, 2); //menyatakan posisi kalimat pada LCD
lcd.print ("Jarak objek ="); //menampilkan kalimat "Jarak objek =" pada LCD
for (int i=0;i<=5;i++) //melakukan perulangan yang dimulai dari 0 dengan nilai batas kecil dari 5, INCREASE
{
pinMode (led[i], OUTPUT); //menyatakan pin-pin Arduino yang digunakan sebagai OUTPUT
pinMode (7, OUTPUT); //menyatakan pin 7 pada Arduino digunakan sebagai OUTPUT
pinMode (6, OUTPUT); //menyatakan pin 6 pada Arduino digunakan sebagai OUTPUT
pinMode (5, OUTPUT); //menyatakan pin 5 pada Arduino digunakan sebagai OUTPUT
pinMode (4, OUTPUT); //menyatakan pin 4 pada Arduino digunakan sebagai OUTPUT
pinMode (3, OUTPUT); //menyatakan pin 3 pada Arduino digunakan sebagai OUTPUT
}
}
void loop() //semua kode yang ada disini akan dibaca berulang kali (terus menerus)
{
long duration, cm;
pinMode(pingPin, OUTPUT); //menyatakan pin Arduino yang digunakan sebagai OUTPUT
digitalWrite(pingPin, LOW); //memberikan 0V (Mati) kepada pin Trigger
delayMicroseconds(2); //memberikan delay sebesar 2ms
digitalWrite(pingPin, HIGH); //memberikan 5V (Nyala) kepada pin Trigger
delayMicroseconds(10); //memberikan delay sebesar 10ms
digitalWrite(pingPin, LOW); //memberikan 0V (Mati) kepada pin Trigger
pinMode(echoPin, INPUT); //menyatakan pin Arduino yang digunakan sebagai INPUT
duration = pulseIn(echoPin, HIGH);
cm = microsecondsToCentimeters(duration);
if (cm >=100) //kondisi if, dimana nilai cm besar sama dengan 100
{
for(int e=5;e>=0;e--) //melakukan perulangan yang dimulai dari 5 dengan nilai batas besar dari 0, DECREASE
{
digitalWrite(led[e],HIGH); //memberikan 5V (Nyala) kepada pin-pin LED
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
digitalWrite(led[e],LOW); //memberikan 0V (Mati) kepada pin-pin LED
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
}
lcd.setCursor (0, 1); //menyatakan posisi kursor pada LCD
lcd.print ("lebih dari 1 m"); //menampilkan kalimat "lebih dari 1 m" pada LCD
}
if (cm <=100) //kondisi if, dimana nilai cm kecil sama dengan 100
{
digitalWrite(7,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 7 dari Arduino
digitalWrite(6,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 6 dari Arduino
digitalWrite(5,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 5 dari Arduino
digitalWrite(4,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 4 dari Arduino
digitalWrite(3,HIGH); //memberikan 5V (Nyala) kepada LED pada pin 3 dari Arduino
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
digitalWrite(7,LOW); //memberikan 0V (Mati) kepada LED pada pin 7 dari Arduino
digitalWrite(6,LOW); //memberikan 0V (Mati) kepada LED pada pin 6 dari Arduino
digitalWrite(5,LOW); //memberikan 0V (Mati) kepada LED pada pin 5 dari Arduino
digitalWrite(4,LOW); //memberikan 0V (Mati) kepada LED pada pin 4 dari Arduino
digitalWrite(3,LOW); //memberikan 0V (Mati) kepada LED pada pin 3 dari Arduino
delay(50); //memberi waktu delay selama 50 ms (0,05 s)
lcd.setCursor (0, 1); //menyatakan posisi kursor pada LCD
lcd.print ("kurang dari 1 m"); //menampilkan kalimat "kurang dari 1 m" pada LCD
}
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
} //akhir program
6. Video [kembali]
7. Kondisi [kembali]
Apabila jarak objek lebih dari 1 m, maka pada LCD akan tampil kalimat "Jarak objek = lebih dari 1 m", dan LED bergeser dari kiri ke kanan. Kemudian, apabila jarak objek kurang dari 1 m, maka pada LCD akan tampil kalimat "Jarak objek = kurang dari 1 m", dan semua LED akan berkedip-kedip.
8. Link Download [kembali]
File HTML - DownloadFile Program - Download
File Proteus - Download
Library Sensor Ultrasonik - Download
Video Rangaian - Download








