Interface Sensor Ultrasonic (HC-SR04) dengan Arduino

Sensor ultrasonic adalah sensor yang memanfaatkan gelombang ultrasonic (gelombang bunyi), cara kerjanya adalah sebagai berikut: pertama sensor ini memancarkan gelombang bunyi melalui pin TRIG, jika mengenai objek gelombang tersebut dipantulkan dan diterima oleh pin ECHO. Durasi waktu dari gelombang dipancarkan sampai dengan diterima kembali inilah yang dikonversi menjadi jarak. Berikut ini adalah tampak fisik sensor ultrasonic C-SR04:

pin sensor ultrasonic

Gambar 1. Sensor ultrasonic HC-SR04

Rumus untuk menghitung jarak dari sensor ke objek pantul adalah sebagai berikut:

\(S=\frac{340   t}{2}\)

 

S = jarak dari sensor ke objek
t = waktu yang diperlukan sejak gelombang dipancarkan sampai diterima lagi
340 adalah kecepatan bunyi (suara) di udara, karena gelombang bolak balik maka dibagi 2.

 

Menampilkan jarak menggunakan serial monitor

1. Buat rangkaian antara sensor ultrasonic dengan arduino seperti pada tabel di bawah ini:

Tabel 1. Koneksi HC-SR04 dengan Arduino
koneksi sensor ultrasonic ke arduino

 

Supaya lebih jelas, dapat dilihat pada rangkaian berikut ini:

sensor ultrasonic ke arduino

Gambar 2. Koneksi sensor ultrasonic dengan Arduino

2. Buat file baru, ketikkan sintaks berikut ini di IDE Arduino:


//Blog: pauzan.com
//Youtube: Muhammad Pauzan

#define echoPin 2 // pin 2 arduino koneksi ke pin echo dari sensor
#define trigPin 3 //pin 3 arduino koneksi ke pin trig dari sensor

// mendefinisikan variabel
long duration; // variabel duration bertipe data long
int distance; // variabel distance bertipe data int

void setup() {
  pinMode(trigPin, OUTPUT); // trigPin sebagai output
  pinMode(echoPin, INPUT); // echoPin sebagai input
  Serial.begin(9600);
  Serial.println("Ultrasonic Sensor HC-SR04");
  Serial.println("dengan Arduino UNO R3");
  delay(2000);
}
void loop() {
  // kondisi trigPin ke 0 (LOW)
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // atur trigPin HIGH (aktif) selama 10 ms
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // membaca echoPin, durasi waktu gelombang ke ms
  duration = pulseIn(echoPin, HIGH);
  // menghitung jarak
  distance = duration * 0.034 / 2; // kecepatan suara dibagi 2 (datang dan kembali)
  // menampilkan jarak di serial monitor
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(500);
}

3. Koneksi Arduino ke laptop/computer, upload kode di atas.
4. Klik kanan atas pada monitor, pembacaan jarak dapat dilihat pada serial monitor seperti gambar di bawah ini:

pembacaan jarak di serial monitor

Gambar 3. Pembacaan jarak oleh sensor ultrasonic pada serial monitor

 

Menampilkan pembacaan jarak pada I2C LCD

1. Kita tambahkan rangkaian I2C LCD pada rangkaian sebelumnya, koneksi tiap pin dapat dilihat pada tabel di bawah ini:

Tabel 2. Koneksi sensor ultrasonic dengan Arduino dan I2C LCD
koneksi sensor ultrasonik dengan arduino dan lcd

Supaya lebih jelas, rangkaiannya dapat dilihat pada gambar di bawah ini:

sensor ultrasonic ke arduino dan lcd

Gambar 4. Sensor jarak (HC-SR04) dengan Arduino dan LCD

 

2. Ketikkan kode program berikut ini pada IDE Arduino:


//Blog: pauzan.com
//Youtube: Muhammad Pauzan

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); //0x27 adalah alamat i2c

#define echoPin 2 // pin 2 arduino koneksi ke pin echo dari sensor
#define trigPin 3 //pin 3 arduino koneksi ke pin trig dari sensor

// mendefinisikan variabel
long duration; // variabel duration bertipe data long
int distance; // variabel distance bertipe data int

void setup() {
  pinMode(trigPin, OUTPUT); // trigPin sebagai output
  pinMode(echoPin, INPUT); // echoPin sebagai input
  lcd.begin();
  lcd.backlight(); //supaya lampu backlightnya nyala
  lcd.clear(); //layar lcd kosong
  lcd.setCursor(2,0); //2 berarti kolom ke-2 (ada 16 kolom), 0 berarti baris paling atas
  lcd.print("WELCOME TO");
  lcd.setCursor (2,1);
  lcd.print("pauzan.com");
  delay(2000);
  lcd.clear();
}

void loop() {
  // kondisi trigPin ke 0 (LOW)
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // atur trigPin HIGH (aktif) selama 10 ms
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // membaca echoPin, durasi waktu gelombang ke ms
  duration = pulseIn(echoPin, HIGH);

  // menghitung jarak
  distance = duration * 0.034 / 2; // kecepatan suara dibagi 2 (datang dan kembali)

  // menampilkan jarak di LCD
  lcd.setCursor(0,0);
  lcd.print("PENGUKUR JARAK");
  
  lcd.setCursor(0,1);
  lcd.print("Jarak: ");
  lcd.print(distance);
  lcd.print("cm");
  delay(500);
}

 

3. Koneksi arduinonya, lalu upload program yang sudah dibuat. Hasilnya dapat dilihat pada gambar di bawah ini:

menampilkan jarak menggunakan sensor ultrasonic dan lcd

Gambar 5. Pembacaan jarak menggunakan I2C LCD

 

KE DAFTAR ISI

 

Leave a Reply

Your email address will not be published. Required fields are marked *