Aplikasi Sensor Ultrasonic HC-SR04
Sebagai
Pengukur Jarak
Aplikasi Sensor Ultrasonic |
Jangan lupa singgah ke blog
saya à http://festyy.com/wNiBaj
dan klik Follow agar tidak
ketinggalan membaca tulisan materi-materi lainnya tentang Otomatisasi PLC
maupun mikrokontroler dan juga Subscribe serta
Like
channel youtube saya di (fungky king) https://www.youtube.com/channel/UCWbN7TqlN68FxeFY7uCNhkA
untuk melihat hasil dari percobaan-percobaan dengan mikrokontroler yang telah
dibuat.
Sensor
Ultrasonik HC-SR04 banyak digunakan sebagai pengukur jarak aman baik untuk mobil RC ataupun aplikasi lainnya diindustri terhadap penghalang baik disisi depan maupun belakang.
Sensor Ultrasonik HC-SR04 terdapat pin khusus yang berfungsi sebagai pengirim
dan penerima sinyal ultrasonik yaitu pin Trig (Trigger/Penyulut)
dan pin Echo (Receive/Indikator).
Pin
Trig (Trigger/Penyulut) bekerja dengan membangkitkan sinyal ultrasonik dan pin Echo (Receive/Indikator) digunakan untuk mendeteksi sinyal pantulan
ultrasonik dari pin Trig. Berdasarkan timing diagram pada Gambar 01 yang
terdapat pada datasheet dibawah ini:
Gambar 01. Timing
Diagram Sensor Ultrasonik (www.google.com)
- Pembahasan
B.1. Sensor Ultrasonic HC-SR04
Sensor
Ultrasonik HC-SR04 memerlukan sinyal logika ‘1’
pada pin Trig dengan
durasi waktu 10 mikrodetik (us) untuk mengaktifkan rentetan (burst) 8x40KHz gelombang ultrasonik pada elemen pembangkitnya.
Selanjutnya pin Echo akan
berlogika ‘1’ setelah rentetan 8×40 KHz tadi dan otomatis akan berlogika ‘0’
saat gelombang pantulan diterima oleh elemen pendeteksi gelombang
ultrasonik.
Berdasarkan
karakteristik diatas, dilakukan pengujian proses pembacaan data jarak dengan membuat
program yang nantinya akan diamati tampilan datanya pada perangkat serial
monitor yang tersedia pada software IDE
Arduino. Berikut program yang akan memproses data jarak yang terbaca, dimana
data yang terbaca tersebut akan langsung dapat diamati pada serial monitor.
// GF --- Smart Robot Car --- #include <SoftwareSerial.h> //Sensor Jarak Depan #define PIN_TRIG1 12 #define PIN_ECO1 13 long durasi1, jarak1; //Sensor Jarak Belakang #define PIN_TRIG2 25 #define PIN_ECO2 27 long durasi2, jarak2; void setup() {Serial.begin(9600); } void loop() { //Sensor Depan
digitalWrite(PIN_TRIG1, LOW); delay(2);
digitalWrite(PIN_TRIG1, HIGH); delay(5);
digitalWrite(PIN_TRIG1, LOW); durasi1 =
pulseIn(PIN_ECO1, HIGH); jarak1 =
(durasi1/2) / 29;
Serial.print("Depan :
");
Serial.println(jarak1); //End Sensor
Depan //Sensor
Belakang
digitalWrite(PIN_TRIG2, LOW); delay(2);
digitalWrite(PIN_TRIG2, HIGH); delay(5);
digitalWrite(PIN_TRIG2, LOW); durasi2 =
pulseIn(PIN_ECO2, HIGH); jarak2 =
(durasi2/2) / 29; Serial.print("Belakang:
");
Serial.println(jarak2);
Serial.println(); //End Sensor
Belakang delay(100); } |
Pada tahap awal pembuatan program
sebagai berikut ini:
digitalWrite(PIN_TRIG1,
LOW); delay(2); digitalWrite(PIN_TRIG1,
HIGH); delay(5); digitalWrite(PIN_TRIG1,
LOW); |
Pin TRIG1 diberi nilai LOW untuk memastikan bahwa ‘trigger’ tidak on atau menyala disaat sistem baru dinyalakan. Kemudian berikan delay selama 2 detik untuk kemudian pin TRIG1 bernilai HIGH agar dapat membangkitkan sinyal ultrasonik selama jeda waktu 5 detik, sebelum kemudian pin TRIG1 kembali bernilai LOW. Di saat yang bersamaan dimana pin TRIG1 kembali bernilai LOW, program durasi1 = pulseIn(PIN_ECO1, HIGH); diberikan fungsi pulseIn pada PIN_ECO1.
Fungsi pulseIn akan menunggu rentang waktu PIN_ECO1 dari LOW atau tidak aktif menjadi HIGH atau mendeteksi
sinyal ultrasonic yang kembali, waktu tunggu tersebut akan terstore atau
tersimpan ke dalam memory sehingga
arduino dapat mengetahui waktu yang dibutuhkan untuk perjalanan suara dari
trigger dan kembali ke echo karena pantulan benda.
Untuk mengetahui jarak dari
hasil pantulan sinyal ultrasonic, maka menggunakan rumus durasi
gelombang dibagi dengan waktu yang dibutuhkan sinyal untuk kembali. Karena duration adalah waktu bolak-balik (sensor-benda-sensor), maka perlu
dibagi 2 untuk mendapatkan jarak dari sensor ke benda. Sehingga
dalam penulisan program seperti berikut:
jarak1 = (durasi1/2) / 29; |
Nilai
konstanta 29 pada program diatas merupakan waktu yang dibutuhkan sinyal ultrasonic untuk
kembali dibaca oleh sisi
penerima sensor. Nilai 29 didapat berdasarkan hasil pengujian dengan objek yang
diukur seperti Gambar 02, dalam pengujian ini menggunakan penggaris sepanjang
30cm sebagai acuan ukur. Namun untuk menghitung jarak dengan sensor ultrasonic dapat
juga diganti menggunakan persamaan terhadap kecepatan rambatan udara sinyal
ultrasonic seperti berikut:
distance = (duration/2) *
0.03483; |
Dimana
rumusnya sebagai berikut:
Keterangan:
Cair = Rambatan Udara
331.3 = Nilai Konstanta (tetap)
0.606 = Nilai Konstanta (tetap)
(teta)= Suhu Udara
Dalam persamaan rumus diatas, teta adalah suhu udara sehingga dalam implementasinya
sebagai berikut:
c = 331.3 + 0.606 *
[suhu udara]
Jika Suhu 28 der
celcius.
c = 331.5 + 0.606 *
28
c = 348.3
meter/second
Dikarenakan
jarak mempunyai satuan mili/s. maka dirubah nilai 348.3 m/s ke micr/s. Hasilnya
348.3 * / 1000 = 0.03483 micro/s. Penetapan suhu sangat penting untuk menjaga presisi jarak
dari sensor ke suatu objek, jika suhu yang dimasukan salah nilainya pun akan
bergeser dari yang semestinya.
Program pengujian
sensor ultrasonik diatas akan membaca jarak sensor terhadap benda didepannya dimana
dapat diamati pada serial monitor IDE Arduino seperti Gambar 03 dimana adapun
proses uji coba sensor terhadap objek seperti Gambar 02.
Gambar 02. Pengujian
Sensor Ultrasonik Terhadap Benda
Gambar 03. Tampilan
Data Jarak Pada Serial Monitor
Tabel 01. Hasil Pengujian Jarak Sensor Ultrasonik
No |
Jarak
Uji (cm) |
Data
Sensor |
Error(%) |
||
Depan |
Belakang |
Depan |
Belakang |
||
1 |
10 |
10 |
9 |
0 |
0.1 |
2 |
20 |
19 |
19 |
0 |
0 |
3 |
30 |
30 |
32 |
0 |
0.06 |
4 |
40 |
40 |
40 |
0 |
0 |
5 |
50 |
51 |
51 |
0 |
0 |
6 |
60 |
60 |
61 |
0 |
0.02 |
7 |
70 |
70 |
70 |
0 |
0 |
8 |
80 |
81 |
81 |
0.01 |
0.01 |
9 |
90 |
90 |
90 |
0 |
0 |
10 |
100 |
100 |
100 |
0 |
0 |
Error
Rata-rata (%) |
0.001 |
0.019 |
Berdasarkan hasil
pengamatan pada Tabel 01 menunjukkan bahwa sensor ultrasonik bekerja pada jarak
efektif 10cm sampai dengan 100cm. Dari hasil tersebut dapat diketahui bahwa
sensor dapat bekerja sesuai perhitungan rumus program jarak1
= (durasi1/2) / 29;
pada arduino. Terdapat beberapa ketidak
sesuaian pembacaan nilai jarak terukur sebenarnya dengan jarak yang diuji
berdasarkan program, namun masih dalam batas toleransi. Penyimpangan dapat
terjadi dengan banyak faktor, baik dari segi objek pantulan yang tidak rata,
dan gangguan lainnya.
Presentase kesalahan didapatkan dengan perhitungan menggunakan
persamaan sebagai berikut :
Hasil
kalibrasi pembacaan sensor diatas masih terdapat penyimpangan pembacaan dari
sensor ultrasonic, hal ini dapat disebabkan dari sensitifitas atau resolusi
pembacaan dari sensor ataupun dari alat ukur yang digunakan.
- Penutup
Demikian penjabaran singkat tentang “Aplikasi Sensor Ultrasonic HC-SR04 Sebagai Pengukur Jarak”. Untuk
selanjutnya, buat yang ingin mempelajari Arduino dan lebih mengenal Arduino
ataupun sistem Automation lainnya seperti PLC silakan follow akun sosial media saya di facebook “fungkyking” juga diblog saya di http://festyy.com/wNiBaj dan jangan
lupa subscribe serta Like
channel youtube saya juga di (fungky king) https://www.youtube.com/channel/UCWbN7TqlN68FxeFY7uCNhkA untuk
melihat tulisan-tulisan serta hasil rancangan alat-alat berbasis mikrokontroler
yang kami buat. Kami juga menerima pembuatan alat-alat elektronika baik untuk
penelitian ataupun alat untuk syarat kelulusan.
Demikian pembahasan singkat yang dapat
dibahas, mohon maaf jika terdapat kesalahan dalam penulisan yang mana semua ini
semata-mata hanya opini pribadi berdasarkan pengalaman. Jika ada kekurangan dan
tambahan dari materi pembahasan yang dibahas silahkan dapat teman-teman
sertakan pada kolom komentar tambahan materi yang ingin disampaikan. Sampaikan
pertanyaan dan isi kolom komentar dengan bijak.
Terima Kasih,
Salam Otomatisasi!
Afriansyah, S.T.
(Fungky King)
http://fungkynotes.blogspot.co.id
fungkyking01@gmail.com
Kata Kunci / Keywords: ATMEGA, Arduino,
Arduino IDE, Arduino UNO, Bahasa C, fungkynotes.blogspot.co.id, fungky
corporation, fungky king, microcontroller, otomatis, pemprograman, programming,
plc, NodeMCU, ESP8266, Internet of Things (IoT), Wi-Fi, PWM, ADC, LED, Blink,
I2C (Inter-Integrated Circuit),
Two-wire (TWI), Program LCD 16X2 I2C (Inter-Integrated
Circuit), Sensor Suhu LM35, LCD (Liquid
Crystal Display),
Motor Servo, Potensiometer, Sensor LDR, Ultrasonic HC-SR04
Referensi / Reference:
- www.arduino.ac.id
- www.fungkynotes.blogspot.com
- http://gestyy.com/w5Z3jE
- http://festyy.com/wNiBaj
- http://destyy.com/wMatJW
- http://arduino.cc/en/Main/Software
- www.google.com
- 8-bit
Atmel Microcontroller
with 128Kbytes In-System Programmable Flash: ATMEGA128
- Atmel, AVR318: Dallas 1-Wire Master on tinyAVR and megaAVR
- Afriansyah. 2012. Pengukur Kadar pH Air Berbasis Mikrokontroler ATMega 8, TE-UGM, Yogyakarta.
- https://fungkynotes.blogspot.com/2019/02/instruksi-instruksi-dasar-pada.html
- https://fungkynotes.blogspot.com/2019/02/apa-itu-sketch-arduino.html
- http://arduino.cc/en/Guide/Windows
No comments:
Post a Comment
Berfikirlah kreatif dengan komentar yang bijak. Salam Otomatisasi.!