Menggunakan Sensor HC-SR04 Tanpa Library Pada Arduino

Pada artikel ini kita akan membahas cara menggunakan sensor ultrasonik bertipe HC-SR04 tanpa library pada Arduino.

Sensor ultrasonik HC-SR04 adalah sensor yang digunakan untuk mengukur jarak berdasarkan cepat rambat suara (ultrasonik). Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu.

Penjelasan lengkap tentang cara kerja sensor HC-SR04 dapat dilihat pada artikel Cara Kerja Sensor Ultrasonik dan Aplikasinya Dalam Kehidupan kami sebelumnya.

Menggunakan sensor ultrasonik pada Arduino sangat mudah, karena sudah tersedia banyak library untuk menggunakannya. Namun pada beberapa kasus Sensor ultrasonik HC-SR04 tidak bekerja dengan baik saat menggunakan library, sehingga kita perlu membuat program secara manual (tanpa library).

Apa kelebihan menggunakan sensor ultrasonik HC-SR04 tanpa library?

Kelebihan menggunakan sensor HC-SR04 tanpa library salah satunya adalah kita dapat dengan mudah memodifikasi dan tidak dibingungkan dengan fungsi-fungsi yang ada pada library. Selain itu kita dapat lebih memahami bagaimana sensor ultrasonik HC-SR04 bekerja.

Apa saja komponen yang dibutuhkan?

  • 1x HC-SR04.
  • 1x Arduino Uno (tipe lain juga bisa).
  • 4x Kabel penghubung.

Rangkaian HC-SR04 Tanpa Library

Sensor HC-SR04 memiliki 4 buah pin yaitu trigger, echo, vcc dan ground. Pada artikel kali ini pin trigger terhubung ke port D7 Arduino Uno. Pin trigger adalah pin pemicu agar sensor menembakkan suara ultrasonik. Pin echo terhubung ke port D6 Arduino Uno. 

Pin echo adalah pin output sensor saat suara telah diterima lagi oleh receiver. Pin vcc adalah sumber tegangan sensor (+5VDC) dan pin ground adalah ground sensor. Cobalah untuk membuat rangkaian yang semirip mungkin dengan gambar di bawah ini.

Kode Program HC-SR04 Tanpa Library

Kode program di bawah dapat langsung diunggah ke papan Arduino. Pada video di akhir artikel kami hanya melakukan simulasi karena sedang tidak tersedia papan Arduino dan sensornya. Namun seharusnya program juga berjalan dengan baik jika diunggah pada Arduino secara nyata. Berikut kode program untuk menggunakan sensor ultrasonik HC-SR04 tanpa library.

const int triggerPin = 7;
const int echoPin = 6;
unsigned int duration;
unsigned int distance;

void setup() {
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(triggerPin, LOW);
  delayMicroseconds (2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds (10);
  digitalWrite(triggerPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) / 29.1;
  Serial.print("Jarak = ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(1);
}

Penjelasan Kode Program HC-SR04 Tanpa Library

const int triggerPin = 7;
const int echoPin = 6;

Baris program di atas merupakan deklarasi port Arduino yang digunakan. Pin trigger terhubung pada port D7 dan pin echo terhubung pada port D6.

unsigned int duration;
unsigned int distance;

Program di atas adalah deklarasi dari beberapa variabel berjenis integer (int). Variabel duration berfungsi untuk menampung data waktu yang ditempuh suara dari transmitter hingga kembali ke receiver. Variabel distance berfungsi untuk menampung data jarak yang diperoleh berdasarkan variabel duration.

pinMode(triggerPin, OUTPUT);
Baris program di atas berfungsi untuk menginisialisasi pin triggerPin sebagai output.
pinMode(echoPin, INPUT);
Baris program di atas berfungsi untuk menginisialisasi pin echoPin sebagai input.
Serial.begin(9600);

Baris program di atas berfungsi untuk memulai komunikasi serial.

digitalWrite(triggerPin, LOW);
delayMicroseconds (2);
Baris program di atas berfungi untuk memberi logika LOW pada triggerPin selama 2 uS (mikro detik).
digitalWrite(triggerPin, HIGH);
delayMicroseconds (10);
Baris program di atas berfungi untuk memberi logika HIGH pada triggerPin selama 10 uS (mikro detik).
digitalWrite(triggerPin, LOW);

Baris program di atas berfungsi memberi logika LOW pada triggerPin.

duration = pulseIn(echoPin, HIGH);
Baris program di atas berfungsi untuk menghitung waktu (uS) yang digunakan suara dari mulai ditembakkan oleh transmitter hingga suara memantul dan kembali ke receiver.
distance = (duration / 2) / 29.1;
Baris program di atas berfungsi untuk memperoleh jarak antara sensor dengan benda di depannya. 2.91 adalah kecepatan suara (29.1 uS/cm).
delay(1);
Baris program di atas berfungsi untuk memberikan jeda waktu untuk menghindari ketidakstabilan sistem.

Video HC-SR04 Tanpa Library

Penghobi Elektronika