Komponen · 3 mnt baca

Sensor Jarak HC-SR04: Mengukur Jarak Ultrasonik dengan Arduino

Bagaimana cara kerja sensor jarak ultrasonik HC-SR04 dan bagaimana menghubungkannya ke Arduino? Pin TRIG dan ECHO, rumus jarak, pengkabelan ESP32 dan Pico, serta tips agar lebih akurat.

HC-SR04 adalah sensor murah dan sangat umum yang mengukur jarak ke benda di depannya dengan suara. Cara kerjanya mirip kelelawar mencari jalan: sensor mengirim suara berfrekuensi tinggi yang tidak bisa kamu dengar, lalu mengukur berapa lama gemanya kembali. Sensor ini menjadi dasar sensor parkir, robot penghindar rintangan, pengukur level tangki air, dan alat ukur tinggi badan.

HC-SR04
HC-SR04: dua transduser ultrasonik, satu pemancar dan satu penerima, serta 4 pin (VCC, TRIG, ECHO, GND).

Bagaimana cara kerja HC-SR04?

  1. Arduino mengirim pulsa 10 mikrodetik ke pin TRIG.
  2. Sensor memancarkan 8 pulsa suara pada 40 kHz.
  3. Suara memantul dari benda dan kembali; selama itu pin ECHO tetap HIGH.
  4. Arduino mengukur berapa lama ECHO tetap HIGH lalu menghitung jaraknya.

Suara merambat di udara dengan kecepatan sekitar 343 m/s, jadi menempuh satu sentimeter dalam sekitar 29 mikrodetik. Waktu yang terukur mencakup perjalanan pergi dan pulang, jadi dibagi dua: jarak (cm) = waktu (µs) × 0,0343 / 2, atau singkatnya waktu / 58.

Spesifikasi

FiturNilai
Catu daya5 V, sekitar 15 mA
Jangkauan2–400 cm
ResolusiSekitar 3 mm
Sudut pancaranSekitar 15°
PinVCC, TRIG, ECHO, GND

Mengukur jarak dengan Arduino

Hubungkan VCC ke 5V, GND ke GND, TRIG ke pin 9, dan ECHO ke pin 10. Kode di bawah menampilkan jarak di Serial Monitor dan memberi laporan tersendiri ketika tidak ada benda atau bendanya terlalu jauh.

C++ (Arduino IDE)
1const int TRIG_PIN = 9;    // tetik / trigger
2const int ECHO_PIN = 10;   // yankı / echo
3
4void setup() {
5  pinMode(TRIG_PIN, OUTPUT);
6  pinMode(ECHO_PIN, INPUT);
7  Serial.begin(9600);
8}
9
10void loop() {
11  digitalWrite(TRIG_PIN, LOW);
12  delayMicroseconds(2);
13  digitalWrite(TRIG_PIN, HIGH);      // 10 µs darbe / 10 µs pulse
14  delayMicroseconds(10);
15  digitalWrite(TRIG_PIN, LOW);
16
17  long duration = pulseIn(ECHO_PIN, HIGH, 30000); // en fazla 30 ms bekle / wait max 30 ms
18  if (duration == 0) {
19    Serial.println("Menzil dışı / out of range");
20  } else {
21    float cm = duration * 0.0343 / 2;   // gidiş-dönüş / round trip
22    Serial.print(cm);
23    Serial.println(" cm");
24  }
25  delay(100);                          // ölçümler arası / between readings
26}
Timeout 30.000 µs yang diberikan ke pulseIn setara dengan sekitar 5 meter. Tanpa timeout, kode bisa menunggu sampai 1 detik ketika tidak ada benda.

Memakainya dengan ESP32 dan Raspberry Pi Pico

Pin ECHO HC-SR04 mengeluarkan 5 V, sedangkan pin ESP32 dan Pico bekerja pada 3,3 V. Jangan hubungkan ECHO secara langsung: buat pembagi tegangan dengan resistor 1 kΩ dan 2 kΩ, atau pakai versi HC-SR04P yang bekerja pada 3,3 V.

Tips agar pembacaan akurat

  • Permukaan lunak dan miring: kain, busa, dan permukaan miring tidak memantulkan suara dengan baik; pembacaan bisa terlewat.
  • Ambil nilai tengah: memakai median dari 3–5 pembacaan akan menghilangkan lonjakan mendadak.
  • Pengaruh suhu: kecepatan suara berubah sekitar 0,6 m/s per 1 °C; untuk pekerjaan yang presisi, koreksi dengan sensor suhu.
  • Beberapa sensor: sensor yang dipicu bersamaan akan mendengar gema satu sama lain; picu secara bergantian.
  • Jeda pengukuran: beri jeda minimal 60 ms antarpembacaan supaya gema sebelumnya hilang.

Untuk menggabungkan sensor ini dengan buzzer menjadi sensor parkir, lihat Apa Itu Buzzer?, dan untuk mengenal sensor lainnya, baca Panduan Sensor Arduino.

Pertanyaan umum

Seberapa jauh HC-SR04 bisa mengukur?

Secara teori sampai 4 meter. Dalam praktiknya, kamu mendapat hasil yang andal sampai 2–3 meter pada permukaan yang datar dan keras.

Kenapa HC-SR04-ku selalu menunjukkan 0 atau angka yang sangat besar?

Mungkin TRIG dan ECHO tertukar, bendanya di luar jangkauan, atau sensor menghadap permukaan yang tidak memantulkan suara. Periksa pengkabelannya dan pakai timeout pada pulseIn.

Apakah HC-SR04 bisa mengukur level air?

Bisa, pasang menghadap ke bawah di tutup tangki dan ukur jarak ke permukaan air. Sensor perlu dilindungi di kondisi lembap; JSN-SR04T yang tahan air adalah pilihan yang lebih baik.

Sensor jarak apa lagi yang ada untuk Arduino?

TCRT5000 inframerah dipakai untuk jarak pendek dan deteksi garis, sedangkan VL53L0X berbasis laser untuk presisi milimeter. HC-SR04 paling umum dipakai berkat keseimbangan harga dan jangkauannya.

Lihat semua proyek
Pengukuran Jarak HC-SR04 (Tampilan Serial)
#27Pemula

Pengukuran Jarak HC-SR04 (Tampilan Serial)

Sensor HC-SR04 bekerja persis seperti kelelawar yang mencari jalan dalam gelap: ia mengirim suara yang tidak bisa kamu dengar, mendengarkan pantulannya, dan mengukur seberapa jauh benda di depannya. A

4.6(46)
71
Sensor Parkir dengan HC-SR04
#28Menengah
Premium

Sensor Parkir dengan HC-SR04

Versi mini sensor parkir mobil: makin dekat sesuatu, makin cepat bunyi bipnya. Sensor jarak mengukur benda di depannya; jika jaraknya lebih dari 20 sentimeter LED hijau tetap menyala, dan begitu lebih

4.8(64)
85
Mengukur Jarak dengan Layar LCD
#31Mahir
Premium

Mengukur Jarak dengan Layar LCD

Alat yang mengukur jarak tanpa penggaris: gerakkan tanganmu maju-mundur di depan sensor dan lihat angkanya berubah. HC-SR04 mengirim gelombang suara dan mendengarkan pantulannya, lalu Arduino menghitu

4.6(45)
59
Proyek Pengukur Tinggi Badan
#33Menengah
Premium

Proyek Pengukur Tinggi Badan

Pengukur tinggi yang digantung di kusen pintu dan memberi tahu, dalam sentimeter, tinggi orang yang berdiri di bawahnya. Pertama kamu menekan tombol pertama tanpa ada orang di bawahnya, dan sensor jar

4.5(25)
34
Robot Penghindar Rintangan
#81Mahir
Premium

Robot Penghindar Rintangan

Bagaimana kalau membuat kendaraan pintar yang mencari jalannya sendiri? Robot Penghindar Rintangan terus memindai sekelilingnya berkat sensor ultrasonik di depannya. Ketika menemui rintangan, robot be

5.0(38)
49
Sensor Jarak Ultrasonik HC-SR04 ESP32
#116Menengah

Sensor Jarak Ultrasonik HC-SR04 ESP32

Sensor ultrasonik HC-SR04 menghitung jarak dengan mengukur waktu yang dibutuhkan gelombang suara yang dipancarkannya untuk memantul dari benda lalu kembali (Time of Flight). Di proyek ini, kita mengirim pulsa 10 mikrodetik dari ESP32 ke pin TRIG sensor dan membaca durasi pantulan dari pin ECHO dengan pulseIn(). Jarak hasil hitung ditampilkan dalam sentimeter di LCD I2C 16x2. Karena HC-SR04 bekerja di 5V, pembagi tegangan wajib dipasang di pin ECHO.

4.9(28)
45
Penghitung Rakaat Salat ESP32 (HC-SR04 + OLED SSD1306 + 2 Tombol)
#136Mahir
Premium

Penghitung Rakaat Salat ESP32 (HC-SR04 + OLED SSD1306 + 2 Tombol)

Kadang lupa sudah berapa rakaat ketika salat? Proyek ini membuat penghitung rakaat yang diletakkan di samping sajadah dan menghitung sujudmu ketika kamu mendekatkan tangan. Sensor ultrasonik HC-SR04 mendeteksi tangan yang mendekat, OLED SSD1306 menampilkan jumlah rakaat, dan dua tombol memilih 2, 3, atau 4 rakaat serta mereset hitungan. State machine dengan jeda debounce 2,5 detik dan algoritma "tangan menjauh" mencegah sujud yang sama terhitung dua kali.

4.8(11)
14
Sensor Parkir ESP32 (HC-SR04 + Bar 5 LED + Buzzer + OLED)
#142Mahir
Premium

Sensor Parkir ESP32 (HC-SR04 + Bar 5 LED + Buzzer + OLED)

Versi ESP32 dari sensor parkir mobil! Kita memakai sensor ultrasonik HC-SR04 untuk mengukur jarak ke benda di depannya. Semakin dekat jaraknya, bar 5 LED semakin penuh (hijau → kuning → merah) dan jeda bunyi bip buzzer semakin pendek. Ketika benda sudah sangat dekat (di bawah 10 cm), alarm berbunyi terus dan semua LED menyala. Layar OLED SSD1306 menampilkan jarak terkini dalam cm dengan font besar, pesan status (STOP / CAUTION / CLOSE / STOP! / DANGER), dan simulasi bar jarak.

0.0(0)
14