#27Pemula

Pengukuran Jarak HC-SR04 (Tampilan Serial)

4.6(46)
71 selesai
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. Arduino menulis jarak itu dalam sentimeter ke layar komputermu setiap setengah detik, menampilkan bacaan antara 3 dan 100 sentimeter. Inilah dasar untuk proyek seperti sensor parkir dan robot penghindar rintangan.

Video

Skema rangkaian

Pengukuran Jarak HC-SR04 (Tampilan Serial) - Circuit

Kode sumber

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Pengukuran Jarak HC-SR04 (Tampilan Serial)
4// ─────────────────────────────────────────
5// Mengukur jarak dengan sensor ultrasonik HC-SR04 dan mengirim hasil
6// antara 3 dan 100 cm ke Serial Monitor dalam cm setiap 0.5 s.
7//
8// Pin:
9//   D7 -> Trig HC-SR04
10//   D6 -> Echo HC-SR04
11//   VCC HC-SR04 ke 5V, GND ke GND
12
13int echoPin = 6;        // Input echo
14int trigPin = 7;        // Output trigger
15int maxDistance = 100;  // Jarak terbesar yang ditampilkan (cm)
16int minDistance = 3;    // Jarak terkecil yang ditampilkan (cm)
17
18void setup() {
19  pinMode(trigPin, OUTPUT);
20  pinMode(echoPin, INPUT);
21  Serial.begin(9600);
22}
23
24void loop() {
25  // Pulsa trigger 10 us mengirim semburan suara
26  digitalWrite(trigPin, HIGH);
27  delayMicroseconds(10);
28  digitalWrite(trigPin, LOW);
29
30  // Lama Echo tetap HIGH (us) adalah waktu bolak-balik. Suara merambat 0.034 cm/us; membagi dua
31  // lintasannya memberi jarak
32  unsigned long duration = pulseIn(echoPin, HIGH);
33  double totalPath = (double)duration * 0.034;
34  int distance = totalPath / 2;
35
36  // Kirim hanya di dalam rentang yang valid
37  if (distance > minDistance && distance < maxDistance) {
38    Serial.print("Distance: ");
39    Serial.print(distance);
40    Serial.println("cm");
41  }
42
43  delay(500);   // Tunggu 0.5 s
44}
45

FAQ

Bagaimana HC-SR04 mengukur jarak?

Sensor memancarkan gelombang suara 40 kHz dan mengukur waktu yang dibutuhkan pantulannya untuk kembali. Suara bergerak di udara dengan kecepatan sekitar 343 m/s; jaraknya diubah ke sentimeter dengan rumus: jarak = waktu × 0,0343 / 2 (dibagi 2 karena suaranya pergi dan pulang).

Berapa jarak terpendek dan terjauh yang bisa diukurnya?

Dalam praktiknya, sensor ini mengukur jarak dari sekitar 2 cm sampai 400 cm. Pengukuran bisa tidak akurat atau terbaca 0 ketika jaraknya kurang dari 2 cm, ketika mengukur jarak yang sangat jauh, atau pada permukaan yang menyerap suara (seperti kain atau busa).

Kadang bacaannya 0 atau sangat besar, kenapa?

Jika tidak ada pantulan yang diterima, `pulseIn` akan kehabisan waktu. Pastikan sensor menghadap permukaan yang rata dan keras, beri jeda minimal 60 ms di antara pengukuran, dan saring bacaan yang salah di kodemu.

Bisakah aku memakainya dengan ESP32?

HC-SR04 bekerja di 5 V, dan pin ECHO-nya mengeluarkan 5 V. Karena ESP32 memakai logika 3,3 V, kamu sebaiknya menambahkan pembagi tegangan (mis. 1 kΩ + 2 kΩ) di jalur ECHO atau memakai model HC-SR04P yang kompatibel dengan 3,3 V.