Lompat ke konten Lompat ke sidebar Lompat ke footer

Arduino part 18. Sensor Ultrasonik (Sensor Jarak)

Sensor ultrasonik adalah sensor yang mengirimkan gelombang suara dan kemudian menerima pantulannya kembali, karena gelombang ultrasonik merupakan gelombang suara sehingga memiliki kecepatan yang sama dengan kecepatan suara. Dengan adanya nilai kecepatan dan waktu tempuh gelombang ultrasonic maka dapat diketahui jarak objek tersebut.

Sensor ini bisa dipakai untuk beberapa aplikasi misalnya untuk mendeteksi objek di depan/belakang mobil, mengukur jarak benda, dll.

Salah satu sensor ultrasonik yang sering dipakai orang dalam melakukan eksperimen adalah HC-SR04. Jarak yang bisa dideteksi sekitar 2 cm hingga 400 cm, dengan tingkat presisi sekitar 0,3 cm. Sudut deteksinya maksimum 15 derajat. Arus yang diperlukan sangat kecil sekitar 2 mili ampere dan tegangannya sekitar 5 Volt. Gelombang suara ultrasonic yang dipancarkan oleh sensor ini memiliki frekuensi 40 KHz. Frekuensi tersebut termasuk frekuensi suara ultrasonic jadi walupun masih merupakan gelombang suara akan tetapi suaranya tidak akan mampu didengar oleh telinga manusia yang memiliki batas maksimum hanya 20 KHz.

Gelombang suara ultrasonic akan dipancarkan oleh Transmitter (T), nah pada saat gelombang suara ultrasonic mengenai suatu benda maka gelombang suara ultrasonic tersebut akan memantul kembali menuju sensor ultrasonic. Gelombang suara pantulan tadi akan di terima oleh Receiver (R). Waktu tempuh saat sinyal ultraonic dipancarkan, lalu dipantulkan dan terakhir diterima maka bisa dicari jarak suatu objek tersebut dengan menghitung kecepatan suara dan waktu tempuh yang dibutuhkan. Sehingga hubungan antara jarak, kecepatan suara dan waktu tempuhnya dapat dirumuskan sebagai berikut :

Jarak = kecepatan suara x (T/2)

T adalah waktu tempuh dari saat sinyal ultrasonik dipancarkan hingga kembali. Kecepatan suara sekitar 343 m/detik. Pada rumus tertulis T dibagi dengan 2, hal ini dibagi dengan 2 karena waktu tempuh tersebut merupakan waktu untuk Pulang pergi sinyal sehingga harus dibagi 2.

Contoh:

Jika waktu tempuh pulang pergi sinyal ultrasonik terhadap objek didepannya adalah 0,01 detik maka tentukan jarak objek dari sensor ultrasonik.

Jawab

T = 0,01 detik

Sehingga

Jarak = 343 x (0,01/2) = 1,175 meter.

Bentuk sensor ultrasonik bisa dilihat pada gambar dibawah ini:

 



Jumlah pin sensor ultrasonik HC-SR04 ada  4 buah pin, rinciannya adalah:

Pin 1 = Vcc (Dihubungkan ke tegangan +5 V)
Pin 2 = Trig (Mengirimkan gelombang suara ultrasonic)
Pin 3 = Echo (Menerima gelombang suara ultrasonic)
Pin 4 = GND (Dihubungkan ke Ground)

Proses pengiriman sinyal ultrasonic oleh TRIG dan penerimaan sinyal ultrasonik oleh ECHO adalah sebagai berikut:

TRIG harus dalam keadaan HIGH paling tidak selama 10 mikro detik.

Modul Ultrasonik akan mengirimkan gelombang kotak dengan frekuensi 40 KHz.

Gelombang yang dikirim tersebut akan dipantau dengan sendirinya oleh modul ultrasonik. Dalam hal ini, waktu yang digunakan dari saat pengiriman sinyal hingga diterima balik adalah T. Pada waktu itulah pin ECHO akan berada dalam keadaan HIGH. Nah, waktu T ini dapat diperoleh dengan memberikan perintah di arduino : 

T = pulsein(PIN_ECHO, HIGH)

Karena T telah diperoleh, maka guna menghitung jaraknya dengan menggunakan rumus :

Jarak = Kecepatan suara * (T/2)

Seperti pada pembahasan di atas, kecepatan suara sebesar 343 m/detik atau sama dengan 34300 cm/detik. Adapun T yang dihasilkan oleh Arduino dalam satuan mikro detik. Karena 1 mikro detik = 10 -6 detik, maka jika T ingin dinyatakan dalam satuan detik rumusnya T/10-6. Oleh karena itu rumus untuk menghitung jarak dalam satuan centi meter (cm) adalah :

 Jarak = 34300 * (T/10-6)/2 = 0,0343*T/2  dalam satuan cm.

 

PENGUJIAN SENSOR HC-SR04

Langkah pertama sebelum membuat proyek adalah memastikan sensor telah bekerja baik tanpa ada kerusakan. Untuk pengujian ini kita membutuhkan alat dan bahan :

  • Arduino Uno
  • Sensor ultrasonic HC-SR04
  • Projectboard
  • Kabel penghubung

Rakitlah rangkaian seperti pada gambar berikut ini :


Ketiklah sketch program dibawah ini:

// -------------------------------------------
// Sensor jarak HC-SR04
// Oleh www.elektronikahendry.com
// -------------------------------------------
 
#define PIN_TRIG 7
#define PIN_ECHO 6
 
void setup()
{
  Serial.begin (9600);
  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);
}
 
void loop()
{
  // Berikan isyarat HIGH pada pin trig 10 mikrodetik
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);  // Tunda 10 mikrodetik
  digitalWrite(PIN_TRIG, LOW);
 
  // Baca hasilnya di pin echo
  double selang = pulseIn(PIN_ECHO, HIGH);
 
  // Hitung jarak yang diperoleh
  double jarak = 0.0343 * ( selang / 2);
 
  if (jarak > 400 || jarak <= 0)
  {
    Serial.println("di luar jangkauan sensor");
  }
  else
  {
    Serial.print(jarak);
    Serial.println(" cm");
  }
 
  delay(1000); // Tunda satu detik
}

Setelah anda selesai mengetikkan programnya, maka silahkan verify guna memastikan tidak ada kesalahan dalam pengetikan program. Jika semua sudah sukses maka upload/compile ke board arduino uno. Setelah sukses maka dekatkan objek didepan sensor, lalu bukalah serial monitor. Geserlah objek mendekat dan menjauhi sensor lalu amati tampilan pada serial monitor. Jika anda benar maka serial monitor akan menampilkan nilai jarak dari sensor ke objek didepannya. Seperti pada gambar ini:

 

PENJELASAN PROGRAM

Pada sketch program kita menggunakan pin 7 ke TRIG dan pin 6 ke ECHO. Itulah sebabnya kita mendefinisikan :

#define PIN_TRIG 7
#define PIN_ECHO 6

Supaya hasil pengukuran jarak bisa ditampilkan di komputer melalui serial monitor, maka kita harus melakukan inisialisasi port serial dengan pernyataan :

Serial.begin (9600);

Untuk menyatakan pin TRIG sebagai ouput dan pin ECHO sebagai input maka pernyataannya adalah:

pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);

Pemberian isyarat ke pin TRIG adalah selama 10 mikro detik logika 1 (HIGH) lalu setelah itu pin TRIG diberi logika 0 (LOW), maka pernyataannya adalah:

digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10); 
digitalWrite(PIN_TRIG, LOW);

Setelah TRIG diaktifkan maka tibalah pin ECHO yang siap membaca waktu tempuh sinyal saat mulai dipancarkan, dipantulan, lalu diterima, dengan membuat pernyataan sebagai berikut:

double selang = pulseIn(PIN_ECHO, HIGH);

waktu tempuh dari ECHO disimpan pada variabel yang bernama selang.

Untuk menghitung jaraknya berdasarkan kecepatan suara dan waktu tempuhnya adalah dengan membuat pernyataan sebagai berikut:

double jarak = 0.0343 * ( selang / 2);

Sebagaimana dijelaskan sebelumnya bahwa jarak maksimum objek yang dapat dideteksi sensor ultrasonic HC-SR04 sekitar 400 cm, maka hasil pengukuran bisa divalidasi melalui:

  if (jarak > 400 || jarak <= 0)
  {
    Serial.println("di luar jangkauan sensor");
  }
  else
  {
    Serial.print(jarak);
    Serial.println(" cm");
  }

Hasil pengukuran akan ditampilkan pada serial monitor. Silahkan saat menampilkan serial monitor atur baudratenya sesuai program yaitu 9600.

INDIKATOR JARAK

Sensor ultrasonic dapat diaplikasikan untuk mendeteksi jarak suatu objek yang ditampilkan dalam display LED. Pada proyek ini jarak suatu objek diwakili oleh 4 buah LED . Jika jaraknya jauh maka lampu LED jarak aman akan menyala, sebaliknya jika objek semakin mendekat maka lampu led level berikutnya akan menyala, jika objek sangat dekat sekali maka lampu LED yang terakhir akan menyala.

Untuk membuat Indikator jarak ini membutuhkan komponen-komponen sebagai berikut:

  • Arduino Uno
  • Lampu LED dengan berbagai macam warna sebanyak 4 buah
  • Resistor 330 ohm sebanyak 4 buah 
  • Kabel penghubung

 Silahkan rakit rangkaiannya seperti gambar berikut ini :


Lalu ketiklah sketch program ini:

//indikator jarak www.elektronikahendry.com
#define trigPin 7
#define echoPin 6
#define ledAman 8
#define led1 9
#define led2 10
#define led3 11
 
void setup()
{
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
 
  pinMode(ledAman, OUTPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}
 
void loop()
 {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 
  if (distance >= 16)
  {
    digitalWrite(ledAman, HIGH);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3,LOW);
  }
 
  else
 {
    digitalWrite(ledAman,LOW);
  }
 
  if (distance <= 15)
  {
      digitalWrite(led1, HIGH);
      digitalWrite(led2, LOW);
      digitalWrite(led3,LOW);
  }
 
  if (distance < 10)
 {
      digitalWrite(led2, HIGH);
      digitalWrite(led1, LOW);
      digitalWrite(led3,LOW);     
  }
 
  if (distance < 5)
{
    digitalWrite(led3, HIGH);
    digitalWrite(led2, LOW);
    digitalWrite(led1, LOW);
}
 
  delay(500);
}

Pada program diatas kita memanfaatkan perintah if untuk mengkondisikan penyalaan lampu LED. Pada rumus ini kita sedikit berbeda tetapi sebenarnya sama saja hasilnya.  If akan mendeteksi nilai distance, jika distancenya >= 16 cm maka lampu LED aman akan menyala, ini menandakan objek masih jauh atau aman. Akan tetapi jika jaraknya < 16 cm maka lampu LED aman akan mati. Jika jaraknya <= 15 maka lampu LED 1 akan menyala, jika jaraknya < 10 cm maka lampu LED 2 akan menyala, dan jika jarak objek sangat dekat sekali yaitu < 5 cm maka lampu LED 3 yang akan menyala. Pemilihan nilai jarak ini bisa kita atur sesuai keinginan dan aplikasi yang akan kita buat. Bahkan untuk indikator bisa ditambah dengan banyak LED.

Hasil proyek deteksi jarak bisa dilihat pada video di bawah ini:

Demikianlah tentang sensor jarak menggunakan ultrasonic, dan materi selanjutnya adalah membuat alat ukur jarak digital menggunakan display LCD.


Posting Komentar untuk "Arduino part 18. Sensor Ultrasonik (Sensor Jarak)"