Ultrasonic modul umunya berbentuk papan elektronik ukuran kecil dengan beberapa rangkaian elektronik dan 2 buah transducer. Dari 2 buah transducer ini, salah satu berfungsi sebagai transmitter dan satu lagi sebagai receiver. Ada juga modul yang hanya mempunyai 1 buah transducer, berfungsi sebagai transmitter dan receiver sekaligus. Tersedia pin VCC, TRIG, ECHO dan GND. Ultrasonic modul ini bekerja dengan cara menghasilkan gelombang suara pada frekuensi tinggi, yang kemudian dipancarkan oleh bagian transmitter. Pantulan gelombang suara yang mengenai benda di depannya akan ditangkap oleh bagian receiver. Dengan mengetahui lamanya waktu antara dipancarkannya gelombang suara sampai ditangkap kembali, kita dapat menghitung jarak benda yang ada di depan modul tersebut. Kita mengetahui kecepatan suara adalah 340m/detik. Lamanya waktu tempuh gelombang suara dikalikan kecepatan suara, kemudian dibagi 2 akan menghasilkan jarak antara ultrasonic modul dengan benda didepannya.
Spesifikasi Sensor HC-SR04
- Catu Daya: 5V DC
- Arus pada moda siaga: < 2mA
- Konsumsi arus saat deteksi: 15 mA
- Lebar sudut deteksi: ±15°
- Jarak deteksi: akurat hingga 1 meter, dapat mendeteksi (namun kurang presisi) hingga jarak 4 meter
- Resolusi : 3 mm (perhitungan dari faktor kecepatan rambat suara dan kecepatan MCU pada 16 MHz)
- Dimensi: 45 x 20 x 15 mm
Cara Akses dengan antarmuka Mikrokontroler AVR (ATmegaXX), antara lain:
1. Hubungkan TRIG pada ATmega dan atur DDR sebagai output.
2. Hubungkan ECHO pada ATmega dan atur DDR sebagai input.
Berikut diagram waktu dari penggunaan sensor ini:
TRIG Bangkitkan pulsa pendek sepanjang 10µS sebagi sinyal pemicu ke pin picu masukan dari modul ini untuk mulai pendeteksian (catat waktu saat ini), HC-SR04 akan memancarkan 8 siklus gelombang ultrasonik pada frekuensi 40 kHz. Saat gelombang suara ini menabrak objek (benda atau dinding di depannya), gelombang akan dipantulkan balik dan diterima oleh detektor yang kemudian membangkitkan sinyal deteksi di pin keluaran modul. Lama selang waktu antara pengiriman signal hingga pendeteksian sinyal pantulan adalah waktu yang ditempuh gelombang suara, yaitu sepanjang dua kali jarak antara sensor dan objek yang terdeteksi karena signal berjalan pulang-pergi. Dengan mengetahui selang waktu ini dan kecepatan rambat suara di udara (340 meter/detik pada udara kering, atau 3,4x108µs), jarak dapat dihitung sesuai rumus jarak = kecepatan x waktu.
Rumus matematika yang disederhanakan untuk menghitung jarak tersebut dalam sentimeter adalah lama selang waktu dalam mikrodetik (sepersejuta detik) dibagi 58,2.
Berikut ini adalah contoh syntax yang ditulis menggunakan codevisionAVR, yaitu:
//------------------------------------------------------------------------
void HCSR04Trigger() { Trigger=1; //high delay_us(10); //wait 10uS Trigger=0; //low }
fungsi pemanggilan proses pembacaan jarak HC SR04
//==============================================
unsigned int GetPulseWidth() { long i,result; //Send a trigger pulse HCSR04Trigger(); //menuggu hingga echo rising egde 25uS for(i=0;i<600000>;i++){ if(Echo!=1) continue; //Line is still low, so wait else break; //High edge detected, so break. } if(i==600000) return US_ERROR; //Indicates time out //High Edge Found //Setup Timer1 TCCR1A=0X00; TCCR1B=0x01; TCNT1=0x00; //Init counter //Now wait for the falling edge for(i=0;i<600000>;i++){ if(Echo==1) { if(TCNT1> 60000) break; else continue; } else break; } if(i==600000) // 60ms return US_NO_OBSTACLE; //Indicates time out //Falling edge found result=TCNT1; //Stop Timer TCCR1B=0x00; if(result>60000) // 60ms dan maksimal 38ms return US_NO_OBSTACLE; //No obstacle else return (result+50); // ditambahkan dengan konstanta = 50 }
Kemudian pada progam utama, pemanggilan subrutien proses pengukuran HC-SR04
void main() { .................................... .................................... while(1) { t=GetPulseWidth(); jarak = (int)t/58; } printf("distance = %d cm\r\n", jarak);// kirim nilai ke serial delay_ms(1000); } }
Well down, Tidak sulitkan kawan... Anda akan dengan mudah mengembangkan coding diatas. Make simply for easy understanding.
Jika ada pertanyaan silahkan tinggalkan dikolom komentar. semoga bermanfaat.
0 komentar:
Posting Komentar