Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 23 Juni 2026

Arduino dan Sensor Ultrasonik HC-SR04 - Cara Mengukur Jarak dengan Akurat

Sensor ultrasonik merupakan salah satu sensor yang paling sering digunakan dalam proyek Arduino karena kemampuannya mengukur jarak tanpa perlu menyentuh objek secara langsung. Sensor ini bekerja dengan memanfaatkan gelombang ultrasonik untuk mendeteksi keberadaan objek dan menghitung jaraknya dari sensor. Berkat kemampuannya tersebut, sensor ultrasonik banyak diterapkan pada robot penghindar rintangan, sistem parkir otomatis, pengukur ketinggian air, sistem keamanan, hingga berbagai proyek Internet of Things (IoT).

 

Salah satu sensor ultrasonik yang paling populer adalah HC-SR04. Sensor ini memiliki harga yang relatif murah, mudah digunakan, dan mampu mengukur jarak dengan tingkat akurasi yang cukup baik. Dengan bantuan Arduino Uno, data jarak yang diperoleh dari sensor dapat diolah untuk berbagai keperluan otomatisasi maupun monitoring.

 

Pada tutorial ini, Anda akan mempelajari cara kerja sensor ultrasonik HC-SR04, fungsi setiap pin yang dimilikinya, cara menghubungkannya ke Arduino, serta cara membuat program untuk mengukur jarak suatu objek. Selain itu, Anda juga akan mempelajari teknik penyaringan data (filtering) untuk mengurangi noise atau gangguan pada hasil pengukuran sehingga data yang diperoleh menjadi lebih stabil dan akurat.

Perangkat Keras yang Dibutuhkan

- Arduino Uno R3

- Kabel USB

- Sensor ultrasonik HC-SR04

- Kabel jumper

Mengenal Sensor Ultrasonik HC-SR04

HC-SR04 adalah sensor yang digunakan untuk mengukur jarak menggunakan gelombang ultrasonik dengan frekuensi sekitar 40 kHz. Sensor ini mampu mendeteksi objek dalam rentang beberapa sentimeter hingga beberapa meter tergantung kondisi lingkungan dan karakteristik objek yang diukur.

Keunggulan utama sensor ini adalah kemampuannya melakukan pengukuran tanpa kontak fisik. Sensor cukup memancarkan gelombang ultrasonik, kemudian menghitung waktu yang dibutuhkan gelombang tersebut untuk kembali setelah memantul dari objek.

 

Baca juga: Arduino dan Sensor Cahaya (LDR) - Cara Membaca Intensitas Cahaya Menggunakan Arduino Uno 

Pin Sensor Ultrasonik HC-SR04

Sensor HC-SR04 memiliki empat pin utama yang digunakan untuk komunikasi dengan Arduino.

1. Pin VCC

Pin VCC berfungsi sebagai sumber tegangan untuk sensor dan biasanya dihubungkan ke pin 5V Arduino.

2. Pin GND

Pin GND digunakan sebagai jalur ground yang dihubungkan ke GND Arduino.

3. Pin TRIG

Pin TRIG digunakan untuk menerima sinyal pemicu dari Arduino. Ketika menerima pulsa selama 10 mikrodetik, sensor akan mulai memancarkan gelombang ultrasonik.

4. Pin ECHO

Pin ECHO digunakan untuk mengirimkan sinyal kembali ke Arduino. Durasi pulsa pada pin ini akan digunakan untuk menghitung jarak objek yang terdeteksi.

Cara Kerja Sensor Ultrasonik

Proses pengukuran jarak menggunakan sensor ultrasonik berlangsung dalam beberapa tahap.

1. Pertama, Arduino mengirimkan pulsa selama 10 mikrodetik ke pin TRIG.

2. Setelah menerima pulsa tersebut, sensor secara otomatis memancarkan gelombang ultrasonik ke arah depan.

3. Ketika gelombang mengenai suatu objek, gelombang akan dipantulkan kembali menuju sensor.

4. Sensor kemudian mendeteksi gelombang pantul tersebut dan menghitung waktu perjalanan gelombang sejak dipancarkan hingga diterima kembali.

5. Selanjutnya, sensor menghasilkan pulsa pada pin ECHO dengan durasi yang sesuai dengan waktu tempuh gelombang ultrasonik.

6. Arduino mengukur durasi pulsa tersebut dan menggunakannya untuk menghitung jarak antara sensor dan objek.

Cara Menghitung Jarak dari Sensor Ultrasonik

Untuk mendapatkan nilai jarak, Arduino hanya perlu melakukan dua langkah utama, yaitu:

1. Mengirimkan pulsa 10 mikrodetik ke pin TRIG.

2. Mengukur durasi pulsa pada pin ECHO.

Nilai durasi yang diperoleh kemudian digunakan untuk menghitung jarak objek. Kecepatan suara di udara adalah sekitar 340 meter per detik atau setara dengan 0,034 cm per mikrodetik. Karena gelombang harus bergerak menuju objek dan kembali lagi ke sensor, maka jarak sebenarnya diperoleh dengan membagi dua jarak total perjalanan gelombang. Rumus yang digunakan yaitu:

Jarak (cm) = 0.017 × Durasi Pulsa (µs)

Arduino dan Sensor Ultrasonik

Arduino Uno memiliki kemampuan untuk menghasilkan pulsa dengan durasi tertentu serta mengukur lebar pulsa yang diterima pada pin input. Oleh karena itu, hanya diperlukan dua pin Arduino untuk berkomunikasi dengan sensor HC-SR04, yaitu:

1. Satu pin digunakan untuk mengontrol TRIG.

2. Satu pin digunakan untuk membaca sinyal ECHO.

Dalam contoh tutorial ini, pin digital 9 digunakan untuk TRIG dan pin digital 8 digunakan untuk ECHO. 

Cara Memprogram Sensor Ultrasonik

1. Mengirim Pulsa ke Pin TRIG

Arduino menghasilkan pulsa selama 10 mikrodetik menggunakan kombinasi fungsi digitalWrite() dan delayMicroseconds().

 

digitalWrite(9, HIGH);

delayMicroseconds(10);

digitalWrite(9, LOW);

 

2. Membaca Durasi Pulsa dari Pin ECHO

Durasi pulsa dibaca menggunakan fungsi pulseIn().

 

duration_us = pulseIn(8, HIGH);

 

3. Menghitung Jarak

Setelah durasi diperoleh, jarak dapat dihitung menggunakan rumus berikut:

 

distance_cm = 0.017 * duration_us;

 

Wiring Diagram Arduino dan Sensor Ultrasonik HC-SR04

Wiring Diagram Arduino dan Sensor Ultrasonik HC-SR04

Program Arduino Mengukur Jarak Menggunakan HC-SR04

Berikut adalah program dasar untuk membaca jarak menggunakan sensor ultrasonik HC-SR04.


/*

 * Arduino - Ultrasonic Sensor HC-SR04

 */


int trigPin = 9;

int echoPin = 8;


float duration_us, distance_cm;


void setup() {


  Serial.begin(9600);


  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

}


void loop() {


  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

 digitalWrite(trigPin, LOW);


  duration_us = pulseIn(echoPin, HIGH);


  distance_cm = 0.017 * duration_us;


  Serial.print("Distance: ");

  Serial.print(distance_cm);

  Serial.println(" cm");


  delay(500);

}


Penjelasan Program 

Program diawali dengan menentukan pin TRIG dan ECHO yang digunakan untuk komunikasi dengan sensor. Pada fungsi loop(), Arduino mengirimkan pulsa ke pin TRIG untuk memulai proses pengukuran. Setelah itu, fungsi pulseIn() digunakan untuk mengukur durasi pulsa yang muncul pada pin ECHO. Durasi tersebut kemudian dikonversi menjadi jarak menggunakan rumus yang telah dijelaskan sebelumnya. Hasil pengukuran ditampilkan pada Serial Monitor setiap 500 milidetik.

Langkah-langkah Menjalankan Program

1. Hubungkan sensor HC-SR04 ke Arduino sesuai dengan konfigurasi pin yang digunakan.

2. Buka Arduino IDE dan salin kode program yang telah disediakan.

3. Pilih board dan port yang sesuai, kemudian unggah program ke Arduino.

4. Setelah proses upload selesai, buka Serial Monitor.

5. Gerakkan tangan atau objek lain di depan sensor dan amati perubahan nilai jarak yang muncul pada layar Serial Monitor.

 


Mengurangi Noise pada Pengukuran Sensor Ultrasonik

Dalam kondisi nyata, hasil pengukuran sensor ultrasonik sering kali mengalami fluktuasi atau noise akibat pantulan gelombang yang tidak sempurna, kondisi lingkungan, maupun interferensi dari objek di sekitar sensor. Jika data yang berisik tersebut digunakan secara langsung, sistem otomatisasi dapat bekerja tidak stabil atau menghasilkan respons yang tidak diinginkan. Untuk mengatasi masalah tersebut, kita dapat menerapkan teknik filtering data.

Algoritma Penyaringan Data

Metode yang digunakan pada contoh ini terdiri dari beberapa langkah, antara lain:

1. Pertama, sensor melakukan sejumlah pengukuran dan menyimpannya ke dalam array.

2. Selanjutnya seluruh data diurutkan dari nilai terkecil hingga terbesar.

3. Setelah proses pengurutan selesai, beberapa data terkecil dan terbesar dianggap sebagai noise sehingga tidak digunakan dalam perhitungan.

4. Nilai akhir diperoleh dengan menghitung rata-rata dari data yang berada di tengah.

Pada contoh ini sensor mengambil 20 sampel data, lima nilai terkecil diabaikan, lima nilai terbesar diabaikan, dan sepuluh nilai tengah digunakan untuk menghitung rata-rata. 

Program Arduino dengan Filter Noise 

 

#define TRIG_PIN 9

#define ECHO_PIN 8

float filterArray[20];

float distance;

void setup() {

  Serial.begin(9600);

  pinMode(TRIG_PIN, OUTPUT);

  pinMode(ECHO_PIN, INPUT);

}

void loop() {

  for (int sample = 0; sample < 20; sample++) {

    filterArray[sample] = ultrasonicMeasure();

    delay(30);

  }

  for (int i = 0; i < 19; i++) {

    for (int j = i + 1; j < 20; j++) {

      if (filterArray[i] > filterArray[j]) {

        float swap = filterArray[i];

        filterArray[i] = filterArray[j];

        filterArray[j] = swap;

      }

    }

  }

  double sum = 0;

  for (int sample = 5; sample < 15; sample++) {

    sum += filterArray[sample];

  }

  distance = sum / 10;

  Serial.print("Distance: ");

  Serial.print(distance);

  Serial.println(" cm");

}

float ultrasonicMeasure() {

  digitalWrite(TRIG_PIN, HIGH);

  delayMicroseconds(10);

  digitalWrite(TRIG_PIN, LOW);

  float duration_us = pulseIn(ECHO_PIN, HIGH);

  float distance_cm = 0.017 * duration_us;

  return distance_cm;


}


Keuntungan Menggunakan Filter 

Dengan menerapkan teknik filtering, hasil pembacaan sensor menjadi lebih stabil dibandingkan menggunakan satu kali pengukuran. Metode ini sangat berguna untuk proyek yang membutuhkan data jarak yang konsisten, seperti robot penghindar rintangan, sistem parkir otomatis, pengukur level air, dan berbagai aplikasi industri.

 

Baca juga: Arduino Mengontrol Motor Servo Menggunakan Sensor Cahaya (LDR)

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "Arduino dan Sensor Ultrasonik HC-SR04 - Cara Mengukur Jarak dengan Akurat"