Robot Avoider dengan 89S51 dan ADC 8 Channel

                                                By : Mr. Widodo Budiharto

 

                             

 

Kit aplikasi ini ialah penerapan mikrokontroler 89S51, sensor jarak sharp GP2D12 dan kit ADC 0809 8 ch sebagai robot avoider menggunakan bahasa assembly. Kit yang dibutuhkan ialah :

1.      Sistem Minimum 89s51/52/8252 atau DT 51 Low Cost Micr System Starter Pack (Sudah sama kabel ISP)

2.      Kit ADC 0809 Delta

3.      Sensor Sharp GP2D12

4.      IC L293d

5.      Roda  serbaguna dengan motor dc.

6.      Tempat baterai

 

ADC 0808/0809

Adapun spesifikasi yang dimiliki ADC0809   yaitu total unadjusted Error ±1.2 LSB and ±1 LSB dengan resolusi 8 bit, dan memiliki waktu konversi 100ms dan catu daya yang digunakan +5volt DC dengan daya 15mW,  dengan spesifikasi yang dimiliki oleh A/D inilah yang menyebabkan A/D ini mudah untuk digunakan diberbagai rangkaian interface, hanya pada rangakaian A/D ini perlu adanya penambahan rangkaian clock.

                       adc

                     Gambar  Konfigurasi pin ADC0808/0809

Dari Konfigurasi pin ADC0809 yang ditunjukan pada gambar  terdapat 28 buah pin dimana masing-masing pin pada A/D berfungsi antara lain  Pin 8,14,15,17,18,19,20,21 merupakan keluaran data digital hasil konversi dari A/D dimana kedelapan keluaran ini dapat langsung dihubungkan ke data bus. Dan Pin 1,2,3,4,5,26,27,28 merupakan pin masukan yang terdapat 8 pin atau 8 jalur input, pada pin inilah sinyal analog yang akan dikonversikan dihubungkan, sedangkan pin 23,24,25 merupakan pin A,B,C yang berfungsi sebagai pemilih jalur input mana yang akan dikonversikan, dan pin-pin yang lainnya sama halnya dengan ADC0804, agar delapan input dapat dikonversikan berikut ini tabel kebenarannya :

 

              Tabel Kebenaran A/D 0809

Channel yang dipilih

Jalur lamat

IN0

C

B

A

IN1

L

L

L

IN2

L

L

H

IN3

L

H

H

IN4

H

L

L

IN5

H

L

H

IN6

H

H

L

IN7

H

H

H

 

Input ke ADC 0809 haruslah  berupa tegangan analog dari keluaran sensor yang biasanya besarannya berkisar dari 0-5V.  

              

Gambar  Rangkaian Kit  ADC 0809 Delta

 

Pada rangkaian di atas, digunakan Kristal 455KHz dan gerbang logika sebagai pembangkit detak.

 

                                                              

                                                                   Gambar Kit ADC 0809 Delta

 

 

Sebagai sensor jarak digunakan sensor jarak infrared Sharp GP2D12 dengan output analog yang terhubung di ch 0 kit ADC.  Sebagai driver Motor DC, menggunakan   IC L293D sebagai driver motor DC. Untuk menggerakkan driver motor DC, digunakan port 2.

 

Berikut blok diagram robot avoider :

 

 

 

 


                                                                                                                                                                                                           

 

Berikut ini contoh rangkaian L293d yang dapat mengemudikan 2 buah motor DC GT1/GT5 atau lainnya atau 1 buah stepper motor.

 

                          

Sensor Jarak

Berikut tampilan penampang sensor Sharp GP2D12 beserta susunan kakinya.

                                                                     

                        Gambar sensor Sharp GP2D12 dan Susunan kaki sensor tersebut

 

Algoritma

Konfigurasi ADC

Begin

Baca sensor 1

If jarak luas

                Gerak maju

End if

If jarak pendek

Mundur

End if

end

 

Berikut cuplikan kode assembly menggunakan ASM51

;===========================================

; Program robot avoider

; Dengan 89S51 dan Sharp GP2D12

; Menggunakan bahasa Assembly

; By Mr. Widodo 2008

;========================================

mov p3,#00000000b        ; set sensor depan (ch0)

                                                ; mov p3,#00000001 : set sensor samping (ch1) dan seterusnya

                                                ; jika ingin pasang sensor tambahan sebanyak 8 bh

LOOP:   

mov a,p0                             ; baca sensor, keluaran 8 bit dari ADC 0809

mov p1,p0                           ; tampilkan juga di port 1

cjne a, #0ffh, maju1         ; jika tidak sama dengan 0ffH, lompat ke lable maju1

MOV P2,#00001010b       ;  gerakkan robot maju

acall L_TUNDA                    ; panggil prosedur tunda

jmp LOOP

MOV P2, #00000001b      ; belok

Acall L_TUNDA                   ; Panggil Procedure penundaan waktu

Acall L_TUNDA                   ; Panggil Procedure penundaan waktu

Acall L_TUNDA                   ; Panggil Procedure penundaan waktu

Acall L_TUNDA                   ; Panggil Procedure penundaan waktu

JMP LOOP                            ; Loncat Ke Procedure Loop

;Prosedur penundaan waktu selama 050Hx075H (konversi dalam us)

L_TUNDA:                              ; Label L_TUNDA

MOV R7,#050h                   ; Isikan Register 7 dengan data 050H

L_TUNDA_1:                         ; Label L_TUNDA

ACALL  TUNDA                    ; Panggil Prosedure Tunda

Djnz R7,L_TUNDA_1            ; Kurangi Nilai Register7 (R7)

; dengan 1 jika belum sama dengan 0 loncat ke prosedure L_TUNDA_1

RET          ;Kembali              

TUNDA:                                  ; label TUNDA

MOV R6,#075H                   ; Isikan Register 6 (R6) dengan data 075H

DJNZ R6,$                             ; Kurangi Nilai Register6 (R6)

; dengan 1 jika belum sama dengan 0

; Terus kurangi. (waktu akan tertunda selama beberapa uS pada kristal 11.0592 ;MHz)

RET                                          ; Kembali

END

 

Miliki kit lengkap sudah jadi diatas hanya Rp 2.000.000

Pesn ke Mr. Widodo HP:08569887384