Rabu, 18 Mei 2011

Cara Memakai Sensor Ultrasonik Ping dengan mikrokontroler ATmega8535

Ping))) Ultrasonic Range Finder, adalah modul pengukur jarak dengan ultrasonic buatan Paralax Inc. yang didesain khusus untuk teknologi robotika. Dengan ukurannya yang cukup kecil (2,1cm x 4,5cm), sensor seharga 300 ribu rupiah ini dapat mengukur jarak antara 3 cm sampai 300 cm. Keluaran dari Ping))) berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS. 


Pada dasanya, Ping))) terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker  ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya. Pada modul Ping))) terdapat 3 pin yang
digunakan untuk jalur power supply (+5V), ground dan signal. Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa tambahan komponen apapun.  Ping))) mendeteksi objek dengan cara mengirimkan suara ultrasonik dan kemudian “mendengarkan” pantulan suara tersebut. Ping))) hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara  ini akan merambat di udara dengankecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping))). Selama menunggu pantulan, Ping))) akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping))). Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping))) dengan objek. Selanjutnya mikrokontroler cukup mengukur lebar pulsa tersebut dan mengkonversinya dalam bentuk jarak dengan perhitungan sebagai berikut :

Jarak = (Lebar Pulsa/29.034uS)/2   (dalam cm) 
atau  
Jarak = (Lebar Pulsa x 0.034442)/2      (dalam cm) 
Karena 1/29.034 = 0.34442




Satu hal yang perlu diperhatikan adalah bahwa Ping))) tidak dapat mengukur objek yang permukaannya dapat menyerap suara, seperti busa atau sound damper lainnya. Pengukuran jarak juga akan kacau jika permukaan objek bergerigi dengan sudut tajam, seperti kertas yang dilipatlipat tempat kita meletakkan obat nyamuk bakar.  

Pada aplikasi ini mikrokontroler akan membaca lebar pulsa dari Ping))), dihitung kemudian ditampilkan ke LCD. Pastikan !!! : pin Signal (SIG) terhubung ke PINC.0 Tanpa resistor pullup.


Selanjutnya kita perlu membuat beberapa file header untuk menggunakan sensor ping ini. kita perlu membuat file delay_win.h, uson.h dan file uson.c

buat file tersebut bisa menggunaka notepad atau menggunakan avrstudio, berikut isi file tersebut.


isi file delay_win.h
#include <avr/io.h>


void delay_025ms(uint8_t s);
void delay_us(uint8_t s);


isi file uson.h


#define DDR_Uson DDRC
#define PORT_Uson PORTC
#define PIN_Uson PINC
#define Front_Uson 0


uint8_t get_distance(char side);


isi file uson.c


#include <avr/io.h>
#include "uson.h"
#include "delay_win.h"


uint8_t get_distance(char side) // fungsi untuk mendapatkan jarak 
{
uint8_t distance = 0;


DDR_Uson |=_BV(side);
PORT_Uson|=_BV(side);
delay_us(3);
PORT_Uson &=~_BV(side);
DDR_Uson &=~_BV(side);
loop_until_bit_is_set(PIN_Uson,side); 


// ultasonik sudah mengirimkan sinyal


while(bit_is_set(PIN_Uson,side) && distance<=254)
{
distance = distance + 1;
delay_us(24);
}
if (distance >= 254)
distance = 255;
else if (distance<=8)
distance=2;
else if (distance==9)
distance=3;
else if (distance>9 && distance<=31)
distance=((distance-2)/2);
else 
distance=((distance-1)/2);


return distance;
}


load file tersebut ke dalam project di software avrstudio dan jangan lupa file untuk LCD juga disertakan
berikut screenshoot program di avrstudio untuk mencari jarak dengan sensor uson














Tidak ada komentar:

Posting Komentar