
Sensor ultrasonik merupakan sensor yang berfungsi untuk mengubah besaran fisis berupa gelombang suara ultrasonik menjadi besaran listrik yang kemudian dapat dikonversi menjadi satuan jarak.
Gelombang ultrasonik memiliki frekuensi lebih dari 20KHz, dengan tingkat frekuensi tersebut manusia tidak dapat mendengar gelombang suara ultrasonik secara langsung. Oleh karena itu, walaupun menggunakan gelombang suara, sensor ultrasonik tidak menyebabkan suara kebisingan yang didengar manusia.
Prinsip kerja sensor ultrasonik ini mengikuti sistem ekolokasi pada kelelawar, dimana terdapat pemancar yang mengeluarakan gelombang ultrasonik. Ketika gelombang tersebut mengenai suatu objek, maka gelombang akan dipantulkan kembali dan dibaca oleh komponen penerima sensor ultrasonik. Waktu antara proses pengiriman dan penerimaan gelombang tersebutlah yang digunakan untuk menentukan jarak dengan objek.

Seperti yang disebutkan sebelumnya, sensor ultrasonik memiliki komponen pemancar (transmitter) melalui pin trigger dan komponen penerima (receiver) melalui pin echo.

Sensor ultrasonik memanfaatkan pin trigger dengan kondisi HIGH yang dinyalakan dengan durasi 10 µs untuk mengeluarkan gelombang ultrasonik. Sensor memancarkan gelombang ultrasonik tersebut dengan pola 8-pulse pada frekuensi 40 KHz. Pola itulah yang membedakan gelombang ulltrasonik dari sensor dengan noise gelombang ultrasonik di sekitarnya.
Pada saat gelombang telah dipancarkan, pin echo diatur dengan kondisi HIGH untuk mulai membentuk sinyal awal echo-back. Apabila selama 38 ms pin echo belum membaca adanya gelombang yang kembali ke sensor, maka pin echo kembali ke kondisi LOW dan memberikan informasi jarak maksimal (out of range) karena tidak ada objek yang terdeteksi.

Sedangkan, ketika pin echo mendeteksi adanya gelombang ultrasonik yang kembali ke sensor, maka saat itu pin echo memberikan kondisi LOW dan mencatat durasi perubahan dari kondisi HIGH ke kondisi LOW. Lebar pulsa yang diterima pin echo bervariasi menurut waktu yang dibutuhkan, biasanya berkisar antara 150 µs – 25 ms. Nilai jarak sensor dengan objek yang terdeteksi dapat diperoleh dari konversi nilai durasi yang diperoleh pin echo.

Nilai jarak yang dideteksi sensor ultrasonik diperoleh dari durasi perubahan kondisi pin echo dari kondisi HIGH (awal gelombang dipancarkan) ke kondisi LOW (sensor menerima gelombang) atau lebar pulsa yang diterima pin echo.

Durasi atau waktu terebut kemudian dikonversi dengan hubungan persamaan jarak, waktu, dan kecepatan. Sensor ultrasonik menggunakan kecepatan rambat gelombang di udara yaitu 340 m/s atau 0,034 cm/µs.
Contoh :
Diperoleh durasi atau lebar pulsa yang diterima pin echo adalah 500 µs. Berapakah jarak yang terdeteksi?
Jawab:
Jarak = Kecepatan x Waktu
= 0,034 cm/µs x 500 µs = 17 cm
Karena waktu yang diperoleh merupakan waktu yang dibutuhkan sinyal untuk dikirim dan dipantulkan kembali, maka untuk memperoleh jarak sensor dengan objek, harus dibagi 2 yaitu: Jarak sensor dengan objek = jarak/2 = 17 cm / 2 = 8,5 cm
Sebagai komponen input yang membaca kondisi lingkungan, terdapat beberapa batasan dalam penggunaan sensor jarak ultrasonik, antara lain:

.
Percobaan 56: Akses Sensor Jarak Ultrasonic

.

- Hubungkan TRIG dengan pin D9 ATMEGA 2560
- Hubungkan ECHO dengan pin D8 ATMEGA 2560
- Hubungkan board ATMEGA 2560 dengan Komputer menggunakan kabel USB.
- Bukalah IDE Arduino, kemudian ketikkan kode program/sketchatau buka file ULTRASONIC
- Compile menggunakan verify button (tanda ceklist pada IDE arduino) untuk mengecek ada atau tidaknya error/kesalahan dalam pengetikan.
- Upload program ke arduino dengan cara, pilih File > Upload to I/O board, atau tekan tombol tanda panah pada jendela IDE arduino.
.
Code:
int trig = 9; // membuat varibel trig yang di set ke-pin 9
int echo = 8; // membuat variabel echo yang di set ke-pin 10
long durasi, jarak; // membuat variabel durasi dan jarak
void setup() {
pinMode(trig, OUTPUT); // set pin trig menjadi OUTPUT
pinMode(echo, INPUT); // set pin echo menjadi INPUT
Serial.begin(9600); // digunakan untuk komunikasi Serial dengan komputer
}
void loop() {
// program dibawah ini agar trigger memancarakan suara ultrasonic
digitalWrite(trig, LOW);
delayMicroseconds(8);
digitalWrite(trig, HIGH);
delayMicroseconds(8);
digitalWrite(trig, LOW);
delayMicroseconds(8);
durasi = pulseIn(echo, HIGH); // menerima suara ultrasonic
jarak = (durasi / 2) / 29.1; // mengubah durasi menjadi jarak (cm)
Serial.print("Jarak (cm) = ");
Serial.println(jarak); // menampilkan jarak pada Serial Monitor
}
Video Demo: