Index of /students/paper/skripsi/20402076

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