Kali ini akan dibahas mengenai bagaimana cara
membuat alat yang dapat mengukur jarak maksimal jarak 3 meter dengan
menggunakan sensor PING))), sensor PING))) memang dari segi harga lebih mahal
dibanding sensor jarak lainnya seperti HC-SRF04 dan sejenisnya, namun karema
mahal itu membuat sensor ini memiliki keunggulan dan kualitas tersendiri. Alat
ini menggunakan ATMega16 sebagai pengolah data output yang diberikan oleh
sensor PING))) yang kemudian akan ditampilkan data jarak ke layar LCD 16x2,
Alat
ini dapat mengukur jarak maksimal 3 meter dan minimal 2 cm seperti yang tertera
di datasheet, untuk aplikasi dan pengembangan ini yaitu bisa untuk pengukur
ketinggian air, untuk robot avoider dan lainnya. Alat ini juga bisa mengganti
cara konvensional yang menggunakan penggaris atau meteran untuk mengukur
panjang atau jarak suatu benda.
Bentuk dan Konfigurasi Sensor PING)))
Seperti yang telah dilaskan sebelumnya bahwa
sensor PING))) memiliki 3 buah pin untuk dikoneksikan ke mikrokontroller, yaitu
vcc, gnd dan SIG, output sensor PING))) berada pada pin SIG dan dihubungkan ke
PORTB.0 mikrokontroller, untuk jarak pengukuran sensor PING))) maksimal 3 meter
dan minimal 2 cm seperti umumnya ultrasonic sensor lainnya. Selain itu sensor
PING))) juga memiliki spesifikasi lain yang diambil dari datasheet
Jadi
prinsip kerja sensor ini yaitu terdapat port SIG pada sensor PING))), port ini
digunakan untuk dua fungsi, fungsi input dan output, untuk fungsi input
dinamakan sigin dan untuk fungsi output dinamakan sigout, yang harus dilakukan
untuk menggunakan sensor ini yaitu pertama
memberikan pulsa 1 sebagai sigout selama 10uS setelah itu di 0 kan
kembali, kemudian port SIG difungsikan sebagai input untuk menghitung pulsa umpan
balik yang didapat, sigout diberikan pulsa 1 dan menunggu hingga pulsa sigin
bernilai 1, saat pulsa sigin bernilai 1 maka aka dilakukan perhitungan
menggunakan TIMER1 sampai pulsa sigin bernilai 0 kembali, lalu stop TIMER1 dan
data sudah didapat, begitu seterusnya, untuk lebih jelasnya perhatikan Gambar
6.41c berikut.
PROGRAM BASCOM AVR
$regfile
= "m16def.dat"
$crystal
= 12000000
Config
Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config
Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config
Lcd = 16 * 2
Config
Timer1 = Timer , Prescale = 64
Sigout
Alias Portb.0
Sigin
Alias Pinb.0
Dirsig
Alias Ddrb.0
Dim
Data_timer As Integer
'==================================================
Cls
Utama:
Gosub
Ambil_datatimer
Data_timer
= Data_timer / 10
Locate
1 , 1
Lcd
Data_timer ; " cm"
Waitms
200
Cls
Goto
Utama
'==================================================
Ambil_datatimer:
Dirsig
= 1
Set
Sigout 'bangkitkan pulsa
Waitus
10
Reset
Sigout
'terima pulsa ubah dulu jadi input
Dirsig
= 0 'jadi input
Set
Sigout 'pull up internal
diaktifkan
Bitwait
Sigin , Set
Data_timer
= 0
Timer1
= 0
Start
Timer1
Do
If
Sigin = 0 Then
Data_timer
= Timer1
Stop
Timer1
Exit
Do
End
If
If
Tifr.2 = 1 Then 'cek register timer1
overflow?
Stop
Timer1
Tifr.2
= 1
Data_timer
= 0
Exit
Do
End
If
Loop
Stop
Timer1
Return
Mas, kok hasil timer nya dibagi 10?
ReplyDeleteSalam kenal: Muhammad Aldrin