Menggunakan Banyak Sensor Ultrasonik HC-SR04 dengan Arduino
Sensor ultrasonik HC-SR04 adalah salah satu sensor yang berfungsi untuk mengukur jarak antara sensor dengan benda yang berada di depannya berdasarkan prinsip kecepatan suara. Penjelasan mengenai pengertian sensor ultrasonik HC-SR04 dapat dilihat pada artikel Pengertian Sensor Ultrasonik HC-SR04.
Bagaimana sensor ultrasonik bekerja?
Secara umum sensor ini bekerja dengan cara 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. Penjelasan mengenai bagaimana sensor HC-SR04 bekerja telah kita bahas tuntas di artikel Cara Kerja Sensor Ultrasonik HC-SR04.
Sensor ultrasonik biasanya dioperasikan menggunakan mikrokontroler contohnya seperti ATmega328 yang terintegrasi pada Arduino Uno. Kita juga sudah membahas tentang Cara Menggunakan Sensor HC-SR04 dengan Arduino beberapa waktu lalu.
Tapi di situ kita hanya menjabarkan penggunaan sensor ultrasonik HC-SR04 sebanyak 1 buah. Jadi pada kesempatan ini kita akan sama-sama belajar untuk menggunakan serta memprogram multiple sensor ultrasonik atau dengan kata lain menggunakan dan memprogram banyak sensor ultrasonik sekaligus menggunakan Arduino.
Kenapa tertarik membahas ini?
Saya tertarik membahas ini karena dahulu proyek tugas akhir saya lumayan banyak menggunakan sensor ultrasonik tipe HC-SR04, kalau saya tidak salah 6 buah. Awalnya saya menggunakan library Newping namun ternyata kurang mulus atau tersendat-sendat.
Oleh karena itu akhirnya saya memutuskan untuk tidak menggunakan library berkat saran dosen dan ternyata hasilnya cukup memuaskan. Semua sensor dapat berfungsi sesuai yang diharapkan dengan sangat mulus (Terima kasih kepada bapak dosen). Hal ini juga sudah saya singgung pada artikel Menggunakan Sensor HC-SR04 tanpa Library.
Alat yang Dibutuhkan
Pada percobaan ini kita hanya akan menggunakan 4 buah sensor ultrasonik bertipe HC-SR04. Namun seharusnya tutorial ini juga berlaku jika menggunakan sensor yang lebih banyak. Mikrokontroler yang saya gunakan adalah Arduino Uno yang menggunakan ATmega328.
Jika kita mengacu pada jumlah pin I/O pada Arduino Uno (versi DIP), jumlah sensor yang dapat kita gunakan pada board ini maksimal berjumlah 10 buah, karena Arduino memiliki 20 pin I/O (digital dan analog) sedangkan sensor HC-SR04 membutuhkan 2 pin I/O untuk trigger dan echo. Berikut alat-alat yang kita butuh kan.
- 1X Arduino Uno (tipe lain juga bisa).
- 4X HC-SR04 (lebih atau kurang juga boleh, asal ada).
- Kabel penghubung secukupnya.
- 1X Breadboard (opsional).
- 1X External power supply 5V (opsional).
Spesifikasi Sensor Ultrasonik HC-SR04
Berikut adalah spesifikasi dari sensor ultrasonik 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.
Diagram Rangkaian Menggunakan Banyak HC-SR04
Rangkaian Menggunakan Banyak Sensor Ultrasonik HC-SR04 dengan Arduino |
Seperti yang sudah disebutkan sebelumnya bahwa sensor ultrasonik HC-SR04 ini memiliki 2 buah pin yang membutuhkan pin I/O pada Arduino. Pin-pin ini ada pin trigger dan pin echo.
Sensor ultrasonik membutuhkan tegangan 5V untuk beroperasi dan kita dapat menggunakan tegangan 5V dari Arduino mengingat konsumsi daya sensor ini tidak begitu besar.
Untuk jenis board, kita bisa gunakan board Arduino tipe lain, tidak harus Arduino Uno.
Kode Program Menggunakan Banyak Sensor Ultrasonik dengan Arduino
/* Judul: Menggunakan Banyak HC-SR04 dengan Arduino
/* link: https://www.mahirelektro.com/2021/01/Menggunakan-Banyak-Sensor-Ultrasonik-Arduino.html
*/
const int triggerPin_1 = 13;
const int echoPin_1 = 12;
unsigned int duration_1;
unsigned int distance_1;
const int triggerPin_2 = 11;
const int echoPin_2 = 10;
unsigned int duration_2;
unsigned int distance_2;
const int triggerPin_3 = 9;
const int echoPin_3 = 8;
unsigned int duration_3;
unsigned int distance_3;
const int triggerPin_4 = 7;
const int echoPin_4 = 6;
unsigned int duration_4;
unsigned int distance_4;
void setup() {
pinMode(triggerPin_1, OUTPUT);
pinMode(echoPin_1, INPUT);
pinMode(triggerPin_2, OUTPUT);
pinMode(echoPin_2, INPUT);
pinMode(triggerPin_3, OUTPUT);
pinMode(echoPin_3, INPUT);
pinMode(triggerPin_4, OUTPUT);
pinMode(echoPin_4, INPUT);
Serial.begin(9600);
}
void loop() {
readSensor_1();
readSensor_2();
readSensor_3();
readSensor_4();
Serial.println(" ");
delay(1000);
}
void readSensor_1() {
digitalWrite(triggerPin_1, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_1, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_1, LOW);
duration_1 = pulseIn(echoPin_1, HIGH);
distance_1 = (duration_1 / 2) / 28.5;
Serial.print("Sensor 1 = ");
Serial.print(distance_1);
Serial.println(" cm");
}
void readSensor_2() {
digitalWrite(triggerPin_2, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_2, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_2, LOW);
duration_2 = pulseIn(echoPin_2, HIGH);
distance_2 = (duration_2 / 2) / 28.5;
Serial.print("Sensor 2 = ");
Serial.print(distance_2);
Serial.println(" cm");
}
void readSensor_3() {
digitalWrite(triggerPin_3, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_3, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_3, LOW);
duration_3 = pulseIn(echoPin_3, HIGH);
distance_3 = (duration_3 / 2) / 28.5;
Serial.print("Sensor 3 = ");
Serial.print(distance_3);
Serial.println(" cm");
}
void readSensor_4() {
digitalWrite(triggerPin_4, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin_4, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin_4, LOW);
duration_4 = pulseIn(echoPin_4, HIGH);
distance_4 = (duration_4 / 2) / 28.5;
Serial.print("Sensor 4 = ");
Serial.print(distance_4);
Serial.println(" cm");
}
Salinlah kode program di atas dan tempel pada Arduino IDE. Pilih jenis board yang digunakan serta port yang terhubung dengan Arduino.
Jika sudah unggah program ke Arduino. Jika proses unggah telah selesai, kawan bisa buka serial monitor untuk melihat hasil pembacaan sensornya, jangan lupa pilih baudrate yang sesuai yaitu 9600.
Jika berhasil, maka tampilan pada serial monitor akan mirip seperti yang ditampilkan pada gambar di bawah ini.
Tampilan Pada Serial Monitor |
Artikel Tentang Sensor Ultrasonik HC-SR04
Berikut adalah beberapa artikel yang membahas tentang sensor ultrasonik HC-SR04.
- Cara Kerja Sensor Ultrasonik dan Aplikasinya Dalam Kehidupan
- Tutorial Menampilkan Pembacaan Sensor HC-SR04 Pada LCD
- Menggunakan Sensor HC-SR04 Tanpa Library Pada Arduino
- Tutorial Menggunakan Sensor Ultrasonik pada Arduino
Akhir Kata
Itulah dia tutorial menggunakan banyak sensor ultrasonik HC-SR04 menggunakan Arduino. Jika kawan-kawan butuh tutorial menampilkan pembacaan sensor HC-SR04 tersebut ke LCD 16x2, kawan bisa mempelajarinya pada artikel kami yang berjudul Tutorial Menampilkan Pembacaan Sensor HC-SR04 Pada LCD. Pada artikel berikutnya kita akan membahas tutorial lain yang berhubungan dengan dunia elektronika dan Arduino.