• Tidak ada hasil yang ditemukan

SENSOR ULTRASONIC TUJUAN

Dalam dokumen Buku Petunjuk Praktikum Mikrokontroler (Halaman 103-111)

1. Mahasiswa mampu membuat interface mikrokontroler Arduino dengan modul sensor ultra sonic HC-SR04

2. Mahasiswa mampu membuat program untuk mengendalikan modul Sensor Ultrasonic 3. Mahasiswa mampu menggunakan modul sensor ultrasonic sebagai alat ukur jarak

PERALATAN

1. Sebuah Komputer

2. Satu set trainer mikrokontroler

TEORI DASAR

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 3cm sampai 300cm. Dimensi dan kaki pin sensor PING ditunjukkan pada Gambar 13.1.

Gambar 13.1. Sensor Ultrasonic

Sensor PING mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik (40kHz) selama tBURST (200µs) kemudian mendeteksi pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai dengan sinyal kontrol dari pengontrol mikro (sinyal kontrol berupa pulsa trigger dengan tOUT min 2µs). Gelombang ultrasonik ini melalui udara dengan kecepatan 344m/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 (tIN) akan sama dengan lama waktu dipancarkan sampai diterima kembali pantulan gelombang

104 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

ultrasonik akibat objek. Maka jarak yang diukur dapat dilihat pada Persamaan berikut. Ilustrasi cara kerja sensor PING ditunjukkan pada Gambar 13.2. Untuk dapat lebih memahami penggunaan cara kerja sensor PING, pada Gambar 2.13 ditunjukkan diagram waktu sensor PING.

Hal-hal yang dapat menyebabkan sensor PING tidak teliti untuk mengukur jarak suatu objek adalah sebagai berikut :

1. Jarak objek tersebut diluar jangkauan ukur ( < 3cm atau > 300cm ).

2. Sudut objek terhadap sensor (θ) < 45°, sudut yang terlalu kecil antara sensor jarak ultrasonik dan objek sehingga 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 beraturan, sudut ruangan, dan lain- lain sehingga mungkin tidak dapat memantulkan gelombang ultrasonik yang cukup untuk dideteksi dengan teliti.

105 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

Selain itu, sensor PING dapat digunakan untuk mendeteksi permukaan air, tetapi tidak dianjurkan untuk digunakan di lingkungan yang basah.

Gambar 13.3. Deteksi Permukaan

Percobaan 17

HC-SR04 Ultrasonic Sensor adalah sensor jarak / jarak yang sangat terjangkau yang telah digunakan terutama untuk menghindari objek dalam berbagai proyek robotika. Ini pada dasarnya memberikan Arduino mata / kesadaran spasial dan dapat mencegah robot dari menabrak atau jatuh dari meja. Ini juga telah digunakan dalam aplikasi menara, tingkat air penginderaan, dan bahkan sebagai sensor parkir. Proyek sederhana ini akan menggunakan sensor HC-SR04 dengan Arduino dan sketsa Processing untuk memberikan tampilan interaktif kecil yang rapi pada layar komputer Anda.

#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

106 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

void setup() {

Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);

pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)

}

void loop() {

/* The following trigPin/echoPin cycle is used to determine the

distance of the nearest object by bouncing soundwaves off of it. */ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

//Calculate the distance (in cm) based on the speed of sound.

distance = duration/58.2;

if (distance >= maximumRange || distance <= minimumRange){

/* Send a negative number to computer and Turn LED ON to indicate "out of range" */

Serial.println("-1");

digitalWrite(LEDPin, HIGH); }

else {

/* Send the distance to the computer using Serial protocol, and turn LED OFF to indicate successful reading. */

Serial.println(distance); digitalWrite(LEDPin, LOW); }

//Delay 50ms before next reading.

delay(50); }

Percobaan 18

Untuk aplikasi pengukuran jarak dengan perubahan satuan yang dapat diubah-ubah (inci, cm, m, dan mm) dapat dituliskan program sebagai berikut, pin 6 dan pin 7 sebagai tombol simulasinya hasil pengukuran ditampilkan dilayar LCD text 16X2 :

#include <NewPing.h> #include <LiquidCrystal.h>

107 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

LiquidCrystal lcd(10, 9, 5, 4, 3, 2); #define TRIGGER_PIN 12 #define ECHO_PIN 11

#define MAX_DISTANCE 300 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

int tb_ukuran = 6; int tb_pindah = 7; int menu = 1; double inchi = 2.54; boolean swit; double jarak;

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {

Serial.begin(9600); // Open serial monitor at 9600 baud to see ping results. lcd.begin(16, 2);

pinMode(tb_ukuran,INPUT_PULLUP); pinMode(tb_pindah,INPUT_PULLUP);

unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS). Serial.print("Jarak: ");

Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)

Serial.println(" cm"); swit = false; } void tombol() { if (digitalRead(tb_pindah) == LOW) { menu++; // lcd.clear(); delay(500);

108 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

if (menu > 4) menu = 1; } else {} if (digitalRead(tb_ukuran) == LOW) { swit = !swit; delay(500);} else {swit = swit;} }

void ubah_ukuran() {

while (swit == true) { lcd.setCursor(0,0); lcd.print(">Satuan Ukuran <"); lcd.setCursor(0,1); lcd.print(" "); if (menu == 1) { lcd.setCursor(5,1); lcd.print("Meter"); } else if (menu == 2) { lcd.setCursor(3,1); lcd.print("Centimeter"); } else if (menu == 3) { lcd.setCursor(3,1); lcd.print("Millimeter"); } else if (menu == 4) { lcd.setCursor(5,1); lcd.print("Inchi"); }

109 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

else {} tombol(); delay(500); } } void loop() { tombol(); ubah_ukuran();

delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.

double uS = sonar.ping();

// Send ping, get ping time in microseconds (uS).

lcd.setCursor(0,0);

lcd.print("Ukur Jarak UltraSonic"); lcd.setCursor(0,1);

lcd.print("Jarak: "); if (menu == 1) {

jarak = (uS / US_ROUNDTRIP_CM)/100; lcd.setCursor(7,1);

lcd.print(jarak); // Convert ping time to distance in m and print result (0 = outside set distance range) lcd.setCursor(14,1); lcd.print("mt"); } if (menu == 2) {

jarak = (uS / US_ROUNDTRIP_CM); lcd.setCursor(7,1);

lcd.print(jarak); // Convert ping time to distance in cm and print result (0 = outside set distance range)

lcd.setCursor(14,1); lcd.print("cm");

110 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

}

if (menu == 3) {

jarak = (uS / US_ROUNDTRIP_CM)*10; lcd.setCursor(7,1);

lcd.print(jarak); // Convert ping time to distance in mm and print result (0 = outside set distance range) lcd.setCursor(14,1); lcd.print("mm"); } if (menu == 4) {

jarak = (uS / US_ROUNDTRIP_CM)/inchi; lcd.setCursor(7,1);

lcd.print(jarak); // Convert ping time to distance in inchi and print result (0 = outside set distance range) lcd.setCursor(12,1); lcd.print("inch"); } }

LANGKAH-LANGKAH PERCOBAAN

1. Nyalakan computer dengan program Arduino !

2. Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB ! 3. Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan ! 4. Ketiklah program yang diatas pada software Arduino !

5. Lakukan verifikasi terhadap program, apakah terjadi error atau tidak !

6. Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam mikrokontroler ! 7. Amati hasilnya apakah sudah sesuai dengan perintah instruktur atau belum, kalau belum

111 LABORATORIUM MIKROKONTROLER UNIVERSITAS NAROTAMA SURABAYA

BAB XIV : PERCOBAAN REAL TIME CLOCK

Dalam dokumen Buku Petunjuk Praktikum Mikrokontroler (Halaman 103-111)

Dokumen terkait