Arduino Project Mengukur Jarak dengan Ultrasonic Sensor HC-SR04


Dalam tutorial Arduino Indonesia kali ini akan mengulas mengenai penggunaan sensor ultrasonic HC-SR04 untuk mengukur jarak.



Table of Contents






HC-SR04


Ultrasonic sensor merupakan salah satu jenis sensor yang cukup mudah digunakan untuk mengukur jarak antara sensor tersebut dengan benda lain atau penghalang yang ada di depannya. Dalam artikel tutorial Arduino ini menggunakan ultrasonic sensor HC-SR04, yang memiliki satu transmitter dan satu receiver. Ultrasonic sensor HC-SR04 memiliki empat buah pin, yakni Vcc (+5V), Trig (Trigger), Echo, dan GND. Pin trigger merupakan output sedangkan pin echo merupakan input, dengan catu daya yang digunakan sebesar 5 volt.
Cara kerja ultrasonic sensor HC-SR04 cukup sederhana, dengan pin trigger dan echo. Akan dihasilkan signal +5V oleh pin trigger selama sekitar 10 microsecond sebagai pemicu sensor.
Ketika ultrasonic sensor menerima signal pemicu tersebut, sensor HC-SR04 akan memancarkan signal ultrasonic dari transmitter. Signal ultrasonic tersebut kemudian akan dipantulkan kembali setelah mengenai benda penghalang yang ada di depannya. Pantulan signal ultrasonic tersebut kemudian akan ditangkap oleh bagian receiver dari sensor, yang mana akan memicu pin echo menjadi kondisi HIGH.



Lamanya waktu (durasi) dari pin echo tetap dalam kondisi HIGH, tergantung dari signal yang dipantulkan tersebut. Jarak benda dengan sensor dapat diukur dari durasi signal tersebut dipantulkan kembali.

Wiring Diagram



Berikut ini adalah wiring diagram untuk mengukur jarak dengan ultrasonic sensor HC-SR04.

<img src="arduino_hcsr04.png" alt="arduino_hcsr04">


Source Code


Berikut ini adalah source code (sketch) untuk mengukur jarak dengan ultrasonic sensor HC-SR04.

/*
Program Mengukur Jarak
Arduino Uno Ultrasonic Sensor HC-SR04

Loki Lang
*/

#define echoPin 2
#define trigPin 3
long duration, distance, ultraSensor;

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

void loop()
{
  sensorUltrasonic(trigPin, echoPin);
  ultraSensor = distance;
  Serial.println(ultraSensor);
}

void sensorUltrasonic(int pinTrigger, int pinEcho)
{
  digitalWrite(pinTrigger, LOW);
  delayMicroseconds(2);
  digitalWrite(pinTrigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(pinTrigger, LOW);
  duration = pulseIn(pinEcho, HIGH);
  distance = (duration / 2) / 29.1;
  delay(100);
}