Tutorial Menggunakan Sensor HC-SR04 dan Relay dengan Arduino
Pada tutorial Arduino kali ini kita akan mempelajari bagaimana menggunakan sensor HC-SR04 dan relay dengan Arduino. Namun jika Anda belum mengetahui apa itu sensor HC-SR04, Anda bisa membaca artikel kami sebelumnya yang membahas hal seputar sensor ultrasonik HC-SR04 berikut.
Cara Kerja
Cara kerja alat yang ingin kita buat adalah mikrokontroler akan mengaktifkan relay jika sensor HC-SR04 mendeteksi objek di depannya pada jarak tertentu. Relay bisa dihubungkan ke lampu, mesin air maupun perangkat elektronik lainnya.
Salah satu contoh penerapannya adalah sebagai mesin air otomatis. Sensor HC-SR04 berfungsi mendeteksi volume air kemudian mesin air akan hidup apabila tandon penampung air kosong dan mati jika air sudah penuh.
Namun sebelum kita masuk ke ini tutorialnya, kita akan mengenal sedikit tentang komponen utama pada artikel ini yaitu sensor HC-SR04 dan relay.
Apa Itu Sensor HC-SR04?
Pengertian Sensor HC-SR04
Sensor Ultrasonik HC-SR04 |
Sensor HC-SR04 adalah salah satu sensor yang berfungsi untuk mengukur jarak berdasarkan prinsip kecepatan suara. Sensor HC-SR04 bekerja dengan menembakkan suara berfrekuensi tinggi, oleh karena itu sensor HC-SR04 disebut juga sensor ultrasonik.
Cara Kerja Sensor HC-SR04
Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang pantul diterima.
Spesifikasi Sensor HC-SR04
Berikut adalah spesifikasi dari sensor HC-SR04.
- Tegangan kerja: 5V.
- Arus saat beroperasi: 15mA.
- Arus saat diam: 2mA.
- Frekuensi suara: 40kHz.
- Jarak ukur minimum: 2cm.
- Jarak ukur maksimum (optimal): 4m.
- Sudut ukur optimal: 15°.
- Input sinyal trigger: 10uS TTL pulse.
- Output sinyal echo: TTL level signal, bergantung pada jarak.
- Dimensi: 45*20*15mm.
Apa itu relay?
Pengertian Relay
Relay 5V |
Relay adalah perangkat switching (saklar) yang paling umum digunakan dalam dunia elektronik. Terdapat sebuah parameter penting pada relay, yaitu tegangan pemicu (trigger voltage). Trigger voltage adalah tegangan yang diperlukan untuk menghidupkan relay yaitu untuk mengubah kontak dari common - NC menjadi common - NO.
Relay yang kita gunakan pada artikel ini memiliki tegangan pemicu 5V, tetapi Anda juga dapat menggunakan relay dengan trigger voltage 3V, 6V, dan bahkan 12V. Parameter lainnya adalah tegangan & arus beban, ini adalah jumlah tegangan atau arus yang dapat ditahan oleh terminal NC, NO atau common dari relay, dalam kasus kami untuk DC maksimum 30V dan 10A. Pastikan beban yang Anda gunakan termasuk dalam kisaran ini.
Spesifikasi Relay 5V
Di sini saya menggunakan relay persis seperti gambar di atas, sehingga spesifikasi di bawah ini tentu berdasarkan datasheet relay di atas. Anda bisa menggunakan relay jenis lain, namun perhatikanlah spesifikasi dari relay yang Anda miliki.
Berikut adalah spesifikasi relay.
- Jenis relay: mekanik.
- Tegangan trigger (tegangan yang mengalir pada koil/lilitan): 5V DC.
- Arus trigger: 70mA.
- Maksimum arus beban tegangan AC: 10A pada 220/150V AC.
- Maksimum arus beban tegangan DC: 10A pada 30/28V DC.
- konfigurasi 5 buah pin,
- Waktu hidup (peralihan dari mati ke hidup): 10ms.
- Waktu mati (peralihan dari hidup ke mati): 5ms.
- Maksimum switching per menit: 300x.
Rangkaian Minimum Relay
Berikut adalah rangkaian minimum untuk menggunakan relay.
Rangkaian Minimum Relay |
Alat yang Dibutuhkan
Alat-alat yang dibutuhkan adalah sebagai berikut
- 1x sensor ultrasonik HC-SR04.
- 1x relay 5V aktif low (relay lain juga bisa).
- Kabel secukupnya.
- 1x Arduino Uno (jenis lain juga boleh).
Rangkaian Sensor HC-SR04 dan Relay
Berikut adalah rangkaian sensor HC-SR04, relay dan Arduino Uno.
Rangkaian Sensor HC-SR04 dan Relay |
Kode Program HC-SR04 dan Relay
Salinlah program di bawah ini dan tempel ke Arduino IDE. Kemudian pilih jenis Arduino yang digunakan serta port yang terhubung dengannya. Jika sudah Anda bisa mengunggah program dengan menekan tombol upload/unggah.
const int triggerPin = 13; const int echoPin = 12; const int relay = 1; unsigned int duration; unsigned int distance; void setup() { pinMode(triggerPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(relay, OUTPUT); digitalWrite(relay, HIGH); //Ubah jadi LOW jika relay aktif HIGH } void loop() { readSensor(); if (distance < 50) { digitalWrite(relay, LOW); //Ubah jadi HIGH jika relay aktif HIGH } else { digitalWrite(relay, HIGH); //Ubah jadi LOW jika relay aktif HIGH } } void readSensor() { digitalWrite(triggerPin, LOW); delayMicroseconds (2); digitalWrite(triggerPin, HIGH); delayMicroseconds (10); digitalWrite(triggerPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration / 2) / 28.5; }
Melakukan Percobaan
Jika rangkaian yang Anda buat dan program di atas benar, cobalah dekatkan sebuah objek di depan sensor, jika jarak objek dengan sensor < 50cm seharusnya relay akan aktif, jika objek di jauhkan dari sensor maka relay akan non-aktif.
Kemungkinan Kesalahan
Relay Tidak Bekerja
Beberapa kemungkinan:
- Ada yang salah dengan rangkaian yang dibuat, cobalah untuk memastikan rangkaian sudah benar.
- Arus yang mengalir pada koil tidak cukup, jangan gunakan tegangan dari pin Arduino, karena arus yang sangat terbatas, cobalah menggunakan catu daya eksternal.
- Trigger voltage yang tidak sesuai. Coba periksa jenis relay, apabila trigger voltage lebih dari 5V maka harus menggunakan catu daya eksternal serta tambahan transistor.
- Relay rusak.
Relay Bekerja Terbalik
Beberapa kemungkinan:
- Coba periksa jenis relay, jika relay bertipe aktif high, Anda harus mengubah setiap baris program digitalWrite(relay, HIGH); menjadi digitalWrite(relay, LOW); dan digitalWrite(relay, LOW); menjadi digitalWrite(relay, HIGH);.
- Salah menghubungkan common yang seharusnya common - NO (normally open) malah common - NC (normally close).
Perbandingan common - NO dengan common - NC.
Perbandingan Common - NO dengan Common - NC |
Penjelasan Kode Program
Deklarasi variabel dan masing-masing pin baik itu sensor HC-SR04 maupun relay.
const int triggerPin = 13; const int echoPin = 12; const int relay = 1; unsigned int duration; unsigned int distance;
Inisialisasi masing-masing pin dimana pin trigger sebagai output, pin echo sebagai input dan pin trigger relay sebagai output.
pinMode(triggerPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(relay, OUTPUT);
Memberikan logika HIGH pada pin relay (pin 1) agar relay non-aktif di awal. Jika Anda menggunakan relay bertipe aktif high maka ubah baris program ini dari HIGH menjadi LOW.
digitalWrite(relay, HIGH); //Ubah jadi LOW jika relay aktif HIGH
Berfungsi untuk memanggil fungsi readSensor.
readSensor();
Berikut adalah fungsi readSensor.
void readSensor() { digitalWrite(triggerPin, LOW); delayMicroseconds (2); digitalWrite(triggerPin, HIGH); delayMicroseconds (10); digitalWrite(triggerPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration / 2) / 28.5; }
Apabila jarak yang dideteksi oleh sensor ultrasonik HC-SR04 kurang dari 50cm maka relay akan aktif, sedangkan jika jarak adalah 50cm atau lebih dari 50cm maka relay akan non-aktif.
if (distance < 50) { digitalWrite(relay, LOW); //Ubah jadi HIGH jika relay aktif HIGH } else { digitalWrite(relay, HIGH); //Ubah jadi LOW jika relay aktif HIGH }
Artikel Tentang Sensor Ultrasonik HC-SR04
Berikut adalah beberapa artikel yang membahas tentang sensor ultrasonik HC-SR04.
Akhir Kata
Itulah dia tutorial menggunakan sensor HC-SR04 dan relay dengan Arduino. Jika Anda tertarik untuk membahas tutorial Arduino yang lain, Anda bisa lihat-lihat di sini.
Gabung dalam percakapan