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
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