Pages - Menu

Sabtu, 07 April 2012

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

Tidak ada komentar:

Posting Komentar