ultrasonic
Posted on September 24, 2012 by admin
Pada palikasi robotika, ketika membutuhkan informasi jarak maka kita langsung berpikir
sensor jarak. Yang paling terkenal adalah sensor ultrasonic. Nah apabila robot yang kita buat
membutuhkan informasi 4 jarak, jarak didepan, di samping kanan, samping kiri dan belakang
maka solusinya kita bisa memakai 4 sensor ultrasonic.
Saya memakai sensor ultrasonic SRF-05. Empat buah sensor SRF05 dihubungkan dengan
mikrokontroler ke PORTB. ATmega8535 dengan Kristal 16 MHz. satu sensor SRF05
memerlukan 2 port, satu untuk Trigger dan satunya untuk Echo. Mengenai prinsip kerja
sensor SRF05 telah kita bahas pada atrikel sebelumnya Ultrasonic Range Meter dengan
SRF05, silahkan baca dulu bagi yang belum tahu.
Total 8 Pin (42), sehingga PORTB sudah cukup kita gunakan. Rangkaian mikrokontroler
dengan sensor SRF05 tampak pada gambar berikut :
Lowerline
Lcd S3= S4=
Ddrb = &B01010101
Config Timer1 = Timer , Prescale = 8
On Timer1 Jarak_over
Enable Interrupts
Do
Gosub Ukur_s1
Locate 1 , 4
Lcd Jarak ;
Gosub Ukur_s2
Locate 1 , 12
Lcd Jarak ;
Gosub Ukur_s3
Locate 2 , 4
Lcd Jarak ;
Gosub Ukur_s4
Locate 2 , 12
Lcd Jarak ;
Waitms 800
Loop
End
Ukur_s1:
Flag = 1
Waitus 100
Portb.0 = 1
Waitus 15
Portb.0 = 0
Waitus 100
Enable Timer1
Timer1 = 0
Bitwait Pinb.1 , Set
Start Timer1
While Flag = 1
If Pinb.1 = 0 Then
Stop Timer1
Jarak = Timer1
Flag = 0
End If
Wend
Jarak = Jarak / 116
Return
Ukur_s2:
Flag = 1
Waitus 100
Portb.2 = 1
cm
Waitus 15
Portb.2 = 0
Waitus 100
Enable Timer1
Timer1 = 0
Bitwait Pinb.3 , Set
Start Timer1
While Flag = 1
If Pinb.3 = 0 Then
Stop Timer1
Jarak = Timer1
Flag = 0
End If
Wend
Jarak = Jarak / 116
Return
Ukur_s3:
Flag = 1
Waitus 100
Portb.4 = 1
Waitus 15
Portb.4 = 0
Waitus 100
Enable Timer1
Timer1 = 0
Bitwait Pinb.5 , Set
Start Timer1
While Flag = 1
If Pinb.5 = 0 Then
Stop Timer1
Jarak = Timer1
Flag = 0
End If
Wend
Jarak = Jarak / 116
Return
Ukur_s4:
Flag = 1
Waitus 100
Portb.6 = 1
Waitus 15
Portb.6 = 0
Waitus 100
Enable Timer1
Timer1 = 0
Bitwait Pinb.7 , Set
Start Timer1
While Flag = 1
If Pinb.7 = 0 Then
Stop Timer1
Jarak = Timer1
Flag = 0
End If
Wend
Jarak = Jarak / 116
Return
Jarak_over:
Flag = 0
Stop Timer1
Timer1 = 0
Jarak = 0
Return
Share this:
Facebook5
Like this:
This entry was posted in Mikrokontroler AVR. Bookmark the permalink.
admin says:
2.
ari says:
February 4, 2014 at 11:09 am
mas,, diproteus kata kunci rangkaiannya apa?
Reply
admin says:
3.
4.
gh says:
March 31, 2014 at 12:50 pm
mas mau tanya nih, kenapa jaraknya harus di bagi 116
Reply
admin says:
April 8, 2014 at 8:31 am
Freq osilator = 16 Mhz.
Prescaler = 8. So freq = 16/8 = 2 Mhz.
Ultrasonic > 1 cm/29 us. Kalau bolak balik kan jadi 1 cm > 58 us, so
jadinya 1 cm > 258 us= 116. Artinya untuk menempuh jarak 1 cm (pergi
pulang) butuh waktu 116 us.