+
=
+
=
+
RC
s
sCR
CR
sCR
sCR
s
1
1
. 5
1
. 5
1
.
5
Vo = 5.e
RC
t
RC
t
e
Vo
=
5
ln
RC
t
Vo
=
5
t = RC
Vo
5
ln (3.3)
dengan Vo adalah tegangan logika nominal yang diijinkan pin RST di mana
Vo = 0,7 x Vcc = 0,7 x 5 volt = 3,5 volt
sehingga
t = RC
5 , 3
5
ln
t = 0,357.R.C (3.4)
dengan menggunakan pemisalan R = 10K dan t minimum adalah 2 s maka untuk
amannya dimisalkan = 4 s maka:
4.10
6
= 0,357 x 10 K x C
C = 1.1nF
telah memenuhi syarat minimal untuk dapat me-reset mikrokontroler AT89C51.
III.2.2 Rangkaian Clock
Kecepatan proses kerja mikrokontroler ditentukan oleh sumber clock
(pewaktuan) yang mengendalikan mikrokontroler tersebut. AT89C51 telah
menyediakan osilator internal yang dapat digunakan untuk membangkitkan pulsa
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
25
clock. Untuk menentukan frekuensi osilatornya digunakan kristal yang dihubungkan
ke pin XTAL 1 dan pin XTAL 2, serta menghubungkan pin tersebut dengan
kapasitor yang dihubungkan ke ground. Besar kapasitansi kapasitor disesuaikan
dengan spesifikasi pada datasheet AT89C51, yaitu sebesar 30pF 10pF. Karena
kapasitor 30pF tidak tersedia dipasaran, maka digunakan kapasitor 33pF.
Pemilihan besar frekuensi disesuaikan dengan kebutuhan. Untuk
mempermudah perhitungan maka digunakan kristal 12MHz. Penggunaan kristal
12MHz akan mengakibatkan satu siklus mesin (12 periode) paling lama dapat
dikerjakan dalam waktu 1s atau s
MHz
1 12
12
1
= . Rangkaian clock dalam
perancangan ini ditunjukkan dalam Gambar 3.3.
Gambar 3.3 Rangkaian clock
III.2.3 Hubungan Port-port
Mikrokontroler AT89C51 mempunyai empat buah port I/O yang dapat
digunakan. Dalam perancangan sistem mikrokontroler ini pin-pin I/O digunakan
adalah sebagai berikut:
1. Pin 0.0 Pin 0.4 digunakan sebagai penerima masukan dari
phototransistor (sensor api).
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
26
2. Pin 1.0 Pin 1.3 digunakan sebagai penerima masukan dari sensor
jarak GP2D12.
3. Pin 2.0 Pin 2.4 digunakan sebagai pengendali motor driver L293D.
Dan Pin 2.5 sebagai pengendali kipas angin.
4. Pin 1.4 dihubungkan ke saklar yang menentukan robot bekerja dalam
mode jelajah atau dalam mode ruangan.
5. Pin 3.0 dan Pin 3.7 dan pin 1.5 digunakan untuk menyalakan dan
memadamkan LED indikator.
Hubungan pin-pin mikrokontroler ditunjukkan pada Gambar 3.4.
ATMEL
AT89C51
40
30
20
1
10
21
5 V
33 pF
33 pF
12 MHz
nput A
nput B
nput C
nput D
nput E
nput A
nput C
nput B
nput D
Output
Output
Output
Output
Kipas
P0
P1
P3
P2
8
32
28
17
39
Switch
10 uF
10 k
Ohm
5 V
LED ndikator
LED ndikator
LED ndikator
LED ndikator
LED ndikator
LED ndikator
LED ndikator
LED ndikator
LED ndikator
R pull up
Gambar 3.4 Hubungan pin-pin mikrokontroler
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
27
Pada rangkaian di atas, karena port 0 bersifat open drain, maka ketika
mengeluarkan logika 0 maka akan terbaca sebagai logika ambang. Untuk itu
dibutuhkan resistor pull up agar bisa memberikan logika 0. Ketika memberikan
logika 0 maka tegangan keluaran (V
OL
) seharusnya adalah 0,5 V. Karena arus yang
dibutuhkan ketika logika 0 (I
OL
) adalah 3,2 mA dan catu daya yang digunakan
(Vcc) adalah 5V, maka nilai R pull up yang dibutuhkan adalah:
OL
OL
up pull
I
V Vcc
R
=
_
(3.5)
mA
V V
R
up pull
2 , 3
5 , 0 5
_
=
= k R
up pull
5 , 1 1406,25
_
III.3 Rangkaian Sensor Jarak
Dalam perancangan ini dibutuhkan empat buah sensor GP2D12. Sensor jarak
GP2D12 memiliki tiga buah pin keluaran: Vo (tegangan keluaran), Vcc dan GND.
Pin Vcc dihubungkan dengan sumber tegangan 5V. Pin GND dihubungkan ke
ground, dan Vo keempat sensor jarak dihubungkan ke pin 1.0 pin 1.3 pada
mikrokontroler AT89C51 melalui rangkaian pembanding. Gambar 3.5 dan Gambar
3.6 berikut menunjukkan hubungan pin-pin GP2D12 dan posisinya pada badan robot.
Gambar 3.5 Rangkaian Sensor GP2D12
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
28
Gambar 3.6 Peletakan Sensor GP2D12 pada Badan Robot
Keuntungan yang diperoleh dari penyusunan phototransistor seperti Gambar
3.6 adalah robot dapat menghindari tabrakan dengan benda di depan, di depan kiri
dan didepan kanan serta mengikuti dinding yang terdapat disebelah kiri dengan
hanya menggunakan empat buah sensor jarak.
III.4 Rangkaian Sensor Api
Rangkaian sensor api berfungsi untuk memberitahu mikrokontroler apabila
ada api yang terdeteksi disekitar robot. Komponen utama dari rangkaian ini adalah
phototransistor. Apabila api lilin terdeteksi, phototransistor akan mengalirkan arus
dari Vcc ke ground sehingga tegangan outputnya akan LOW. Output rangkaian
sensor api dihubungkan ke rangkaian pembanding. Berikut adalah rangkaian
phototransistor (sensor api).
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
29
Gambar 3.7 Rangkaian Sensor Api
Keluaran rangkaian akan menjadi masukan pada rangkaian pembanding.
Rangkaian pembanding dapat menerima masukan dengan tegangan -0.3 V hingga
5,03 V dan arus maksimum 50 mA. Sedangkan arus maksimum yang dapat melewati
phototransistor tidak diketahui karena ketidaktersediaan datasheetnya. Resistor R
akan membatasi arus yang mengalir pada phototransistor dan rangkaian pembanding.
Supaya aman, nilai arus yang melewati phototransistor dibatasi hingga 0,5 mA.
Dengan demikian besar tahanan minimum yang dibutuhkan adalah sebagai berikut.
R I V =
mA
V
R
5 , 0
5
=
= k R 10
Sebuah phototransistor dapat mendeteksi api lilin dalam sudut pandang 50
0
.
Sehingga agar dapat mendeteksi api dalam 360
0
dibutuhkan paling sedikit 8 buah
phototransistor yang masing-masing mendeteksi api dalam sudut 45
0
. Hal ini dapat
dilihat pada Gambar 3.8
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
30
Photo
Transistor
1
2
3
4
5
6
7
8
Gambar 3.8 Susunan Phototransistor pada badan robot
Keuntungan yang diperoleh dari penyusunan phototransistor seperti Gambar
3.9 adalah keberadaan api dapat langsung diketahui sekaligus dengan posisinya
terhadap robot. Dengan demikian robot dapat berputar kearah lilin. Untuk
menyederhanakan pemrograman, kedelapan phototransistor itu dibagi dalam empat
kelompok. Yaitu dengan cara menyatukan keluaran phototransistor 1, 2, dan 3 serta
transistor 6, 7, dan 8. Hasilnya diperlihatkan pada Gambar 3.9. Keempat kelompok
itu adalah A, B, C, dan D.
A
B
C
D
Gambar 3.9 Hasil Penggabungan Beberapa Phototransistor
Posisi phototransistor seperti pada gambar diatas membuat robot dapat
berputar kearah api lilin, tetapi untuk membuat robot dapat bergerak lurus mendekati
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
31
api lilin itu, diperlukan sebuah phototransistor lagi (phototransistor C) yang
mengarah tepat kedepan robot seperti yang ditunjukkan pada Gambar 3.10.
Gambar 3.10 Susunan 9 Phototransistor pada Badan Robot
Gambar 3.10 menunjukkan bahwa antara phototransistor B dan D terdapat
celah sempit. Celah sempit ini adalah garis yang akan diikuti robot untuk mendekati
lilin. Hal ini akan dibahas lebih lanjut pada BAB IV.
III.5 Rangkaian Pembanding Tegangan
Pembanding tegangan berfungsi untuk membandingkan tegangan masukan,
dalam hal ini sinyal dari sensor jarak dan sensor api. Pembanding tegangan dalam
perancangan ini menggunakan penguat operasional LM324N.
III.5.1 Rangkaian Pembanding Untuk Sensor Api
Sinyal dari sensor sensor api dijadikan masukan bagi pembanding dengan
menghubungkannya ke masukan inverting IC LM324N. Saat tegangan masukan
pembanding berada di atas tegangan referensi, maka keluaran pembanding adalah
LOW (0V). Sebaliknya jika tegangan masukan pembanding di bawah tegangan
referensi, maka keluaran pembanding adalah HIGH (5V). Mikrokontroler akan
membaca sinyal HIGH sebagai tanda bahwa ada api lilin yang terdeteksi.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
32
Tegangan referensi diperoleh dengan memanfaatkan potensiometer sebagai
pembagi tegangan. Karena arus input maksimum LM324 adalah 50mA dan agar
lebih aman arus dibatasi hingga 5mA, maka nilai potensiometer minimum yang
dibutuhkan adalah sebagai berikut.
R I V =
mA
V
R
5
5
=
= k R 1
Rangkaian pembanding untuk sensor api ditunjukkan dalam Gambar 3.11 di
bawah ini.
Gambar 3.11 Rangkaian Pembanding Tegangan Untuk Sensor Api
Gambar 3.12 menunjukkan rangkaian pembanding untuk sensor api
menggunakan LM324N.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
33
Gambar 3.12 Rangkaian Pembanding Tegangan Untuk Sensor Api
Menggunakan LM324N
III.5.2 Rangkaian Pembanding Untuk Sensor Jarak
Rangkaian pembanding untuk sensor jarak memiliki sedikit perbedaan
dengan rangkaian pembanding sebelumnya. Rangkaian ini disusun untuk
menghasilkan sinyal keluaran LM324N yang stabil sehingga dapat dibaca
mikrokontroler dengan baik. Pada rangkaian ini keluaran dari sensor jarak GP2D12
dihubungkan ke masukan non inverting IC LM324N. Sehingga saat tegangan
masukan pembanding berada di atas tegangan referensi, maka keluaran pembanding
adalah HIGH (5V). Sebaliknya jika tegangan masukan pembanding di bawah
tegangan referensi, maka keluaran pembanding adalah LOW (0V). Mikrokontroler
akan membaca sinyal LOW itu sebagai tanda bahwa ada benda yang terdeteksi.
Rangkaian pembanding untuk sensor jarak ditunjukkan dalam Gambar 3.13 pada
halaman berikutnya.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
34
Gambar 3.13 Rangkaian Pembanding Untuk Sensor Jarak
Rangkaian pembanding untuk sensor jarak mempunyai konfigurasi schmitt
trigger untuk menghilangkan derau pada keluarannya. Untuk menghitung besar
treshold digunakan rumus:
sat
V
R
R
T
2
1
= (3.6)
Dimisalkan R1 = 100k Ohm dan R2 = 1 M Ohm dan Vsat = 5V, maka
V T 5
10
10 100
6
3
=
V T 5
10
10 100
6
3
=
V T 5 . 0 =
Pada gambar di halaman berikutnya digunakan dua buah potensiometer.
Sebuah digunakan untuk mengatur kepekaan sensor jarak bagian belakang (A dan D)
dan satu lagi digunakan untuk mengatur kepekaan sensor jarak bagian depan (B dan
C). Gambar 3.14 menunjukkan rangkaian pembanding untuk sensor api
menggunakan LM324N.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
35
Gambar 3.14 Rangkaian Pembanding Tegangan Untuk Sensor Jarak
Menggunakan LM324N
III.6 Rangkaian Motor dc
Rangkaian motor dc dirancang dengan menggunakan IC L293D karena
mikrokontroler tidak mampu men-drive beban induktif seperti motor dc secara
langsung. Hai ini disebabkan pin keluaran dari mikrokontroler tidak mampu memberi
arus yang cukup untuk motor dc. Input L293D berasal dari mikrokontroler dan pada
Gambar 3.15 terlihat bahwa keluarannya yang bersesuaian dihubungkan dengan
motor dc, dimana pin output 1 dan pin output 2 dihubungkan ke motor kiri,
sedangkan pin output 3 dan 4 dihubungkan ke ke motor kanan.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
36
Gambar 3.15 Rangkaian motor dc
IC L293D memiliki 2 pin enable. Pin enable 1 untuk mengaktifkan pin output
1 dan 2, sedangkan pin enable 2 digunakan untuk mengaktifkan pin output 3 dan 4.
kedua pin enable ini dipararelkan dan dihubungkan ke rangkaian Duty Cycle
Modulation, agar kecepatan motor dc dapat diatur.
Besarnya tegangan yang diberikan oleh L293D ke motor sama dengan besar
tegangan yang diberikan pada pin Vs (Vcc2) yaitu sebesar 9 volt. Sedangkan pin Vss
(Vcc1) digunakan sebagai sumber tegangan IC L293D.
Untuk mengendalikan arah putaran motor, pin input 1 - 4 pada L293D
dihubungkan ke pin 2.0 pin 2.3 pada mikrokontroler AT89C51. Arah putaran
motor kiri ditentukan oleh pin input 1 dan 2, sedangkan arah putaran motor kanan
ditukan oleh pin input 3 dan 4. Tabel 3.1 berikut menunjukkan hubungan pin enable,
pin input dan pin output pada IC L293D.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
37
Tabel 3.1 Hubungan pin enable, input dan output IC L293D
Enable
1 dan 2
Input 1 Input 2 Output 1 Output 2 Gerakan Motor
0 x x 0 0 Diam
1 0 0 0 0 Diam
1 0 1 0 1 Berputar ke kanan
1 1 0 1 0 Berputar ke kiri
1 1 1 1 1 Diam
III.7 Rangkaian Duty Cycle Modulation
Rangkaian Duty Cycle Modulation digunakan untuk mengendalikan
kecepatan motor dc. Cara kerjanya adalah dengan mengirim sinyal yang meng-ON
dan meng-OFF-kan motor driver L293D dengan frekwensi tertentu. Waktu ON dan
OFF ini dikenal sebagai duty cycle. Gambar berikut menunjukkan bentuk
gelombang dengan frekwensi duty cycle 10%, 50% dan 90%.
Gambar 3.16 Gelombang Dengan Frekwensi Duty Cycle 10%, 50% dan 90%
Dapat dilihat bahwa pada duty cycle 10% sinyal akan HIGH selama 10% dari
panjang gelombang dan LOW pada 90% dari penjang gelombang berikutnya. Sinyal
ini akan dikirimkan ke motor driver L293D dengan frekwensi yang cukup tinggi
sehingga pulsa itu tidak berpengaruh pada kestabilan putaran motor. Hasil akhir dari
Duty Cycle Modulation adalah pengendalian kecepatan motor dc secara stabil dan
efisien. Berikut adalah gambar rangkaian Duty Cycle Modulation sederhana dengan
menggunakan Timer 555.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
38
Gambar 3.17 Rangkaian Duty Cycle Modulation
Pada gambar diatas timer 555 difungsikan sebagai osilator astable. Artinya
pada saat di-ON-kan, timer 555 akan terus berosilasi tanpa ada interupsi dari luar.
Dapat dilihat bahwa Pin reset (pin 4) dihubungkan ke +V, sehingga tidak
mempengaruhi operasi rangkaian. Pin discharge dihubungkan ke resistor pull up R2
agar dapat men-drive driver motor dc L293D. Besar tahanan R2 ditentukan oleh arus
yang dibutuhkan oleh pin enable/disable L293D sehingga berlogika HIGH, yaitu
sebesar 5 mA. Dengan demikian besar tahanan yang dibutuhkan adalah sebagai
berikut.
R I V =
mA
V
R
5
5
=
= k R 10
Cara kerja rangkaian adalah seperti berikut. Pada saat rangkaian di-ON-kan,
pin trigger (pin 2) akan LOW karena kapasitor C1 dikosongkan. Hal ini akan
memulai osilasi dan membuat pin output (pin 3) HIGH. Ketika pin output HIGH,
kapasitor C1 akan diisi kembali sesuai dengan bagian bawah R1 dan dioda D2.
Ketika tegangan C1 mencapai 2/3 dari +V, treshold (pin 6) akan diaktifkan.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
39
Akibatnya output (pin 3) dan pin discharge (pin 7) bernilai LOW. Ketika pin output
bernilai LOW, kapasitor C1 diisi melalui bagian atas R1 dan D1. Ketika tegangan
pada C1 turun hingga dibawah 1/3 dari +V, pin output dan pin discharge akan
bernilai HIGH, dan siklus akan berulang.
Pin 5 tidak digunakan sebagai input tegangan luar, sehingga di bypass ke
ground melalui kapasitor 0,10 uF. Kapasitor C1 dikosongkan melalui satu sisi dari
R1 dan diisi melalui sisi R1 yang lain. Jumlah tahanan pengosongan dan pengisian
selalu sama, sehingga panjang gelombang yang dihasilkan selalu sama. R1 hanya
memvariasikan duty cycle. Frekwensi Duty Cycle dari rangkaian ini bergantung pada
nilai R1 dan C1. Sesuai dengan rumus:
1 * 1
44 , 1
C R
Frekwensi = (3.7)
Dengan R1 sebesar 100 k dan C1 sebesar 0.1 F, maka:
6 3
10 1 , 0 10 100
44 , 1
= Frekwensi
Hz Frekwensi 144 =
Diperoleh frekwensi pada rangkaian ini adalah 144 Hz. Pin output digunakan
untuk mengisi dan mengosongkan C1, dari pada pin discharge (pin 7). Hal ini
dilakukan karena pin output mempunyai konfigurasi totem pole. Ia dapat
mengeluarkan dan menarik arus, sementara pin discharge hanya dapat menarik arus.
Dengan catatan bahwa pin output dan pin discharge bernilai HIGH dan LOW pada
waktu yang bersamaan.
III.8 Rangkaian Saklar
Rangakaian saklar yang terhubung ke pin 1.4 adalah seperti Gambar 3.18
berikut. Dapat dilihat bahwa rangkaian saklar memiliki resistor pulldown sebesar 10k
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
40
Ohm. Apabila saklar terbuka Pin 3.2 akan berlogika LOW apabila saklar ditutup
Pin3.2 akan berlogika HIGH.
Gambar 3.18 Rangkaian Saklar
Pada saat saklar terbuka Pin 3.2 akan berlogika HIGH dan ketika saklar
ditutup pin 3.2 akan berlogika LOW. Tahanan R berfungsi untuk membatasi arus
yang mengalir ke mikrokontroler agar mikrokontroler tidak terbakar. Nilai arus
dibatasi sehingga nilai maksimumnya 0,5 mA.
R I V =
mA
V
R
5 , 0
5
=
= k R 10
III.9 Rangkaian Kipas Angin
Kipas angin yang berupa motor dc digunakan sebagai piranti yang akan
memadamkan api. Motor dc mempunyai dua buah kutub, kutub positif dan kutub
negatif. Kutub positif motot dc dihubungkan ke catu daya 5V sedangkan kutub
negatifnya dihubungkan ke emiter transistor. Basis transistor dihubungkan ke pin 2.4
pada mikrokontroler AT89C51, sedangkan kolektornya dihubungkan ke ground.
Dengan demikian kipas angin akan active LOW.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
41
Karena motor dc mempunyai hambatan dalam 10kOhm, maka arus yang akan
melewati transistor adalah sebesar:
R I V =
=
10
5V
I
A I 5 , 0 =
Dengan demikian, transistor yang dipasang harus mampu melewatkan arus lebih dari
0,5 A. Pada perancangan ini transistor PN2222A yang dipakai dapat melewatkan
arus hingga 1A.
Sebuah dioda dipasang pararel dengan motor dc dan berlawanan arah dengan
arah arus yang mengalir didalam motor untuk menghilangkan arus induksi yang
dihasilkan. Gambar 3.19 berikut menunjukkan rangkaian kipas angin.
Gambar 3.19 Rangkaian Kipas Angin
III.10 Rangkaian LED Indikator
LED indikator adalah LED yang menunjukkan pembacaan sensor. Apabila
sensor yang bersesuaian mendeteksi keberadaan api atau benda disekeliling robot,
maka LED indikator akan menyala.Karena ada lima kelompok sensor api dan empat
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
42
buah sensor jarak, maka terdapat sembilan buah LED status. Gambar 3.20
menunjukkan rangkaian LED indikator.
Gambar 3.20 Rangkaian LED Indikator
LED dapat dinyalakan dengan cara membuat pin mikrokontroler yang
terhubung dengannya bernilai LOW. Resistor digunakan untuk membatasi arus yang
mengalir ke mikrokontroler. Agar LED tidak rusak, maka arus yang mengalir
melaluinya harus dibatasi agar tidak lebih dari 20 mA. Agar lebih aman arus dibatasi
hingga 10 mA. Sehingga nilai resistor yang dibutuhkan adalah:
R I V =
A
V
R
3
10 10
5
=
= 500 R
III.11 Rangkaian Robot Pemadam Api
Rangkaian robot pemadam api adalah rangkaian hasil penggabungan semua
rangkaian yang dijelaskan diatas. Rangkaian ini membutuhkan sebuah
mikrokontroler AT89C51, sebuah motor driver L293D, tiga OP-AMP LM324N,
sebuah Timer 555, sembilan sensor api (photo transistor) empat sensor jarak SHARP
GP2D12, tiga motor dc dan komponen lainnya. Rangkaian robot pemadam api
ditunjukkan pada Lampiran A.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
BAB IV
PERANCANGAN PERANGKAT LUNAK
Perancangan perangkat lunak dalam sistem ini bertujuan agar mikrokontroler
AT89C51 dapat mengontrol proses pendeteksian benda disekitar robot, keberadaan api
lilin dan mengendalikan ketiga motor dc sehingga robot dapat melakukan tugas mencari
dan memadamkan api lilin dengan baik. Software ini ditulis dalam bahasa assembly dan
akan ditanamkan pada mikrokontroler AT89C51. Software yang digunakan sebagai
assembler untuk menghasilkan file HEX dari bahasa assembly yang digunakan adalah
8051 Editor, Assembler, Simulator (IDE) Evaluation Vertion 1.20 dari AceBus.
IV.1 Perangkat Lunak Secara Garis Besar
Perancangan perangkat lunak robot pemadam api dilakukan dengan metode
poling. Dengan demikian mikrokontroler akan memeriksa pembacaan sensor jarak dan
sensor api lalu memutuskan pergerakan robot. Hal ini dapat dilihat dari souce codenya
yang terdapat pada Lampiran B. Secara sederhana program dapat dijelaskan melalui
diagram alir yang terdapat pada Gambar 4.1 Ketika tombol power di-ON-kan, robot
akan bekerja dan mikrokontroler akan direset sehingga program akan mulai dijalankan
dari alamat 0h. Kemudian mikrokontroler akan memberi nilai awal pada setiap port I/O.
Setelah itu keluaran setiap sensor dibaca dan LED indikator yang bersesuaian dengan
sensor yang mendeteksi keberadaan api atau benda dinyalakan. LED indikator ini
berfungsi untuk menunjukkan pembacaan setiap sensor oleh mikrokontroler.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
44
Gambar 4.1 Diagram Alir Perangkat Lunak
Dari gambar diatas dapat dilihat bahwa bagian jelajah menjadi prioritas utama.
Hanya jika ada api lilin yang terdeteksi dan tidak ada benda didepan robot, program
jump ke bagian penemuan_api. Bagian jelajah dibagi dua, yaitu mode ruangan dan
mode lapangan. Kedua mode ini diatur dengan meng-ON/OFF-kan saklar yang
terhubung dengan pin 1.4 pada mikrokontroler AT89C51. Sesuai dengan namanya mode
ruangan diaktifkan jika robot berada dalam ruangan dan harus menelusuri ruangan itu
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
45
untuk menemukan api. Pada mode ruangan robot akan menelusuri dinding yang terdapat
di sebelah kirinya. Sedangkan dalam mode lapangan, robot akan bergerak maju dan
menghindari tabrakan dengan benda lain yang terdapat didepannya.
Apabila robot mendeteksi api lilin dan tidak mendeteksi ada benda didepannya,
maka robot akan mendekati api lilin itu hingga jarak tertentu dimana lilin dapat
dipadamkan dengan menghidupkan kipas angin. Robot akan mengasumsikan bahwa api
lilin telah padam ketika tidak mendeteksi keberadaannya lagi. Ketika hal itu terjadi,
program akan jump ke bagian awal, demikian seterusnya hingga tombol power di-OFF-
kan kembali.
IV.2 Bagian Jelajah
Pada sub bab berikut akan dijelaskan secara khusus bagian jelajah. Pada bagian
jelajah robot akan membaca keempat sensor jarak dan memutuskan pergerakan motor
kiri dan motor kanannya. Mikrokontroler akan mengetahui keberadaan benda
disekeliling robot ketika salah satu pin I/O yang terhubung ke rangkaian sensor jarak
bernilai LOW. Posisi masing-masing sensor jarak dapat dilihat pada lampiran C atau
pada Gambar 3.7. Karena ada empat buah sensor jarak, maka akan ditemukan
enambelas kemungkinan kondisi. Hal ini dapat dilihat pada Tabel 4.1.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
46
Tabel 4.1 Logika Pergerakan Robot Berdasarkan Pembacaan Sensor Jarak
Kondisi C B A D Gerakan Robot
1 0 0 0 0 Balik Arah
2 0 0 0 1 Belok Kanan
3 0 0 1 0 Belok Kiri
4 0 0 1 1
5 0 1 0 0
6 0 1 0 1
7 0 1 1 0
8 0 1 1 1
Belok Kanan
9 1 0 0 0
10 1 0 0 1
11 1 0 1 0
12 1 0 1 1
Belok Kiri
13 1 1 0 0
14 1 1 0 1
Maju
15 1 1 1 0
16 1 1 1 1
Maju / Belok kiri *
*Maju pada mode lapangan dan belok kiri pada mode ruangan
Ide dasar dari penentuan gerakan robot berdasarkan pembacaan sensor jarak
adalah bagaimana agar robot dapat bergerak secara efektif menghindari tabrakan dengan
benda yang menghalangi jalannya dan bernavigasi didalam ruangan. Dari Tabel 4.1
dapat dilihat bahwa pada bagian jelajah terdapat dua mode, yaitu mode ruangan dan
mode lapangan. Perbedan dari kedua mode ini hanya terdapat pada kondisi limabelas
dan enambelas. Dimana pada mode lapangan robot akan terus maju apabila sensor B dan
C tidak mendeteksi benda. Sedangkan pada mode ruangan, robot akan berbelok terus
berbelok ke kiri apabila sensor pabila sensor B dan C tidak mendeteksi benda dan sensor
jarak A tidak mendeteksi adanya dinding di sebelah kiri. Karena pada mode ruangan,
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
47
robot akan menjelajah ruangan dengan cara mengikuti dinding yang terdapat disebelah
kirinya.
Pada kondisi tigabelas dan empatbelas robot akan bergerak maju karena
terdeteksi benda disebelah kiri dan karena tidak terdeteksi adanya benda yang
menghalangi robot apabila gerakannya maju.
Pada kondisi sembilan hingga duabelas robot akan berbelok ke kiri karena sensor
B mendeteksi keberadaan benda di depan kanan robot, sehingga untuk menghindari
tabrakan dengan benda tersebut robot harus berbelok ke kiri. Dalam hal ini pembacaan
sensor A dan D diabaikan.
Pada kondisi lima hingga delapan robot akan berbelok ke kanan karena sensor
jarak C mendeteksi keberadaan benda di depan kanan robot, sehingga untuk
menghindari benda tersebut robot harus berbelok ke kanan. Dalam hal ini pembacaan
sensor A dan D juga diabaikan.
Pada kondisi empat robot berbelok ke kanan karena sensor B dan C mendeteksi
ada benda tepat didepan robot. Sehingga untuk menghindarinya robot harus berbelok ke
kanan atau kekiri. Dalam hal ini berbelok ke kanan dipilih agar robot dapat
memposisikan benda atau dinding itu disebelah kirinya. Hal ini akan menjadi penting
apabila robot berjalan dalam mode ruangan.
Pada kondisi tiga robot akan berbelok ke kiri karena sensor B, C dan D
mendeteksi ada benda tepat didepan dan dikanan robot. Sehingga untuk menghindarinya
robot harus berbelok kekiri.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
48
Pada kondisi dua robot akan berbelok ke kanan karena sensor A, B dan C
mendeteksi keberadaan benda tepat di depan dan dikiri robot. Sehingga untuk
menghindarinya robot harus berbelok ke kanan.
Sedangkan pada kondisi satu semua sensor jarak mendeteksi keberadaan benda
di sekeliling robot. Sehingga untuk menghindarinya robot harus berbalik arah. Robot
berbalik arah dengan cara berbelok kanan hingga sensor B dan C tidak mendeteksi ada
benda tepat dihadapan robot.
Dengan demikian robot dapat menentukan setiap tindakan berdasarkan setiap
kemungkinan kondisi yang ada. Namun untuk menentukan tindakan apa yang akan
dilakukan, mikrokontroler tidak harus memeriksa pembacaan setiap sensor jarak, hal ini
dapat dilihat pada diagram alir pada Gambar 4.2.
Gambar 4.2 Diagram Alir Bagian Jelajah
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
49
Dari Gambar 4.2 dapat dilihat bahwa urutan prioritas pemeriksaan sensor adalah
sensor C dan sensor B, setelah itu sensor A dan sensor D. Pembacaan sensor A dan D
diperiksa jika pembacaan sensor C dan B bernilai LOW (kondisi 1-4) dan jika kondisi
yang terjadi adalah kondisi limabelas atau enambelas.
IV.3 Bagian penemuan_api
Seperti yang telah dijelaskan pada sub bab III.3, robot pemadam api Phoenix
menggunakan sembilan buah phototransistor yang dibagi dalam 5 kelompok: A, B, C, D
dan E. Hal ini ditunjukkan oleh Gambar 4.3. Mikrokontroler akan mengetahui
keberadaan api lilin disekeliling robot ketika salah satu pin I/O yang terhubung ke
rangkaian sensor api bernilai HIGH. Karena terdapat lima kelompok phototransistor,
maka akan ditemukan tiga puluh dua kemungkinan kondisi. Tabel 4.2 menunjukkan
ketigapuluh dua kondisi itu.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
50
Tabel 4.2 Logika Pergerakan Robot Berdasarkan Pembacaan Sensor Api
Depan
Depan
kiri
Depan
kanan
Kiri Kanan
Kondisi
C B D A E
Gerakan Robot
1 0 0 0 0 0 Dilarang*
2 0 0 0 0 1 Belok kanan
3 0 0 0 1 0
4 0 0 0 1 1
Belok kiri
5 0 0 1 0 0
6 0 0 1 0 1
7 0 0 1 1 0
8 0 0 1 1 1
Belok kanan
9 0 1 0 0 0
10 0 1 0 0 1
11 0 1 0 1 0
12 0 1 0 1 1
13 0 1 1 0 0
14 0 1 1 0 1
15 0 1 1 1 0
16 0 1 1 1 1
Belok kiri
17 1 0 0 0 0
18 1 0 0 0 1
19 1 0 0 1 0
20 1 0 0 1 1
Maju
21 1 0 1 0 0
22 1 0 1 0 1
23 1 0 1 1 0
24 1 0 1 1 1
Belok kanan
25 1 1 0 0 0
26 1 1 0 0 1
27 1 1 0 1 0
28 1 1 0 1 1
Belok kiri
29 1 1 1 0 0
30 1 1 1 0 1
31 1 1 1 1 0
32 1 1 1 1 1
Maju
* Kondisi nomor satu terlarang karena program akan jump ke bagian penemuan_api
hanya jika api lilin terdeteksi. Sehingga ketika bagian penemuan_api dieksekusi, tidak
mungkin tidak ada api lilin yang terdeteksi.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
51
Ide dasar dari penentuan gerakan robot berdasarkan pembacaan sensor api adalah
bagaimana agar robot dapat bergerak secara efektif berputar kearah api lilin dan maju
mendekatinya dalam garis lurus. Perhatikan Gambar 4.3.
Gambar 4.3 Daerah Pendeteksian Sensor Api
Apabila api lilin yang terdeteksi berada pada daerah A dan B, robot akan
berputar ke kiri hingga api lilin berada di daerah C2. Apabila api lilin berada pada
daerah D dan E, robot akan berputar ke kanan hingga api lilin berada pada daerah C2.
Ketika api lilin berada di daerah C2, robot akan bergerak maju hingga mencapai jarak 4
cm dari lillin.
Apabila terdapat lebih dari satu api lilin, maka lilin yang terlebih dahulu
dipadamkan (berdasarkan prioritas) adalah lilin yang terdapat disebelah depan, depan
kiri, depan kanan, kiri dan yang terakhir kanan. Dari Gambar 4.4 dapat dilihat bahwa
untuk menentukan tindakan apa yang akan dilakukan, mikrokontroler tidak harus
memeriksa pembacaan setiap sensor api.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
52
Start
Adaapililindi
depan?
Tidak
Ya
Adaapililindi
depankiri?
Tidak
Ya
Adaapililindi
depankanan?
Tidak
Ya
Adaapililindi
kiri?
Tidak
Ya
Adaapililindi
kanan?
Tidak
Ya
Adaapililindi
depankiri?
Tidak
Ya
Adaapililindi
depankanan?
Tidak
Ya
BelokKanan
Adaapililindi
depankanan?
Ya
BelokKiri
BelokKanan
Tidak
Maju
Keduasensor
jarakdepan
mendeteksi
batanglilin?
Tidak
Ya
Berhentidan
nyalakankipas
angin
Apililinmasih
terdeteksi?
Ya
Tidak
Matikankipas
angindan
mundur
beberapacm
Jumpkeawal
Finish
Gambar 4.4 Diagram Alir Bagian penemuan_api
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
BAB V
IMPLEMENTASI DAN PENGUJIAN
V.1. Implementasi
Perancangan robot pemadam api terdiri dari perancangan software dan
perancangan hardware. Software ini ditulis dalam bahasa assembly dan akan ditanamkan
pada mikrokontroler AT89C51. Software yang digunakan sebagai assembler untuk
menghasilkan file HEX dari bahasa assembly yang digunakan adalah 8051 Editor,
Assembler, Simulator (IDE) Evaluation Vertion 1.20 dari AceBus. Untuk menanamkan
file HEX pada mikrokontroler digunakan program EZ-Downloader V4.0 dan AT89C51
Programmer. Hasil implementasi kemudian diuji secara hardware.
Tahap-tahap implementasi adalah sebagai berikut:
1. Meng-instal program 8051 Editor, Assembler, Simulator (IDE) Evaluation
Vertion 1.20 dan EZ-Downloader V4.0. Sistem operasi yang digunakan adalah
Windows 2000 Profesional Service Pack 4.
2. Menulis program dalam bahasa assembly dengan 8051 Editor, Assembler,
Simulator (IDE) dan meng-compile-nya sehingga dihasilkan file HEX.
3. Menenam file HEX ke mikrokontroler AT89C51 dengan menggunakan EZ-
Downloader dan AT89C51 Programmer.
4. Menguji hardware yang telah ditanam program.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
54
V.2 Pengujian
Pengujian software dan pengujian hardware dilakukan secara terpisah dan secara
keseluruhan. Pengujian robot secara terpisah terdiri dari pengujian rangkaian motor
dengan rangkaian Duty Cycle Modulation, rangkaian sensor jarak GP2D12 dengan
rangkaian pembandingnya, rangkaian sensor api dengan rangkaian pembandingnya dan
pengujian sistem secara keseluruhan.
V.2.1 Pengujian Rangkaian Sensor Jarak dengan Pembanding Tegangan
Tujuan pengujian sensor jarak dengan rangkaian pembanding adalah agar sensor
jarak dapat mendeteksi benda pada jarak tertentu. Hasilnya dapat diketahui dari menyala
atau padamnya LED indikator. Pengujian sensor jarak dilakukan sebagai berikut:
1. Sensor jarak dihubungkan dengan pembanding tegangan dan
mikrokontroler AT89C51 yang telah ditanam program seperti terdapat
pada lampiran B.
2. Besar tahanan variabel diatur agar sensor dapat mendeteksi benda pada
jarak tertentu.
3. Sebuah benda didekatkan pada sensor jarak GP2D12 hingga LED
indikator menyala. Hasil pengujian menunjukkan bahwa sensor jarak
dapat mendeteksi benda pada jarak 10 80 cm..
4. Setelah diuji, sensor jarak GP2D12 diletakkan pada badan robot dengan
posisi, kemiringan dan kepekaan tertentu.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
55
V.2.2 Pengujian Rangkaian Sensor Api dengan Pembanding Tegangan
Tujuan pengujian sensor api dengan rangkaian pembanding adalah agar sensor
dapat mendeteksi keberadaan api lilin pada jarak yang maksimal. Hasilnya dapat
diketahui dari menyala atau padamnya LED indikator. Pengujian sensor api dilakukan
sebagai berikut:
1. Sensor api dihubungkan dengan pembanding tegangan dan
mikrokontroler AT89C51 yang telah ditanam program seperti terdapat
pada lampiran B.
2. Besar tahanan variabel diatur agar sensor dapat mendeteksi api pada jarak
maksimal.
3. Sebuah lilin yang menyala didekatkan pada sensor api hingga LED
indikator menyala. Hasil pengujian menunjukkan bahwa sensor dapat
mendeteksi api lilin pada jarak maksimal 60 cm dengan toleransi 3 cm.
4. Setelah diuji, sensor api diletakkan pada badan robot.
V.2.3 Pengujian Rangkaian Motor dc dengan Rangkaian Duty Cycle
Modulation
Tujuan pengujian rangkaian motor dc dengan rangkaian duty cycle modulation
adalah agar kecepatan dan arah perputaran motor dc dapat dikendalikan. Dalam hal ini
arah perputaran motor dc diatur dengan menghubungkan pin input IC L293D ke ground
atau Vcc, sedangkan kecepatan motor dc diatur dengan mengubah nilai sebuah
hambatan geser pada rangkaian duty cycle modulation. Pengujian menunjukkan bahwa
rangkaian dapat bekerja dengan baik.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
56
V.2.4 Pengujian Robot Pemadam Api
Tujuan pengujian ini adalah untuk menunjukkan bahwa robot pemadam api
dapat bekerja sesuai dengan tujuan pembuatannya. Pengujian dilakukan sebagai berikut
berikut:
1. Robot diletakkan didalam ruangan dengan beberapa benda terdapat
didalamnya. Kemudian robot dijalankan dengan mode lapangan. Tujuannya
adalah untuk mengetahui apakah robot mampu menghindari tabrakan dengan
benda yang terdapat didepannya.
2. Robot diletakkan didalam ruangan kosong, kemudian robot dijalankan
dengan mode ruangan. Tujuannya adalah untuk mengetahui apakah robot
mampu mengitari ruangan dengan mengikuti dinding yang terdapat di
sebelah kirinya.
3. Robot diletakkan didalam ruangan yang berisi sebuah kardus ditengahnya.
Robot didekatkan kepada kardus dan dijalankan dengan mode ruangan.
Tujuannya adalah untuk mengetahui apakah robot mampu mengitari kardus
dengan baik.
4. Robot diletakkan pada sebuah ruangan yang berisi beberapa benda dan lilin.
Kemudian robot dijalankan dengan mode ruangan. Tujuannya adalah untuk
mengetahui apakah robot mampu memadamkan api lilin.
Hasil yang dicapai dari pengujian ini adalah sebagai berikut:
1. Robot bergerak maju dan mampu menghindari tabrakan dengan benda yang
terdapat didepannya.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
57
2. Robot mampu mengitari ruangan dengan mengikuti dinding yang terdapat
disebelah kirinya. Tetapi robot bergerak secara zig-zag sehingga
perpindahannya lambat.
3. Robot mampu mengitari kardus yang terdapat ditengah ruangan. Tetapi
dengan gerakan zig-zag.
4. Robot belum mampu memadamkan api lilin yang berhasil dideteksinya
dengan baik karena masih terdapat kekurangan dari sisi perangkat keras dan
perangkat lunak.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
58
BAB VI
KESIMPULAN DAN SARAN
VI.1. Kesimpulan
Dari perancangan dan pengujian robot pemadam api dapat diambil beberapa
kesimpulan sebagai berikut:
1. Rangkaian schmitt trigger pada pada Op-Amp untuk sensor jarak dapat
menstabilkan keluarannya.
2. Penggunaan roda gigi pada motor dc memberi keuntungan yaitu memperbesar
torsi, memperlambat putaran roda, mempercepat proses pengereman.
3. Robot pemadam api belum bekerja dengan baik dalam mencari dan
memadamkan api lilin yang terdapat disekitarnya karena terdapat kekurangan
dari perangkat keras dan perangkat lunaknya.
VI.2. Saran
1. Penggunaan sensor api yang lebih peka akan mempercepat proses penemuan api
dan meningkatkan kinerja robot.
2. Pemadaman api akan menjadi lebih cepat apabila robot menggunakan air atau
gas CO
2
.
3. Robot akan bekerja lebih efektif dalam menjelajah ruangan apabila dapat beralih
dari mode rangan ke mode lapangan secara otomatis.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
59
DAFTAR PUSTAKA
1. Mc Comb, Gordon, The Robot Builders Bonaza (second edition), McGraw-
Hill, 2001.
2. Siegward, Roland and Nourbakhsh, Illah R., Introduction to Automous Mobile
Robots, The MIT Press, 2004.
3. Catsoulis, Jhon, Designing Embedded Hardware, O'Reilly, 2002.
4. Mazidi, Muhammad Ali and Mazidi, Janice Gillispie, The 8051 Microcontroller
and Embedded Systems, Prentice Hall, 2000.
5. Budiharto, Widodo, Panduan Lengkap Belajar Mikrokontroler dan Aplikasi
Mikrokontroler, PT Elex Media Komputindo, 2005
6. AT89C51 Datasheet, Atmel Corporation, 2000.
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
LAMPIRAN A
Rangkaian Robot Pemadam Api Phoenix
8 1
4 5
5V
C1
0,1uF
C2
0,01uF
C3
0,1uF
R210kOhm
R1
100kOhm
D1
D2
16 1
9 8
9V
5V
14 1
7 8
5V
10k
Ohm
5v
10k
Ohm
10k
Ohm
10k
Ohm
Photo
TransistorA1
ATMEL
AT89C51
40
30
20
1
10
21
10uF
10k
Ohm
5V
5V
33pF
33pF
12MHz
P0
P1
P3
P2
8
32
28
17
10kOhm
S
39
14 1
7 8
20kOhm
5V
C D E1
5V
PN2222A
10k
Ohm
B
10k
Ohm
A2
10k
Ohm
A3
10k
Ohm
E2
10k
Ohm
E3
470Ohm
14 1
7 8
5V
14 1
7 8
20k
Ohm
5V
5V
10kOhm
Vo
GND
Vcc
Vo
GND
Vcc
Vo
GND
Vcc
Vo
GND
Vcc
5V
GP2D12
GP2D12
GP2D12
GP2D12
A
B
C
D
20kOhm
5V
Motor
Kiri
Motor
Kanan
Kipas
Angin
1,5 k Ohm
100kOhm
1MOhm
Gambar 3.23 Rangkaian Robot Pemadam Api
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
LAMPIRAN B
Source Code
Robot Pemadam Api Phoenix.A51
org 0h
jmp mulai
org 30h
mulai: mov p0, #00000000b ; p0.0 - p0.4 untuk sensor api
mov p1, #00001111b ; p1.0 - p1.3 untuk sensor jarak
mov p2, #00000000b ; robot diam, kipas mati
awal: mov p3, #11111111b ; matikan LED status
setb p1.5 ; matikan LED status
jb p1.0,cek11 ; jika tidak ada benda di kiri, cek apakah ada benda di depan kiri
clr p3.5 ; jika ada benda dikiri, nyalakan LED status
cek11: jb p1.1,cek12 ; jika tidak ada benda di depam kiri, cek apakah ada benda di depan kanan
clr p3.6 ; jika ada benda di depan kiri, nyalakan LED status
cek12: jb p1.2,cek13 ; jika tidak ada benda di depam kanan, cek apakah ada benda di kanan
clr p3.7 ; jika ada benda di depan kanan, nyalakan LED status
cek13: jb p1.3,cek00 ; jika tidak ada benda di kanan, cek apakah ada api di kiri
clr p1.5 ; jika ada benda di kanan, nyalakan LED status
cek00: jnb p0.0, cek01 ; jika tidak ada api di kiri, cek apakah ada api di depan kiri
clr p3.0 ; jika ada api di kiri, nyalakan LED status
cek01: jnb p0.1, cek02 ; jika tidak ada api di depan kiri, cek apakah ada api di depan
clr p3.1 ; jika ada api di depan kiri, nyalakan LED status
cek02: jnb p0.2, cek03 ; jika tidak ada api di depan, cek apakah ada api di depan kanan
clr p3.2 ; jika ada api di depan, nyalakan LED status
cek03: jnb p0.3, cek04 ; jika tidak ada api di depan kanan, cek apakah ada api di kanan
clr p3.3 ; jika ada api di depan kanan, nyalakan LED status
cek04: jnb p0.4, terus ; jika tidak ada api di kanan, jump ke terus
clr p3.4 ; jika ada api di kanan, nyalakan LED status
terus: jnb p1.1, jelajah ; kalau didepan ada benda yang terdeteksi robot, jump ke mode jelajah
jnb p1.2, jelajah
jb p0.0, penemuan_api ; jika tidak ada benda didepan robot tetapi ada api yang terdetaksi, jump ke penemuan_api
jb p0.1, penemuan_api
jb p0.2, penemuan_api
jb p0.3, penemuan_api
jb p0.4, penemuan_api
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------
;Catatan : Angka-angka dalam kurung pada bagian ini mengacu pada Tabel 4.1 Halaman 38
jelajah: jnb p1.1, cek ; jump jika ada benda di depan kiri (yg lolos 9-16)
jnb p1.2, belki ; jump jika ada benda di depan kanan (9-12, yg lolos 13-16)
jnb p1.0, maju ; (13&14)
; menentukan mode ruangan atau mode lapangan (15,16)
jb p1.4, belki ; 0 = mode lapangan, 1 = mode dalam ruangan (15&16 mode ruangan)
jmp maju ; (15&16 mode lapangan)
; (1-8)
cek: jnb p1.2,cek2 ; jump jika juga ada benda di depan kanan (yang lolos 5-8)
jmp belka ; (5-8)
; (1-4)
cek2: jnb p1.3, cek3 ; jump bila ada benda dikanan (yang lolos 2&4)
jmp belka ; (2&4)
; (1&3)
cek3: jnb p1.0, balikarah ; jump jika juga ada benda di kiri (1)
jmp belki ; (3)
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------
;Catatan : Angka-angka dalam kurung pada bagian ini mengacu pada Tabel 4.3 Halaman 42
penemuan_api: jb p0.2, uji ; ada api di depan robot (17-32), yang lolos (0-16)
jb p0.1, belki ; jika ada lilin di depan kiri, belok kiri (9-16), yang lolos (1-8)
jb p0.3, belka ; jika ada lilin dikanan, belok kanan (5-8), yang lolos (1-4)
jb p0.0, belki ; (3&4), yang lolos (1&2)
jb p0.4, belka ; jika belakang kanan ada lilin, belok kanan (2)
jmp awal
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
; (17-32)
uji: jb p0.1, uji1 ; (25-32), yang lolos (17-24)
jb p0.3, belka ; jika ada lilin dikanan, belok kanan (21-24)
jmp maju1 ; jika ada lilin didepan robot, maju (17-20)
; (25-32)
uji1: jb p0.3, maju1 ; jika ada benda didepan robot, maju (28-32)
jmp belki ; jika ada lilin di depan kiri, belok kiri (25-28)
maju1: mov p2,#00001010b ; maju
acall tunda
jnb p1.2, uji2 ; jika IR sensor depan mendeteksi bahwa lilin sudah dekat, maka lilin siap dimatikan
jmp dekati
uji2: jnb p1.1, padamkan
jmp dekati
padamkan: mov p2,#00010000b ; berhenti dan nyalakan kipas angin
acall tunda1
acall tunda1
acall tunda1
jb p0.2, padamkan
clrb p2.4 ; matikan kipas angin
mov p2,#00000101b ; mundur
acall tunda
acall tunda
jmp awal
dekati: jnb p1.1, belki1 ; jika lilin sudah dihadapan, dekati hingga posisinya tepat untuk dipadamkan
jnb p1.2, belka1
jmp maju1
;-------------------------------------------------------------------------------------------------------------------------------------------------------------------
maju: mov p2,#00001010b ; maju
acall tunda
jmp awal
belki: mov p2,#00001001b ; belok kiri
acall tunda
jmp awal
belka: mov p2,#00000110b ; belok kanan
acall tunda
mp awal
balikarah: mov p2,#00000110b ; terus belok kanan hingga tidak ada benda di depan, dapan kiri dan depan kanan
jb p1.1, balikarah
jb p1.2, balikarah
jmp awal
belki1: mov p2,#00001001b ; belok kiri
acall tunda
jmp maju1
belka1: mov p2,#00000110b ; belok kanan
acall tunda
jmp maju1
tunda: mov r6,#1fh
td: mov R7,#0ffh
djnz r7,$
djnz r6,td
ret
tunda1: mov r5,#05h
td2: mov r6,#0ffh
td1: mov r7,#0ffh
djnz r7,$
djnz r6,td1
djnz r5,td2
ret
end
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
LAMPIRAN C
Gambar Fisik Phoenix
Sensor Api
Kipas Angin
Sensor nfra
Merah
Sensor nfra
Merah
15 cm
15 cm
21,5 cm
Depan
K
ip
a
s
a
n
g
i
n
Samping
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008
Roda Belakang
Roda Depan
B C
12 cm
15 cm
15 cm
A D
Atas
Raymond T.Simanjuntak : Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51, 2008
USU e-Repository 2008