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.

 

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

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
‘———————————
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 :

 

11 thoughts on “Mengukur 4 Jarak dengan sensor ultrasonic

  • November 28, 2013 at 12:47 pm
    Permalink

    gan, boleh minta bantuan untuk program diatas ? 🙂
    thanks

    Reply
    • December 30, 2013 at 8:44 am
      Permalink

      Bantuan gimana mas ?

      Reply
  • February 4, 2014 at 11:09 am
    Permalink

    mas,, diproteus kata kunci rangkaiannya apa?

    Reply
    • February 7, 2014 at 3:06 pm
      Permalink

      Kata kunci apa ?

      Reply
  • February 28, 2014 at 10:42 am
    Permalink

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

    Reply
  • March 31, 2014 at 12:50 pm
    Permalink

    mas mau tanya nih, kenapa jaraknya harus di bagi 116

    Reply
    • April 8, 2014 at 8:31 am
      Permalink

      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.

      Reply
  • May 30, 2015 at 10:05 pm
    Permalink

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

    Reply
    • December 15, 2015 at 11:08 am
      Permalink

      Gosub Ukur_s1
      If jarak=100 then
      PORTB.6=1 ‘LED di PORTB.6
      End if

      Reply
    • December 15, 2015 at 10:02 am
      Permalink

      Kalau di proteus belum pernah pakai sensor ultrasonik, setahu saya tidak ada mas

      Reply

Leave a Reply

WhatsApp chat
%d bloggers like this: