[[{"fid":"234","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"sensor jarak arduino matlab","field_file_image_title_text[und][0][value]":"sensor jarak arduino matlab"},"type":"media","attributes":{"alt":"sensor jarak arduino matlab","title":"sensor jarak arduino matlab","height":"627","width":"1200","class":"media-element file-default"},"link_text":null}]]
Sensor ultrasonik adalah salah satu sensor yang paling populer digunakan untuk mengukur jarak atau mendeteksi suatu halangan yang berada di depan sensor. Sensor jenis ini ini menjadi salah satu sensor yang paling banyak digunakan pada event-event perlombaan, seperti Kontes Robot Pemadam Api (KRPAI) yang diselenggarakan setiap tahunnya oleh Direktorat Pendidikan Tinggi (Dikti).
Pada Tulisan kali ini, kita akan membuat suatu antarmuka untuk mendeteksi jarak yang dihasilkan oleh sensor ultrasonik menggunakan MATLAB, dan hasilnya akan ditampilkan berupa grafik batang (bar chart).
Prinsip Kerja Sensor Ultrasonik
Sensor ultrasonik akan mengirimkan sinyal suara berfrekuensi tinggi berbentuk pulsa dengan interval tertentu. sinyal ini akan merambat di udara dengan kecepatan suara. Jika sinyal menabrak suatu objek atau halangan, maka sinyal ini akan terpantulkan balik ke sensor. Jarak akan dihitung berdasarkan waktu yang diperlukan untuk mengirim dan menerima sinyal ke sensor. Amatilah Gambar 1.
[[{"fid":"235","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"Prinsip Kerja Sensor Ultrasonik","field_file_image_title_text[und][0][value]":"Prinsip Kerja Sensor Ultrasonik"},"type":"media","attributes":{"alt":"Prinsip Kerja Sensor Ultrasonik","title":"Prinsip Kerja Sensor Ultrasonik","height":"257","width":"400","class":"media-element file-default"},"link_text":null}]]
Gambar 1. Prinsip Kerja Sensor Ultrasonik
Seperti yang telah kita ketahui bersama bahwa kecepatan dihitung berdasarkan jarak yang ditempuh sesuatu dalam satu satuan waktu. Berdasarkan prinsip ini, rumus dasar untuk menghitung jarak antara sensor dan benda/penghalang adalah dengan menggunakan rumus sederhana berikut:
[[{"fid":"236","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"rumus menghitung kecepatan","field_file_image_title_text[und][0][value]":"rumus menghitung kecepatan"},"type":"media","attributes":{"alt":"rumus menghitung kecepatan","title":"rumus menghitung kecepatan","height":"105","width":"192","class":"media-element file-default"},"link_text":null}]]
Dengan s adalah jarak antara sensor dan penghalang, V adalah kecepatan suara, dan t adalah waktu antara sinyal dikirim dan diterima. Rumus tersebut memiliki faktor pembagi 2, sebab waktu yang terdeteksi adalah waktu saat sinyal dikirim dan diterima. Waktu ini adalah dua kali waktu untuk mencapai sensor dan penghalang, sehingga jarak yang terdeteksi dengan waktu ini adalah dua kali jarak sensor dan penghalang. Dengan demikian, kita harus menambahkan faktor pembagi dua.
Jarak dihitung berdasarkan waktu tempuh, BUKAN berdasarkan intesitas yang diterima. Sudah tentu, intensitas yang sinyal pantul akan berkurang jika dibandingkan dengan sinyal awal.
Kecepatan suara di udara mencapai 331.45 m/s pada temperatur 0 derajat Celcius. Kecepatan suara pada temperatur yang berbeda dapat dihitung dengan rumus berikut:
[[{"fid":"237","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"rumus kecepatan suara pada temperatur yang berbeda","field_file_image_title_text[und][0][value]":"rumus kecepatan suara pada temperatur yang berbeda"},"type":"media","attributes":{"alt":"rumus kecepatan suara pada temperatur yang berbeda","title":"rumus kecepatan suara pada temperatur yang berbeda","height":"46","width":"400","class":"media-element file-default"},"link_text":null}]]
Hal ini dikarenakan kecepatan suara akan meningkat 0.607 m/s setiap kenaikan 1 derajat Celcius.
Skema Rangkaian
Aturlah sensor sesuai dengan Tabel berikut:
Nama Konektor Sensor | Nomer Pin pada Arduino |
Vcc | 5V |
Gnd | GND |
Echo | 5 |
Trig | 6 |
[[{"fid":"238","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"rangkaian arduino sensor jarak","field_file_image_title_text[und][0][value]":"rangkaian arduino sensor jarak"},"type":"media","attributes":{"alt":"rangkaian arduino sensor jarak","title":"rangkaian arduino sensor jarak","height":"275","width":"400","class":"media-element file-default"},"link_text":null}]]
Gambar 2. Skematik Rangkaian
Saat ini kita akan menggunakan sensor ultrasonik HC-SR04. Bukalah IDE Arduino, dan ketikkan program berikut:
const int trigPin = 6; const int echoPin = 5; int matlabData; long durasi, cm; void setup() { // inisialisasi komunikasi serial Serial.begin(9600); } void loop() { if (Serial.available() > 0) { // baca data jika ada request matlabData = Serial.read(); // jika request benar, kirim ke MATLAB if (matlabData ==1) { cm = cariJarak(); Serial.println(cm); } } } //===================== Fungsi ============================= long mikrodetikKeCentimeter(long mikrodetik) { // Kecepatan suara sebesar 340 m/s atau 29 mikro detik tiap centimeter // Jangan lupa membagi dua untuk mendapatkan jarak yang benar // (Ingat, ini adalah waktu sinyal bolak-balik) return mikrodetik / 29 / 2; } long cariJarak() { // Sensor ditriger dengan memberikan pulsa HIGH selama 10 us // Selanjutnya beri sinyal LOW untuk mendapatkan sinyal yg tepat pinMode(trigPin, OUTPUT); digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); //Baca sinyal HIGH yang ditangkap sensor pinMode(echoPin, INPUT); durasi = pulseIn(echoPin, HIGH); // Ubah dari waktu ke jarak cm = mikrodetikKeCentimeter(durasi); return cm; }
Pemrograman MATLAB
Untuk MATLAB, ketiklah sintaks berikut. Jangan lupa mengatur COM sesuai dengan nomer yang terdeteksi pada komputer kita:
clear all; clc %Inisialisasi serial dan grafik serialPort = 'COM33'; % isi dgn COM yg sesuai judulGrafik = 'Logger Data Sensor Jarak'; % Judul grafik xLabel = 'Waktu (detik)'; % x-axis label yLabel = 'Jarak (cm)'; % y-axis label barGrid = 'on'; % aktifkan grid min = 0; % minimum axis-y max = 40; % maksimum axis-y lebarScroll = 10; % display data pada grafik delay = 1; % waktu cuplik %Inisialisasi variabel waktu = 0; data = 0; cacah = 0; %Persiapkan grafik barGraph = bar(waktu,data,'g',... 'LineWidth',2,... 'EdgeColor','r'); title(judulGrafik,'FontSize',15); xlabel(xLabel,'FontSize',12); ylabel(yLabel,'FontSize',12); axis([0 10 min max]); grid(barGrid); %aktifkan grid s = serial(serialPort); %Buka komunikasi melalui port COM set(s,'Timeout',1); % set timeout utk komunikasi disp('Tutup jendela grafik untuk mengakhiri logger'); fopen(s); fprintf(s,'%s',char(1)); %kirim 1 untuk mengirim Request tic %aktifkan deteksi waktu while ishandle(barGraph) %Terus looping semasih plot aktif nilaiInput = fscanf(s,'%f'); %Baca data serial dalam format float disp('Data Diterima!') %Pastikan data yg diterima benar if(~isempty(nilaiInput) && isfloat(nilaiInput)) cacah = cacah + 1; waktu(cacah) = toc; %ambil waktu saat ini data(cacah) = nilaiInput(1); %ambil data saat ini %Set Axis sesuai dengan nilai lebarScroll if(lebarScroll > 0) set(barGraph,'XData',waktu(waktu > waktu(cacah)-lebarScroll), ... 'YData',data(waktu > waktu(cacah)-lebarScroll)); axis([waktu(cacah)-lebarScroll waktu(cacah) min max]); else set(barGraph,'XData',waktu,'YData',data); axis([0 waktu(cacah) min max]); end %Beri waktu sesaat utk Update Plot pause(delay); end fprintf(s,'%s',char(1)); %kirim '1' untuk mengirim Request disp('Request Dikirim...') end % Tutup serial port dan delete variabel yg sudah terpakai fclose(s); clear all; disp('Logger berakhir...');
Amatilah Gambar 3. Gambar tersebut menampilkan contoh hasil yang didapat. Semoga tutorial ini bermanfaat :)
[[{"fid":"239","view_mode":"default","fields":{"format":"default","field_file_image_alt_text[und][0][value]":"Hasil Antarmuka Logger Sensor Ultrasonik","field_file_image_title_text[und][0][value]":"Hasil Antarmuka Logger Sensor Ultrasonik"},"type":"media","attributes":{"alt":"Hasil Antarmuka Logger Sensor Ultrasonik","title":"Hasil Antarmuka Logger Sensor Ultrasonik","height":"354","width":"400","class":"media-element file-default"},"link_text":null}]]
Gambar 3. Hasil Antarmuka Logger Sensor Ultrasonik
Referensi Web:
- Anonim (2015) Ultrasonic principle - where high performance sounds good
- http://www.microsonic.de/en/Interesting-facts.htm Diakses 17 Juni 2015
- Anonim (2015) Measurement Principle / Effective Use of Ultrasonic Sensor
- http://www.sensorcentral.com/photoelectric/ultrasonic01.php Diakses 17 Juni 2015
- Anonim (2015) HC-SR04 User Guie
- http://www.mpja.com/download/hc-sr04_ultrasonic_module_user_guidejohn.pdf Diakses 17 Juni 2015
Komentar Terbaru