Mengukur 4 Jarak dengan sensor ultrasonic

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.

Iklan EDUROBO

Total 8 Pin (4◊2), sehingga PORTB sudah cukup kita gunakan. Rangkaian mikrokontroler dengan sensor SRF05 tampak pada gambar berikut :

Master Mikrokontroler

Nah, software dibuat dengan BASCOM-AVR :

‘******************************************
$regfile = “m8535.dat”
$crystal = 16000000
Dim Flag As Bit , I As Byte
Dim Jarak As Word
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.2 , Db4 = Portc.4
Config Lcdpin = Pin , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7

Cursor Off
Cls
Lcd “4 Sensor Jarak”
Lowerline
Lcd ”¬†¬†¬† SRF05 “
Wait 2
Cls
Lcd “S1=¬†¬†¬†¬† S2=”
Lowerline
Lcd “S3=¬†¬†¬†¬† S4=”
Ddrb = &B01010101
Config Timer1 = Timer , Prescale = 8
On Timer1 Jarak_over
Enable Interrupts¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† ‘cm
‘————————
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
99 proyek arduino
‘———————————
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
   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

Hasil percobaannya tampak pada gambar berikut :

This entry was posted in Mikrokontroler AVR. Bookmark the permalink.

11 Responses to Mengukur 4 Jarak dengan sensor ultrasonic

  1. jefri setifanus says:

    gan, boleh minta bantuan untuk program diatas ? ūüôā
    thanks

  2. ari says:

    mas,, diproteus kata kunci rangkaiannya apa?

  3. paijo londo says:

    klw mo bikin robot spt gambar diatas rangkaian n programnya gimana mas?

  4. gh says:

    mas mau tanya nih, kenapa jaraknya harus di bagi 116

    • admin says:

      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 –> 2×58 us= 116. Artinya untuk menempuh jarak 1 cm (pergi pulang) butuh waktu 116 us.

  5. nafisha says:

    mas kalo outputnya buat menyalakan led gmn? misal jarak 1 meter led menyala, kayak pembuka pintu gerbang otomatis….trims

  6. bosgentongs says:

    mas komponen ultrasonic di proteus keywordnya pakek apa mas???

Leave a Reply