BAB IV UJI COBA DAN ANALISA
Cara pengujian alat ini adalah dengan mencari hasil dari uji dari masingmasing tiap blok rangkaian sebelum menggabungkannya dalam satu bentuk rangkaian seutuhnya. Pengujian alat ini dilakukan untuk mengetahui apakah rangkaian sensor ultrasonic, rangkaian mikrokontroler dan rangkaian driver motor dc dari IC L293D yang telah dibuat dapat berfungsi sesuai dengan teori dan hasil yang diharapkan. Selain pengujian secara hardware, penulis juga menguji coba software, dalam hal ini program yang telah dibuat dalam bentuk bahasa assembler.
IV.1. Pengujian Rangkaian Sensor Ultrasonic Dalam pengujian ini, penulis mencoba membuat tabel perbandingan waktu antara jarak sensor dengan objek terhadap dengan kecepatan suara. Hasil dari tabel ini mengambil rumus selisih waktu antara masuknya sinyal hasil pantulan benda yang ada didepannya. Rumusnya adalah :
Dimana
t of = d / c x
d = jarak c = kecepatan suara t of = pengukuran waktu antara transmitter dan receiver
57
nilai dari kecepatan suara adalah : C = √γRT
dimana
c = kecepatan suara γ = perbandingan dari spesifikasi panas (1,4 untuk udara) R = konstanta gas (287 ft2 K/s2) T = suhu (K) 273 + oC
Khusus untuk suhu, penulis menggunakan suhu sebesar 25o C sehingga besar T adalah 298 K. Maka : C = √γRT = √ (1.4) (287) (298 ) = √ 119736.4 = 346.02 ft/s Maka t of yang diperoleh adalah :
Tabel 4.1. Tabel perbandingan waktu antara jarak dan kecepatan suara
C (ft/s) 346.02 346.02 346.02 346.02 346.02 346.02 346.02
d (cm) 0.5 1 1.5 2 2.5 3 3.5
t of (s) 0.0014 0.0028 0.0043 0.0057 0.0072 0.0086 0.0101
logika 1 1 1 1 1 1 0
58
kondisi sinyal ON ON ON ON ON ON OFF
0.012 0.01 0.008 0.006
t (s )
0.004 0.002 0 0.5 1
1.5 2 2.5 3 jar ak (cm )
3.5
Gambar 4.1. Grafik perbandingan antara jarak dengan waktu
Dari data diatas dapat ditarik kesimpulan bahwa semakin besar jarak antara sensor dengan objek penghalang, maka waktu yang dibutuhkan oleh receiver dalam menerima sinyal pantul dari transmitter semakin besar pula. Jarak terjauh yang dapat diterima oleh receiver dalam menerima sinyal pantul adalah ± 3 cm. Sebab jika jarak antara sensor dengan objek penghalang > 3 cm maka sinyal akan menjadi LOW (0).
IV.2.
Pengujian Rangkaian Mikrokontroler dan Penggerak Motor dc
Pengujian ini bertujuan untuk mengetahui cara kerja dari rangkaian mikrokontroler yang telah diprogram dan mensinkronisasikannya dengan rangkaian driver motor dc. Pengujian dilakukan dengan memberikan logika bit 0 dan 1 yang sesuai dengan output dari sensor kepada mikrokontroler.
59
Tabel 4.2. Kondisi putaran motor dan gerak robot terhadap input sensor
No. 1 2 3 4 5 6 7 8
Kondisi bit pada port 1 P0.2 P0.1 P0.0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
kondisi motor kanan kiri stop stop kanan kanan kiri kanan kanan kanan kiri kiri kanan kiri kiri kiri kiri kanan
INT1 0 1 1 1 1 1 1 1
Gerak putar robot arah gerak bit output stop 00000000 kiri 00101101 mundur 00011101 kiri 00101101 kanan 00011011 maju 00101011 kanan 00011011 mundur 00011101
Dari hasil tabel diatas, dapat disimpulkan bahwa motor akan berputar jika salah satu dari 3 port yang dipakai bernilai HIGH (1). Hal ini sesuai dengan logika OR yang dipakai oleh penulis sebagai interrupt pada input mikrokontroler dari sensor.
IV.3. Pengujian Program Untuk pengujian program, penulis akan menganalisa program yang telah dibuat dan disesuaikan dengan hasil output dari masing-masing rangkaian. Selain itu akan ditampilkan hasil compile program dijalankan pada software IDE 8051 yang berekstension LST dan HEX.
60
Dibawah ini adalah file.LST hasil dari program yang telah di compile 8051 Assembler Version 1.00 05/12/107 08:30:02 F:\Drive E\aGe\neXT\bab\StopCrying.a51 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
0000 0000 0000 0000 0013 0013 0016 0030 0030 0033 0036 0038 0038 0038 003B 003B 003E 003E 0041 0041 0044 0044 0047 0047 004A 004A 004D 004D 0050 0050 0053 0053 0056 0056 0059 005A 005A 005A 005D 0060 0060 0063 0066 0066 0069 006C 006C 006F 0072
Page 1
SU MDC ORG LJMP ORG EXT1:
EQU EQU 00H MAIN 13H LCALL
P1 P0
ORG MAIN: SJMP
0030H MOV MOV $
; bekerja dari memori progarm nomor 0030H IE,#84H MDC,#00000000b ; kondisi awal, STOP pada motor dc ; mengerjakan kembali instruksi ini
209009
SCAN: K:
JB
SU.0, D
209115
KD:
JB
SU.1, Q
209219
KDQ:
JB
SU.2, SCAN_KANAN
020030 120038
75A884 758000 80FE
020072
SCAN
LJMP SCAN_STOP
209106
D:
JB
SU.1, DQQ
20921C
DQ:
JB
SU.2, SCAN_MAJU
020060 20921C
LJMP SCAN_KIRI DQQ:
020060
JB
SU.2, SCAN_MUNDUR
LJMP
SCAN_KIRI
209204
Q:
JB
SU.2, SCAN_KANAN
02006C 32
LJMP RETI
SCAN_MUNDUR
OUT:
120078 020059 12007E 020059 120084 020059 12008A 020059
SCAN_KANAN: CALL KANAN LJMP OUT SCAN_KIRI: CALL KIRI LJMP OUT SCAN_MAJU: CALL MAJU LJMP OUT SCAN_MUNDUR: CALL MUNDUR LJMP OUT SCAN_STOP:
; nilai awal SU adalah P1 ; nilai awal MDC adalah P0 ; awal program, 00H ; menuju label main ; awal rutin pelayanan interupsi 1 ; memanggil subroutine SCAN
; cek sensor kanan ; SU.0 = xx1, maka cek sensor depan ; cek sensor kanan depan ; SU.1 = x10, cek sensor kiri ; cek sensor kanan depan kiri ; SU.2 = 100, SCAN_KANAN ; SU.2 = 000, SCAN_STOP ; cek sensor depan ; SU.1 = x11, cek sensor depan kiri-kiri ; cek sensor depan kiri ; SU.2 = 101, SCAN_MAJU ; SU.2 = 001, SCAN_KIRI ; cek sensor depan kiri-kiri ; SU.2 = 111, SCAN_MUNDUR ; SU.2 = 011, SCAN_KIRI ; cek sensor kiri ; SU.2 = 110, SCAN_KANAN ; SU.2 = 010, SCAN_MUNDUR
; memanggil subroutine KANAN ; menuju label OUT ; memanggil subroutine KIRI ; menuju label OUT ; memanggil subroutine MAJU ; menuju label OUT ; memanggil subroutine MUNDUR ; menuju label OUT
61
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
0072 0075 0078 0078 007B 007C 007E 007E 0081 0082 0084 0084 0087 0088 008A 008A 008D 008E 0090 0090 0093 0094
120090 020059
CALL STOP LJMP OUT
; memanggil subroutine STOP ; menuju label OUT
75801B 00 80FD
KANAN: MOV MDC, #00011011b ULANG: NOP SJMP ULANG
; mengatur pergerakan motor ke arah kanan ; no operation ; menuju label ULANG
75802D 00 80FD
KIRI: ULANG1:
MOV MDC, #00101101b NOP SJMP ULANG1
; mengatur pergerakan motor ke arah kiri ; no operation ; menuju label ULANG1
75802B 00 80FD
MAJU: ULANG2:
MOV MDC, #00101011b NOP SJMP ULANG2
; mengatur pergerakan motor ke arah depan ; no operation ; menuju label ULANG2
75801D 00 80FD
MUNDUR: MOV MDC, #00011101b ULANG3: NOP SJMP ULANG3
; mengatur gerak motor ke arah belakang ; no operation ; menuju label ULANG3
758000 00 80FD
STOP: ULANG4:
; mengatur agar motor tidak bergerak ; no operation ; menuju label ULANG4
MOV MDC, #00000000b NOP SJMP ULANG4
Defined Symbols: MDC SU
000080 000090
128 144
Defined Labels: D DQ DQQ EXT1 K KANAN KD KDQ KIRI MAIN MAJU MUNDUR OUT Q SCAN SCAN_KANAN SCAN_KIRI SCAN_MAJU SCAN_MUNDUR SCAN_STOP STOP ULANG ULANG1 ULANG2 ULANG3 ULANG4
000044 000047 00004D 000013 000038 000078 00003B 00003E 00007E 000030 000084 00008A 000059 000053 000038 00005A 000060 000066 00006C 000072 000090 00007B 000081 000087 00008D 000093
68 71 77 19 56 120 59 62 126 48 132 138 89 83 56 90 96 102 108 114 144 123 129 135 141 147
62
Dibawah ini adalah hasil file.HEX yang merupakan hasil dari program yang telah di-compile. File jenis inilah yang akan di download kedalam melalui EPROM writer yang akan di “tanam” ke dalam mikrokontroler AT89C52. File ini berisi bilangan heksadesimal :03000000020030CB :03001300120038A0 :1000300075A88475800080FE20900920911520927B :100040001902007220910620921C02006020921C6E :1000500002006020920402006C3212007802005903 :1000600012007E02005912008402005912008A0216 :10007000005912009002005975801B0080FD7580A8 :100080002D0080FD75802B0080FD75801D0080FD9A :060090007580000080FDF8 :00000001FF
Berikut adalah cara pembacaan format HEX dari INTEL. Contohnya pada baris pertama dari file diatas, yaitu: :03 0000 00 020030 CB * a
*
b
c
d
e
merupakan kode identitas yang menyatakan baris tersebut berisi kode-kode biner yang disimpan dalam format HEX dari INTEL. a. Huruf ke-2 dan ke-3 dipakai untuk menyatakan banyaknya data dalam baris yang dinyatakan dengan 2 angka heksadesimal, sehingga banyaknya data dalam 1 baris maksimal adalah 255 (FF).
63
b. Huruf ke-4 sampai ke-7, merupakan 4 angka heksadesimal yang dipakai untuk menyatakan alamat awal tempat penyimpanan kode-kode dalam baris teks yang bersangkutan. c. Huruf 8 dan 9 dipakai untuk menyatakan jenis teks data. Nilai 00 dipakai untuk menyatakan baris tersebut berisikan data biasa, sedangkan 01 menyatakan baris tersebut merupakan baris terakhir. d. Huruf ke-10 dan seterusnya adalah data e. Dua huruf terakhir dalam baris merupakan check sum.
64