Penggunaan Sensor Ultrasonik (HC-SR04) dengan LED dan Buzzer
1. Pendahuluan
Proyek ini bertujuan untuk mendeteksi jarak objek menggunakan sensor ultrasonik HC-SR04. Berdasarkan jarak yang terukur, LED warna-warni akan menyala dan buzzer berbunyi sebagai indikator. Alat ini bisa diaplikasikan pada sistem parkir, robotika, atau alat deteksi objek lainnya.
2. Komponen yang Dibutuhkan:
Arduino Uno: Sebagai mikrokontroler utama.
Sensor Ultrasonik HC-SR04: Untuk mendeteksi jarak objek.
LED:
LED Kuning
LED Hijau
LED Biru
LED Merah
Buzzer: Sebagai indikator suara.
Kabel Jumper: Untuk menghubungkan komponen (12 pcs)
Breadboard: Sebagai tempat penyambungan komponen.
3. Cara Kerja Sensor Ultrasonik (HC-SR04)
Sensor Ultrasonik HC-SR04 menggunakan gelombang suara ultrasonik untuk mengukur jarak objek di depannya.
Cara Kerja:
Mengirimkan sinyal ultrasonik.
Sinyal ini dipantulkan oleh objek.
Sensor menerima sinyal pantulan tersebut dan menghitung waktu yang dibutuhkan untuk kembali, sehingga jarak objek dapat dihitung.
4. Fungsi LED dan Buzzer
LED Merah: Menyala jika jarak objek sangat dekat (misal kurang dari sama dengan 10 cm).
LED Biru: Menyala jika jarak objek berada dalam kisaran menengah (misal kurang dari sama dengan 20 cm).
LED Hijau: Menyala jika jarak objek lebih jauh (misal kurang dari sama dengan 30 cm).
LED Kuning: Menyala jika objek sangat jauh (misal kurang dari sama dengan 40 cm).
Buzzer: Mengeluarkan bunyi sebagai peringatan jika jarak objek terlalu dekat. Delay bunyi antar tone akan di sesuikan dengan jaraknya.
5. Rangkaian
Berikut adalah rangkaian komponen:
Sensor HC-SR04 terhubung ke pin digital Arduino.
LED terhubung ke pin digital lain untuk dikendalikan sesuai jarak yang terukur.
Buzzer terhubung ke salah satu pin digital yang akan menyala tergantung jartak.
Semua komponen dipasang pada breadboard menggunakan kabel jumper.
6. Kode Arduino
Berikut hasil rangkain yang sudah disisi coding :
7. Kode Arduino
Berikut contoh kode untuk proyek dan penjelasannya :
// mendefinisikan pin sensorultrasonic #define pintri 8 #define pinech 9 // mendefinisikan pin sensorultrasonic #define pink 7 #define pinh 6 #define pinb 5 #define pinm 4 // mendefinisikan pin buzzer #define pinbuz 11 void setup() { Serial.begin(9600); // memberikan ouput atau input pada setiap pin yang sudah di definisan pinMode(pintri, OUTPUT); pinMode(pinech, INPUT); pinMode(pink, OUTPUT); pinMode(pinh, OUTPUT); pinMode(pinb, OUTPUT); pinMode(pinm, OUTPUT); } void loop() { // bersihkan sensor ultrasonic digitalWrite(pintri, LOW); // matikan triger(pemancar sinyal) delayMicroseconds(2); // waktu tunggu skala mikrodetik // kirim sinyal sensor ultrasonic digitalWrite(pintri, HIGH); // menyalakan triger(pemancar sinyal) delayMicroseconds(10); // waktu tunggu skala mikrodetik digitalWrite(pintri, LOW); // matikan triger(pemancar sinyal) // membaca durasi int durasi = pulseIn(pinech, HIGH); // sinyal di terima echo dan dideklasikan sebagai "durasi" //menghitung jarak dalam satuan cm unsigned int jarak = durasi * 0.034/2; // 0.034 adalah kecepatan suara, dibagi 2 karena memancarkan lalu mantul dan di terima // unsigned berguna agar nilai jarak tidak mines saat tidak ada object di depan sensor //tampilkan jarak Serial.println(jarak); // untuk menampilkan jarak(cm) dalam serial monitor // Logika agar lampu dan buzzer menyala sesuai jarak if (jarak <=10){ // jika jarak kurang sama dengan 10 cm digitalWrite(pink, HIGH); // led kuning menyala digitalWrite(pinh, HIGH); // led hijau menyala digitalWrite(pinb, HIGH); // led biru menyala digitalWrite(pinm, HIGH); // led merah menyala tone(pinbuz, 900); // nyalakan buzzer dalam frekuensi tone delay(300); // durasi tone noTone(pinbuz); // matikan buzzer delay(10); // delay antar tone } else if (jarak > 10 && jarak <= 20) { // jika jarak lebih 10 cm dan kurang dari sama dengan 20 cm "11-20" digitalWrite(pink, HIGH); // led kuning menyala digitalWrite(pinh, HIGH); // led hijau menyala digitalWrite(pinb, HIGH); // led biru menyala digitalWrite(pinm, LOW); // led merah mati tone(pinbuz, 900); // nyalakan buzzer dalam frekuensi tone delay(300); // durasi tone noTone(pinbuz); // matikan buzzer delay(200); // delay antar tone } else if (jarak > 20 && jarak <= 30) { // jika jarak lebih 20 cm dan kurang dari sama dengan 30 cm "21-30" digitalWrite(pink, HIGH); // led kuning menyala digitalWrite(pinh, HIGH); // led hijau menyala digitalWrite(pinb, LOW); // led biru mati digitalWrite(pinm, LOW); // led merah mati tone(pinbuz, 800); // nyalakan buzzer dalam frekuensi tone delay(300); // durasi tone noTone(pinbuz); // matikan buzzer delay(500); // delay antar tone } else if (jarak > 30 && jarak <= 40) { // jika jarak lebih 30 cm dan kurang dari sama dengan 40 cm "31-40" digitalWrite(pink, HIGH); // led kuning menyala digitalWrite(pinh, LOW); // led hijau mati digitalWrite(pinb, LOW); // led biru mati digitalWrite(pinm, LOW); // led merah mati tone(pinbuz, 700); // nyalakan buzzer dalam frekuensi tone delay(300); // durasi tone noTone(pinbuz); // matikan buzzer delay(800); // delay antar tone } else { // jika jarak lebih dari 40 cm digitalWrite(pink, LOW); // led kuning mati digitalWrite(pinh, LOW); // led hijau mati digitalWrite(pinb, LOW); // led biru mati digitalWrite(pinm, LOW); // led merah mati } delay(50); // waktu tunggu perulangan program selama 0.05 detik }
.jpg)