Interfacing Sensor HC-SR04 dengan Arduino Uno

1. Tujuan Pembelajaran
- Siswa memahami prinsip kerja sensor ultrasonik HC-SR04 dalam mengukur jarak.
- Siswa mengenal spesifikasi teknis HC-SR04 (tegangan, rentang pengukuran, akurasi, dll) dan kegunaannya.
- Siswa mampu menghubungkan (wiring) HC-SR04 dengan papan Arduino Uno dengan benar.
- Siswa mampu menulis dan menjalankan program Arduino sederhana untuk membaca jarak dari HC-SR04.
- Siswa dapat menghitung jarak objek menggunakan rumus yang berkaitan dengan kecepatan suara.
2. Overview HC-SR04
Sensor HC-SR04 adalah modul pengukur jarak berbasis gelombang ultrasonik yang murah dan mudah digunakan. Sensor ini memiliki dua elemen utama: pemancar ultrasonik (transmitter) dan penerima ultrasonik (receiver)[1]. Sensor memancarkan gelombang suara frekuensi tinggi (±40 kHz) ke udara. Jika gelombang tersebut mengenai objek, gelombang akan dipantulkan kembali ke sensor. Dengan mengukur selang waktu antara pemancaran dan penerimaan gelombang, sensor dapat menghitung jarak objek tersebut[2][3]. HC-SR04 banyak digunakan dalam berbagai aplikasi hobi dan pendidikan, misalnya robot penghindar rintangan atau alat pengukur jarak sederhana.
3. Spesifikasi Teknis
Berikut adalah spesifikasi utama sensor HC-SR04 (mengacu pada datasheet dan sumber-sumber terkait):
| Parameter | Nilai |
| Tegangan Kerja | 5 V DC |
| Arus Kerja | ~15 mA |
| Frekuensi Operasi | ~40 kHz |
| Jarak Minimum | 2 cm |
| Jarak Maksimum | 400 cm |
| Resolusi/Akurasi | ±0.3 cm (3 mm) |
| Sudut Pengukuran | <15° |
| Waktu Pulsa Trig | 10 μs (TTL) |
| Dimensi Fisik | 45 × 20 × 15 mm |
Nilai-nilai di atas menunjukkan bahwa HC-SR04 mampu mengukur objek dalam rentang sangat luas (2 cm hingga 4 m) dengan akurasi sub-sentimeter[4][7]. Sensor ini membutuhkan suplai 5V DC dan arus pengoperasian rendah (~15 mA).
4. Ultrasonic Pinout HC-SR04
Sensor HC-SR04 memiliki 4 pin keluaran, yaitu: – VCC: Catu daya (+5V) untuk sensor[4]. – Trig: Pin input digital untuk memicu pemancaran gelombang ultrasonik. Saat diberi pulsa HIGH minimal 10 μs, sensor akan memancarkan gelombang ultrasonik[10][11]. – Echo: Pin output digital yang memberi sinyal pulsa HIGH selama waktu perjalanan gelombang kembali ke sensor. Durasi pulsa ini berbanding lurus dengan jarak objek[10][12]. – GND: Ground (tanah) untuk sensor.

Secara ringkas, pin VCC dan GND dihubungkan ke 5V dan GND pada Arduino Uno, sedangkan pin Trig dan Echo dihubungkan ke pin I/O digital pada Arduino. Pin Trig digunakan untuk mengirimkan sinyal pemicu, dan pin Echo untuk membaca sinyal pantulannya[13][14].
5. Cara Kerja HC-SR04
Sensor HC-SR04 bekerja dengan prinsip sonar (echo-locating). Langkah kerja utamanya adalah sebagai berikut[15][10]:

- Pemicu (Trigger): Arduino memberikan pulsa HIGH minimal 10 μs pada pin Trig HC-SR04[10][11].
- Transmisi Ultrasonik: Setelah menerima pulsa Trig, sensor mengeluarkan 8 siklus gelombang ultrasonik berfrekuensi ~40 kHz ke udara[10][11].
- Penerimaan Gelombang (Echo): Jika gelombang ultrasonik mengenai objek, ia dipantulkan kembali ke sensor. Sensor akan mengeluarkan pulsa HIGH pada pin Echo yang durasinya sama dengan waktu tempuh gelombang pergi dan kembali. Jika tidak ada pantulan (tidak ada objek), pulsa Echo akan berhenti setelah waktu maksimum (~38 ms)[16][17].
- Perhitungan Jarak: Waktu pulsa HIGH pada pin Echo diukur oleh Arduino (misalnya menggunakan pulseIn()). Jarak dihitung dari waktu tempuh tersebut dengan memperhitungkan kecepatan suara di udara[18][19].
Secara intuitif, semakin jauh objek, semakin lama gelombang ultrasonik kembali, sehingga durasi pulsa Echo lebih panjang. Sebaliknya, objek yang dekat akan menghasilkan pulsa Echo yang lebih pendek.
6. Perhitungan Jarak
Setelah Arduino membaca durasi pulsa Echo (dalam satuan waktu), jarak ke objek dapat dihitung dengan rumus dasar gelombang:

Dalam rumus ini, pembagian 2 diperlukan karena waktu yang diukur adalah perjalanan pulang pergi gelombang ultrasonik (dari sensor ke objek dan kembali). Nilai kecepatan suara di udara sekitar 340 m/s (sekitar 34 cm/ms pada suhu kamar)[20]. Jadi, jika durasi pulsa Echo adalah t (dalam mikrodetik), jarak (dalam cm) adalah:

Misalnya, jika durasi pulsa Echo adalah 2000 μs (2 ms), maka jarak objek adalah:

Contoh lain: durasi 1500 μs menghasilkan jarak ~25.5 cm(karena 0.034 x 1500/2 = 25.2 cm). Dengan rumus ini, program Arduino dapat menghitung dan menampilkan jarak secara langsung dari nilai durasi hasil pembacaan.
7. Wiring HC-SR04 ke Arduino Uno
Gambar 1. Contoh diagram penyambungan sensor ultrasonik HC-SR04 ke Arduino Uno.

Untuk menyambungkan HC-SR04 ke Arduino Uno, ikuti tabel berikut dan diagram di atas:
| Pin HC-SR04 | Koneksi ke Arduino Uno |
| VCC | 5V |
| GND | GND |
| Trig | Pin digital (misal D9) |
| Echo | Pin digital (misal D10) |
Hubungkan pin VCC HC-SR04 ke pin 5V Arduino, dan GND HC-SR04 ke pin GND pada Arduino. Sambungkan pin Trig ke salah satu pin I/O digital Arduino (misalnya D9) dan pin Echo ke pin I/O digital lainnya (misalnya D10). Pastikan sambungan kabel rapih dan tidak terbalik. Sesuai sumber, pin Trig digunakan untuk mengirim pulsa ultrasonik, sedangkan Echo untuk membaca sinyal pantulannya[13][14].
8. Contoh Program Arduino
Berikut contoh kode Arduino sederhana untuk membaca jarak dari HC-SR04. Kode ini menggunakan pin 9 sebagai Trig dan pin 10 sebagai Echo, kemudian menampilkan hasilnya di Serial Monitor:
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distanceCm;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
// Memastikan Trig LOW sebelum menghasilkan pulsa
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Kirim pulsa Trig HIGH selama 10 mikrodetik
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Baca durasi pulsa HIGH pada Echo (dalam mikrodetik)
duration = pulseIn(echoPin, HIGH);
// Hitung jarak (cm)
distanceCm = duration * 0.034 / 2;
// Tampilkan jarak di Serial Monitor
Serial.print("Jarak: ");
Serial.print(distanceCm);
Serial.println(" cm");
delay(500);
}
Kode di atas akan terus menerus mengirimkan pulsa ultrasonik dan membaca pantulannya. Hasil pengukuran jarak akan muncul di Serial Monitor Arduino IDE.
9. Penjelasan Program
- Pendefinisian Pin: Kode menyimpan nomor pin Arduino yang terhubung ke HC-SR04 dalam variabel trigPin (misal 9) dan echoPin (misal 10). Variabel duration bertipe long untuk menyimpan waktu pulsa (microseconds), dan distanceCm bertipe int untuk jarak dalam sentimeter[21].
- Setup: Pada fungsi setup(), pin trigPin diatur sebagai OUTPUT (untuk memberi sinyal trigger), sedangkan echoPin sebagai INPUT (untuk membaca sinyal echo). Serial communication diinisialisasi pada baud rate 9600 untuk tampilan di monitor[22].
- Mengirim Pulsa: Di dalam loop(), pertama-tama pin trigPin di-LOW-kan selama 2 μs untuk memastikan kondisi awal terjaga[23]. Kemudian trigPin di-HIGH-kan selama 10 μs, yang menginstruksikan sensor memancarkan gelombang ultrasonik[23]. Setelah pulsa 10 μs, trigPin kembali di-LOW.
- Membaca Echo: Fungsi pulseIn(echoPin, HIGH) digunakan untuk mengukur durasi (dalam mikrodetik) selama pin Echo berstatus HIGH, yaitu waktu tempuh gelombang ultrasonik pulang-pergi[24]. Hasil durasi ini disimpan di variabel duration.
- Menghitung Jarak: Jarak dihitung dengan rumus distanceCm = duration * 0.034 / 2. Nilai 0.034 diperoleh dari konversi kecepatan suara (~340 m/s) ke satuan cm/μs. Pembagian 2 dilakukan karena durasi yang diukur adalah perjalanan bolak-balik[25][26].
- Menampilkan Hasil: Jarak yang dihitung kemudian dicetak ke Serial Monitor dengan format “Jarak: xx cm” menggunakan print dan Serial.println. Akhir delay(500) memberi jeda setengah detik sebelum pengukuran berikutnya.
Dengan demikian, setelah diupload, program akan secara terus-menerus mengukur dan menampilkan jarak ke objek di depan sensor HC-SR04.
10. Langkah Kerja Praktikum
- Persiapan Alat: Siapkan Arduino Uno, kabel USB, kabel jumper, breadboard, dan modul HC-SR04. Sambungkan Arduino ke komputer dan pastikan Arduino IDE terpasang.
- Pemasangan Sensor: Hubungkan pin HC-SR04 ke Arduino sesuai tabel koneksi. Periksa kembali sambungan agar benar (VCC–5V, GND–GND, Trig–pin 9, Echo–pin 10).
- Penulisan Program: Buka Arduino IDE, tulis (atau salin) kode contoh di atas, lalu unggah ke papan Arduino Uno.
- Pengujian: Buka Serial Monitor pada Arduino IDE (baud 9600). Amati output jarak yang tampil ketika Anda menggerakkan objek (misalnya tangan) di depan sensor.
- Pengamatan: Catat hasil pembacaan jarak untuk beberapa posisi objek berbeda. Perhatikan apakah nilai jarak berubah sesuai jarak sebenarnya.
- Analisis: Diskusikan penyebab jika ada ketidaksesuaian hasil (misal pengukuran kurang akurat saat permukaan tidak rata, sudut pantul berbeda, dll).
11. Evaluasi
- Jelaskan fungsi masing-masing pin HC-SR04 (VCC, Trig, Echo, GND) dan bagaimana masing-masing dipakai pada Arduino Uno.
- Gambarkan diagram rangkaian HC-SR04 dengan Arduino Uno dan lengkapi tabel koneksinya.
- Hitung jarak yang terukur jika durasi pulsa Echo adalah 1500 μs (gunakan kecepatan suara 340 m/s). Tunjukkan langkah perhitungan.
- Uraikan langkah program Arduino untuk membaca sensor HC-SR04 secara singkat, termasuk penjelasan fungsi pulseIn().
- Modifikasi program di atas agar satuan jarak yang ditampilkan adalah meter (m) dengan dua angka desimal. (Contoh: 23 m.)








