Project ini meniru sistem sensor parkir mobil. Saat objek terdeteksi dekat, lampu merah menyala sebagai peringatan. Saat objek jauh, lampu hijau menyala sebagai tanda aman. Angka jarak juga terus tampil di Serial Monitor agar proses pembacaan sensor bisa diamati langsung.
| Komponen | Pin Arduino | Fungsi |
|---|---|---|
| VCC HC-SR04 | 5V Arduino | Jalur daya sensor |
| GND HC-SR04 | GND Arduino | Ground sensor |
| TRIG HC-SR04 | Pin 3 | Arduino mengirim pulsa ultrasonik |
| ECHO HC-SR04 | Pin 2 | Arduino membaca pantulan pulsa |
| Anoda LED Merah | Pin 10 | Menyala saat kondisi bahaya |
| Anoda LED Hijau | Pin 9 | Menyala saat kondisi aman |
| Katoda LED Merah & Hijau | GND (masing-masing lewat resistor 220Ω) | Jalur kembali arus LED |
Sensor memancarkan gelombang ultrasonik lewat pin TRIG, lalu menunggu pantulannya diterima pin ECHO. Semakin lama waktu pantulnya, semakin jauh jaraknya. Rumus yang dipakai: jarak = duration × 0.034 / 2 — 0.034 adalah perkiraan kecepatan suara, dibagi 2 karena pulsa pergi dan pulang.
Hubungkan sensor dan LED sesuai tabel di atas. Pastikan semua GND (sensor, kedua LED, dan Arduino) tersambung ke jalur ground yang sama.
Salin kode di bawah ini ke Arduino IDE, klik tombol Upload, lalu buka Serial Monitor untuk melihat angka jarak yang terus diperbarui.
// Menentukan pin untuk sensor dan LED
int trigPin = 3;
int echoPin = 2;
int ledMerah = 10;
int ledHijau = 9;
void setup() {
// Memulai komunikasi serial agar kita bisa melihat angka jarak di layar
Serial.begin(9600);
// Mengatur status pin
pinMode(trigPin, OUTPUT); // TRIG memancarkan sinyal
pinMode(echoPin, INPUT); // ECHO menerima pantulan sinyal
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
}
void loop() {
// 1. Memerintahkan sensor memancarkan gelombang ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 2. Membaca waktu pantulan gelombang
long duration = pulseIn(echoPin, HIGH);
// 3. Menghitung jarak ke dalam satuan Centimeter (cm)
int distance = duration * 0.034 / 2;
// 4. Menampilkan hasil jarak ke Serial Monitor (Layar bawah Wokwi)
Serial.print("Jarak Benda: ");
Serial.print(distance);
Serial.println(" cm");
// 5. Logika Radar Parkir (Kondisi LED)
if (distance < 50) {
// JIKA jarak benda DI BAWAH 50 cm (Bahaya/Dekat)
digitalWrite(ledMerah, HIGH);
digitalWrite(ledHijau, LOW);
} else {
// JIKA jarak benda DI ATAS 50 cm (Aman/Jauh)
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, HIGH);
}
// Jeda sejenak sebelum membaca ulang
delay(100);
}
Setiap 100 milidetik, program mengulang 5 langkah: mengirim pulsa ultrasonik, membaca waktu pantulnya, menghitung jarak dalam cm, menampilkan angkanya ke Serial Monitor, lalu memutuskan LED mana yang menyala berdasarkan batas 50 cm.
Jangan tukar pin TRIG dan ECHO — TRIG itu output (Arduino mengirim sinyal), ECHO itu input (Arduino menerima sinyal). Pastikan semua GND tersambung karena semua komponen butuh jalur referensi yang sama.
| Masalah | Yang perlu dicek |
|---|---|
| LED tidak menyala | Cek anoda LED sudah ke pin 10/9 dan katoda sudah melewati resistor ke GND |
| Angka jarak tetap 0 | Cek TRIG ke pin 3 dan ECHO ke pin 2, lalu jalankan ulang |
| Serial Monitor kosong | Pastikan Serial.begin(9600) ada di setup() dan Serial Monitor sudah dibuka |
| Nilai jarak tidak stabil | Pastikan posisi objek tidak terlalu ekstrem dan sensor menghadap objek |