Anda di halaman 1dari 5

Nama

: Derry Tri Saputra

Kelas

: 4 EA

PROGRAM PENGUKUR JARAK DENGAN SENSOR ULTRASONIK


SRF-04 dengan ATMEGA 8535
Contoh program :
$regfile = m8535def.dat
$crystal = 12000000
Dim Jarak As Word , K As Word
_trig Alias Portb.0
_echo Alias Pinb.1
Ddrb.0 = 1
Ddrb.1 = 0
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 =
Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2
Cursor Off
Locate 1 , 1
Lcd SENSOR ULTRASONIK
Locate 2 , 1
Lcd PENGUKUR JARAK
Wait 1
Cls
Locate 1 , 1
Lcd Jarak=
Do
Gosub Ukur_jarak
Locate 1 , 7
Lcd Jarak ; cm
Wait 1
Loop
End
Ukur_jarak:
Jarak = 0
_trig = 1
Waitus 15
_trig = 0
Bitwait _echo , Set
For K = 0 To 300
If _echo = 1 Then Incr Jarak
Waitus 58
Next
Return

Penjelasan tentang program :


$regfile = m8535def.dat
Baris 1 : Maksudnya untuk menyesuaikan jenis mikrokontroler yang digunakan. Karena
mikro yang digunakan jenis Atmega16, maka ditulis seperti yang diatas.
$crystal = 12000000
Baris 2 : Maksudnya jenis crystal yang digunakan adalah jenis crystal yang memiliki
frekuensi 12,000 MHz.
Dim Jarak As Word , K As Word
Baris 3 : Merupakan sebuah variabel yang gunanya untuk menampung hasil-hasil
perhitungan.
_trig Alias Portb.0
Baris 4 : Untuk memudahkan pemrograman, kita buat koneksi antara sensor dengan port
mikrokontroler sebagai alias. Perhatikan skematik. Pin Trig terhubung ke PORTB.0. dibuat
sebagai output.
_echo Alias Pinb.1
Baris 5 : Pin Echo terhubung dengan PORTB.1, dibuat sebagai input. Kenapa ? Karena nanti
berfungsi untuk membaca kondisi logika sehingga dibuat sebagai input. Karena itu nama
registernya PINB.1
Ddrb.0 = 1
Ddrb.1 = 0
Baris 6 & 7 : Berikutnya PORTB.0 dibuat sebagai output, karena untuk men-trigger sensor.
PORTB.1 sebagai input, berfungsi untuk membaca logika pin Echo.
Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 =
Portc.6 , Db7 = Portc.7
Baris 8 : Maksudnya menyesuaikan koneksi antara pin LCD dengan Port Mikronya.
Config Lcd = 16 * 2

Baris 9 : Merupakan inisialisasi jenis LCD yang digunakan. Karena LCD yang digunakan
jenis 216, maka ditulis seperti diatas.
Cursor Off
Baris 10 : ini maksudnya untuk menonaktifkan kursor.
Locate 1 , 1
Lcd SENSR ULTRASONIC
Baris 11 & 12 : berarti kita menampilkan karakter SENSOR ULTRASONIK pada posisi baris
ke-1, dan kolom ke-1.
Locate 2 , 1
Lcd PENGUKUR JARAK
Baris 13 & 14 : berarti kita menampilkan karakter PENGUKUR JARAK pada posisi baris ke2 dan kolom ke-1.
Wait 1
Baris 15 : Waktu tunda selama 1 detik
Cls
Baris 16 : untuk menghapus tampilan di LCD sebelumnya
Locate 1 , 1
Lcd Jarak=
Baris 17 & 18 : berarti kita menampilkan karakter Jarak= pada posisi baris ke-1, dan kolom
ke-1.
DoLoop
Baris 19 & 24 : merupakan perintah untuk melakukan perulangan (Do.Loop). Dan perintah
ini akan mengulang yang ada diantara Do dan Loop yaitu pada baris 20 sampai baris 23.
Gosub Ukur_jarak

Baris 20 : memanggil sub rutin ukur_jarak. Sub rutin ukur_jarak sengaja di buat
tersendiri/terpisah supaya menjadi mudah kita kembangkan. Aplikasiaplikasi yang lain akan
selalu menggunakan sub rutin ini.
Locate 1 , 7
Lcd Jarak ; cm
Wait 1
Baris 21, 22, 23 : berarti kita menampilkan karakter cm pada posisi baris ke-1, dan kolom ke7 selama 1 detik.
Jarak = 0
Baris 27 : Pertama kali kosongkan nilai variabel Jarak. Variabel ini nanti yang diapakai untuk
menampung hasil perhitungan jarak.
_trig = 1
Waitus 15
Baris 28 & 29 : Selanjutnya tinggal kita ikuti mekanisme sensor ultrasonik. Perhatikan lagi
prinsip kerja sensor ultrasonik SRF04. Dimulai dengan memberi logika HIGH (1) ke pin
Trig selama minimal 10 s. Dalam program ini kita buat 15 s.
_trig = 0
Baris 30 : Pin Trig kemudian dibikin menjadi LOW (0)
Bitwait _echo , Set
Baris 31 : Tahap berikutnya kita tunggu sampai pin Echo menjadi HIGH (1).
For K = 0 To 300
Baris 32 : Perulangan dibuat 300x , hal ini untuk membatasi saja. Kemampuan jarak ukur
sensor ultrasonik SRF04 adalah 3 m atau 300 cm.
If _echo = 1 Then Incr Jarak
Waitus 58

Next
Baris 33, 34, 35 : Setelah pin Echo=1 berarti proses perhitungan jarak sudah bisa dimulai.
Sebagai contoh jika jarak yang terukur 50 cm maka perintah Jarak=Jarak+1 akan dikerjakan
selama 50 x. Sehingga secara langsung dapat kita ketahui nilai jaraknya dari isi variabel
Jarak.
Return
Baris 36 : Program kembali lagi ke proses.

Anda mungkin juga menyukai