BAB IX. SENSOR ULTRASONIC
9.1 Tujuan
1. Mahasiswa mampu membuat interface mikrokontroler Arduino dengan modul
sensor ultra sonic HC-SR04
2. Mabasiswa mampu membuat program untuk mengendalikan modul Sensor
Ultrasonic
3. Mahasiswa mampu menggunakan modul sensor ultrasonic sebagai alat ukur jarak
9.2 Peralatan
1, Sebuah Komputer
2. Satu set trainer mikrokontroler
9.3 Teori
Seperti halnya kinerja dari sensor suara ultrasonic yang dimiliki lumba-lumba ataupun
kelelawar untuk mengukur jarak. Suara ultrasonic tidak bisa didengarkan manusia.
Sensor jarak ultrasonik sangat cocok dipakai untuk aplikasi-aplikasi yang perlu
melakukan pengukuran jarak. Secara umum, sensor ini sangat populer untuk dipakai
pada aplikasi-aplikasi robotika. Selain itu, sensor ini juga bisa bermanfaat dalam sistem
security dan sebagai alternatif lain penggantian sensor jarak infrared. Sensor jarak
ultrasonik yang dipakai dalam tugas akhir ini adalah sensor “Parallax's PING)))™
Ultrasonic Range Finder” atau biasa disebut dengan sensor PING. Berdasarkan datasheet,
sensor PING ini dapat digunakan untuk mengukur jarak benda sejauh 3 — 300 cm.
Dimensi dan kaki pin sensor PING ditunjukkan pada Gambar 9.1.
147Dari
Gambar 9.1. Sensor Ultrasonic
sumber datasheet yang —dipublikasikan—di_—_micropik.com
(htp://www.micropik.com/PDF/HCSRO4 pdf), sensor ultrasonik ini mempunyai
spesifikasi :
Power Supply :+5V DC
Quiescent Current : <2mA
Working Curmt: 1SmA
Effectual Angle: <15°
Ranging Distance : 2m — 400 cm/1" - 13f
Resolution : 0.3 cm
Measuring Angle: 30 degree
‘Trigger Input Pulse width: 10uS
Dimension: 45mm x 20mm x 15mm.
Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik
(40kHz) selama t8URST (200us) kemudian mendeteksi pantulannya. Sensor PING
148memancarkan gelombang ultrasonik sesuai dengan sinyal kontrol dari pengontrol mikro
(sinyal kontrol berupa pulsa trigger dengan {OUT min 2ps). Gelombang ultrasonik ini
melalui udara dengan Kecepatan 344 m/s, mengenai objek, kemudian memantul
kembali ke sensor. Sensor PING mengeluarkan pulsa output high pada pin SIG setelah
memancarkan gelombang ultrasonik. Setelah gelombang pantulan terdeteksi, sensor
PING akan membuat output low pada pin SIG. Lebar pulsa high (IN) akan sama
dengan lama waktu dipancarkan sampai diterima kembali pantulan gelombang ultrasonik
akibat objek. Maka jarak yang diukur dapat dilihat pada Persamaan berikut. Hustrasi cara
kerja sensor PING ditunjukkan pada Gambar 9.2. Untuk dapat lebih_ memahami
penggunaan cara kerja sensor PING, pada Gambar 9.2 ditunjukkan diagram waktu sensor
PING
8% B44) Is
2
Jarak meter
Sinyal ultrasonic
eee
» % waktu pantul ) | obyet
@ @
panulan
prey)
Torok yang dinkur
Gambar 9.2, Diagram Waktu Sensor Ultrasonic
Hal-hal yang dapat menyebabkan sensor PING tidak teliti untuk mengukur jarak suatu
objek adalah sebagai berikut :
1, Jarak objek tersebut diluar jangkauan ukur (<3em atau > 30cm).
2. Sudut objek terhadap sensor (0) < 45°, sudut yang terlalu keeil antara sensor jarak
ultrasonik dan objek schingga gelombang ultrasonik tidak dapat dipantulkan kembali
ke sensor.
3. Objek tersebut terlalu kecil untuk memantulkan gelombang ultrasonik kembali ke
sensor,
4. Jenis material objek yang bersifat meredam suara, bentuk permukaan yang tidak
149,beraturan, sudut ruangan, dan laine lain schingga mungkin tidak dapat
‘memantulkan gelombang ultrasonik yang cukup untuk dideteksi dengan teliti
et bon -
4 betcone e
--» ——illl__
+ fe touer
—_— Host Device tour 2 4s (min), 5 Hs typical
— PING))) Sensor thowoorr 750 ys
tounst 200 ys @ 40 kHz
Aovanax, 115 ps
tovaane 18.5 ps
Gambar 9.3. Diagram Sinyal Digital dalam Waktu
Selain itu, sensor PING dapat digunakan untuk mendeteksi permukaan air, tetapi tidak
dianjurkan untuk digunakan di lingkungan yang basah
Gambar 9.4, Karakteristik pendeteksian objek
(a) Sinyal tidak terpantul kembali(b) Objek terlalu kecil
1509.4 Percobaan 1 : Deteks
jek
HC-SRO4 Ultrasonic Sensor adalah sensor jarak / pendeteksi objek untuk menentukan
jarak jangkauan, komponen ini sering digunakan terutama untuk menghindari objek
dalam berbagai proyek robotika, Ini pada dasamya memberikan Arduino mata /
kesadaran spasial dan dapat mencegah robot dari menabrak atau jatuh dati meja, Ini
juga telah digunakan dalam aplikasi menara, penginderaan tingkat air, dan bahkan
sebagai sensor parkir. Proyek sedethana ini akan menggunakan sensor HC-SR04
dengan Arduino dan sketsa Processing untuk memberikan tampilan interaktif kecil
yang rapi pada layar komputer Anda.
Sa gheslese ee)
Gambar 9.5. Rangkaian Arduino dan Modul Ultrasonic
Kode Program :
#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Onboard LED
int maximumRange = 200; //Maximum range
needed int minimumRange = 0; // Minimum
range needed
151long duration, distance; //used to calculate distance
void setup() {
Serial. (9600);
pinMode(,
OUTPUT) +
pinMode(echoPin, INPUT);
PinMode(LEDPin, OUTPUT); //Use LED indicator
)
void loop() {
digitalWr(trigPin, Low);
@igitalWrite(trigPin, HIGH);
delayMicroseconds (10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin,
HIGH);
if (distance >= maximumRange || distance <=
minimumRange) (
/* Send a negative number to computer and Turn
LED ON to indicate "out of range" */
Serial.print1n("-1");
digitalwrite(LEDPin, HIGH);
}
else {
Serial.print1n (distance) ;
digitalWrite (LEDPin, LOW);
}
//Delay 50ms before next
reading. delay (50);
9.5 Percobaan 2 : Library Sensor Jarak
Pereobaan kali ini menggunakan library NewPing .h yang digunakan untuk
menggantikan fungsi dari konfigurasi pin dan konversi dari hasil perhitungan.
152Kode Program :
#include
#defin TRIGGER_PIN 12
#defineECHO_PIN = 11
#define MAX_DISTANC 200
§ Sonar (TRIGGER PIN, ECHO_PIN, MAX DISTANCE);
void setup() (
Serial.begin (115200
void loop()
delay (50);
Serial.print ("Ping:
"3
//mengambil nilai hasil pemantauan objek sekiter
Serial.print (sonar.ping_em(
))s Serial.println("cm");
Penjelasan Kode Program
include
Menambahkan header library NewPing.h pada aplikasi yang nantinya akan digunakan
untuk mengukur jarak dengan satuan tertentu, Feature yang dimiliki oleh library ini cukup
lengkap disamping bisa melihat objek sekitar juga dilengkapi dengan variasi satuan jarak
juga.
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
Inisialisasi library NewPing ke objek dengan nama sonar dengan dilengkapi beberapa
parameter yang dibutubkan diantaranya trigger pin sensor, echo pin sensor dan maksimal
jarak yang diukur. Jarak yang bisa diukur berdasarkan kemampuan sensor diantara 200
—400 em.
1539.6 Percobaan 3 : Sensor Jarak dan Servo
Percobaan Arduino dengan Sensor Ultrasonik digunakan untuk menggerakan Motor
Servo, yang logikanya apabila Hasil jarak yang terhitung pada sensor ultrasonik kurang
dari 1Sem, maka akan menggerakan Motor servo dari 90 derajat ke 180 derajat, lalu ke
0 derajat. Dan kembali ke 90 derajat lagi apabila jarak lebih dari 1S em :
Gambar 9.6. Rangkaian Modul Ultrasonic dan Servo
Kode Program
#include //Library untuk Sensor
Ultrasonic
#include //Library untuk Servo
#define trigPin 12 //set Trigger HCSRO4 di
Pin digital 12
#define echoPin 13 //Set Echo HCSRO4 di Pin digital
13
fidefine MAX_DISTANCE 500
//Set jarak maksimal
NewPing sonar(trigPin, echoPin, MAX DISTANCE);
int LEDhijau = 3, LEDmerah = 2;
//Set Pin LEDhijau dan LEDmerah
Servo myservo; //Buat object 1 buah motor servo
154,void setup()
Serial.begin (115200);
//Kecepatan komunikasi serial
pinMode(trigPin, OUTPUT);
//Set pin Trigger sebagai output
PpinMode(echoPin, INPUT);
//Set pin Echo sebagai input
PinMode (LEDmerah, OUTPUT);
//Set LEDmerah sebagai output,
PinMode (LEDhijau, OUTPUT);
//Set LEDhijau sebagai output,
myservo.attach(9); //Set servo pada pin PWM 9
void loop() {
int duration, jarak, posisi=0, i;
digitalWrite (trigPin, LOW);
delayMicroseconds (2);
digitalWrite (trigPin, HIGH);
delayMicroseconds (10);
digitalWrite(trigPin, Low);
duration = pulseIn(echoPin, HIGH);
jarak = (duration/2) / 29.1;
/Jatau distance =
duration/58.2;
Serial.print (jarak);
Serial.printin(" cm")
// Jarak (Cm) dapat anda sesuaikan
{
digitalWrite(LEDhijau, Low); //LEDhijau mati
digitalWrite(LEDmerah, HIGH) ;//LEDmerah hidup
myservo.write();
//Posisi servo pada 180
derajat delay(450); //Delay
digitalWrite(LEDmerah, Low); //LEDmerah
mati myservo.write (90.
//Posisi servo pada 90 derajat
delay (450); //Delay
digitalWrite(LEDmerah, HIGH);
//LBDmerah hidup
155myservo.write (0);
//Posisi servo pada 0 derajat
delay (450); //Delay
digitalWrite(LEDmerah, Low); //
myservo.write (90);
//Posisi servo pada 90 derajat
else{
//Jika jarak lebih dari yang ditentukan
digitalWrite(LEDmerah, Low); //LEDmerah mati
digitalWrite(LEDhijau, KIGH); //LEDh
myservo.write (90);
//Posisi servo pada 90 dera
a hidup
delay (450); //Delay
9.7 Latihan
1. Lihat kembali pereobaan ke 3, adakah script yang tidak dicksekusi dan berpeluang,
‘memperlambat proses!? silakan optimasi script pada percobaan ke-3 tersebut!
2. Buat percobaan dengan memanfaatkan HC-SR04 sebagai pengukur tinggi badan
tampilkan hasil pengukuran dalam LCD 12.
3. Desain percobaan Jain dengan menggunakan aplikasi fritzing rangkaian yang
menggunakan HC-SRO4. (setiap kelompok beda).
4. Pilih salah satu project, buat desain dengan menggunakan fritzing
Tipe A:
1. Pintu gerbang 2 motor (kel 4)
2. Pendeteksi Banjir (kel 1)
3. Tongkat Tunanetra (kel 2)
4. Pintu Garasi (kel 3)
Tipe B:
1, Menghitung jml pengunjung(Kel 5)
2. Bel Rumah Otomatis (Kel 2)
1563. Pengunei Pintu Otomatis (Kel 1)
4. Lampu Otomatis (Kel 4)
Kran air otomatis (Kel 3)
157