Perancangan Robot Pemadam Api Berbasis Mikrokontrolera T89C51

(1)

PERANCANGAN ROBOT PEMADAM API

BERBASIS MIKROKONTROLER AT89C51

Diajukan untuk memenuhi salah satu persyaratan dalam menyelesaikan pendidikan sarjana (S-1) pada Departeman Teknik Elektro

Oleh:

Raymond T. Simanjuntak 020402024

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

PERANCANGAN ROBOT PEMADAM API BERBASIS MIKROKONTROLER AT89C51

Oleh:

Raymond T. Simanjuntak NIM. 020402024

Tugas Akhir ini diajukan untuk melengkapi salah satu syarat untuk memperoleh gelar sarjana Teknik Elektro

Disitujui oleh: Dosen Pembimbing,

Ir. Kasmir Tanjung NIP. 132 206 823

Diketahui Oleh:

Ketua Departemen Teknik Elektro FT USU,

Prof. Dr. Usman S. Baafai NIP. 130 365 322

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS SUMATERA UTARA MEDAN


(3)

KATA PENGANTAR

Puji dan syukur penulis ucapkan kepada Tuhan atas penyertaan dan anugrah-Nya sehingga pada akhirnya penulis dapat menyelesaikan skripsi ini. Skripsi ini berjudul “Perancangan Robot Pemadam Api berbasis Mikrokontroler AT89C51”.

Penulis menyadari bahwa pada hakekatnya penulisan skripsi ini tidak dapat diselesaikan penulis tanpa bantuan dan dorongan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terimakasih kepada:

1. Bapak Prof. Dr. Usman Baafai selaku ketua Departemen Teknik Elektro dan Bapak Drs. Hasdari Helmi, MT selaku sekretaris Departemen Teknik Elektro. 2. Bapak Rachmad Fauzi, ST, MT selaku dosen wali penulis yang membimbing

penulis dalam perkuliahan.

3. Bapak Kasmir Tanjung, Ir selaku dosen pembimbing penulis yang telah membimbing dan mengarahkan penulisan skripsi ini.

4. Seluruh dosen pengajar dan staf pegawai Departemen Teknik Elektro.

5. Teman-teman yang tidak henti-hentinya memberi perhatian, semangat dan waktunya untuk berdoa sehingga penulis mampu menyelesaikan skripsi ini. Demikianlah skripsi ini penulis selesaikan, semoga bermanfaat bagi perkembangan robotika di Indonesia. Sekian dan terimakasih.

Medan, 6 Pebruari 2008


(4)

ABSTRAK

Secara umum robot dapat didefenisikan sebagai sebuah piranti mekanik yang mampu melakukan pekerjaan manusia atau berprilaku seperti manusia. Salah satu pekerjaan manusia yang dapat dilakukan robot adalah kegiatan pemadaman kebakaran. Robot Pemadam Api dirancang untuk mencari dan memadamkan api lilin yang terdapat disekitarnya. Untuk itu robot dilengkapi dengan sensor jarak dan sensor api agar dapat menjelajah ruangan tanpa menabrak benda serta dapat mendeteksi keberadaan api lilin. Program untuk menjalankan robot ditulis dalam dua bagian: bagian jelajah dan bagian penemuan_api. Pada saat tombol catu daya di-ON-kan, bagian jelajah akan dieksekusi. Robot akan menjelajah ruangan dan menghindari tabrakan dengan benda yang terdapat disekelilingnya. Pada saat robot mendeteksi keberadaan api lilin yang terdapat disekitarnya, bagian penemuan_api akan dieksekusi. Pada bagian ini, robot akan berputar kearah api lilin dan bergerak lurus mendekatinya hingga pada jarak yang mana api lilin dapat dipadamkan. Kemudian robot akan memadamkan api dan kembali menjelajah ruangan sampai tombol catu daya di-OFF-kan.


(5)

DAFTAR ISI

LEMBAR PENGESAHAN ... i

ABSTRAK ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... vii

DAFTAR TABEL ... ix

BAB I PENDAHULUAN ... 1

I.1 Latar Belakang ... 1

I.2 Tujuan Penulisan ... 2

I.3 Rumusan Masalah ... 2

I.4 Batasan Masalah ... 3

I.5 Metodologi Perancangan ... 4

I.6 Sistematika Penulisan ... 4

BAB II MIKROKONTROLER AT89C51 DAN KOMPONEN PENDUKUNG ... 6

II.1Mikrokontroler AT89C51 ... 6

II.1.1 Susunan Pin AT89C51 ... 6

II.1.2 Struktur Perangkat Keras AT89C51 ... 8

II.1.2.1 RAM Internal ... 10

II.1.2.2 Register Fungsi Khusus ... 11

II.2 Sensor Infra Merah Sharp GP2D12 ... 12


(6)

II.4 OP-Amp LM324 ... 15

II.5 Motor dc dan Motor Driver L293D ... 16

II.5.1 Motor dc ... 16

II.5.2 Motor Driver L293D ... 17

II.6 Timer 555 ... 17

II.7 Transistor 2PA733 ... 19

BAB III PERANCANGAN PERANGKAT KERAS ... 21

III.1 Spesifikasi Sistem ... 21

III.2 Rangkaian Dasar Mikrokontroler AT89C51 ... 22

III.2.1 Rangkaian Reset ... 22

III.2.2 Rangkaian Clock ... 24

III.2.3 Hubungan Port-port ... 25

III.3 Rangkaian Sensor Jarak ... 27

III.4 Rangkaian Sensor Api ... 28

III.5 Rangkaian Pembanding Tegangan ... 31

III.5.1 Rangkaian Pembanding Untuk Sensor Api ... 31

III.5.2 Rangkaian Pembanding Untuk Sensor Jarak ... 33

III.6 Rangkaian Motor dc ... 35

III.7 Rangkaian Duty Cycle Modulation ... 37

III.8 Rangkaian Saklar ... 39

III.9 Rangkaian Kipas Angin ... 40

III.10 Rangkaian LED Indikator ... 41

III.11 Rangkaian Robot Pemadam Api ... 42

BAB IV PERANCANGAN PERANGKAT LUNAK ... 43


(7)

IV.2 Bagian Jelajah ... 45

IV.3 Bagian Penemuan Api ... 49

BAB V IMPLEMENTASI DAN PENGUJIAN ... 53

V.1. Implementasi ... 53

V.2 Pengujian ... 54

V.2.1 Pengujian Rangkaian Sensor Jarak Dengan Pembanding Tegangan ... 54

V.2.2 Pengujian Rangkaian Sensor Api Dengan Pembanding Tegangan ... 55

V.2.3 Pengujian Rangkaian Motor dc dengan Rangkaian DCM ... 55

V.2.4 Pengujian Robot Pemadam Api ... 56

BAB VI KESIMPULAN DAN SARAN ... 58

VI.1. Kesimpulan ... 58

VI.2. Saran ... 58

DAFTAR PUSTAKA ... 59

LAMPIRAN A Rangkaian Robot Pemadam Api Phoenix ... 60

LAMPIRAN B Source Code... 61


(8)

DAFTAR GAMBAR

Gambar 2.1 Konfigurasi Pin Mikrokontroler AT89C51 ... 6

Gambar 2.2 Arsitektur AT89C51 ... 9

Gambar 2.3 Susunan SFR dan Susunan RAM internal AT89C51 ... 12

Gambar 2.4 Sensor Jarak GP2D12 dan Konfigurasi Pinnya ... 13

Gambar 2.5 Grafik Karakteristik Output GP2D12 Terhadap Benda yang Terdapat Dihadapannya ... 14

Gambar 2.6 Phototransistor ... 14

Gambar 2.7 Grafik Karakteristik Phototransistor ... 15

Gambar 2.8 Pin-pin dalam LM324 ... 16

Gambar 2.9 Diagram Block IC L293D ... 17

Gambar 2.10 Pin-pin dalam Timer 555 ... 18

Gambar 2.11 Transistor PN2222A ... 20

Gambar 3.1 Diagram Blok Perancangan Perangkat Keras ... 21

Gambar 3.2 Rangkaian Reset(A) dan Rangkaian Setaranya(B) ... 23

Gambar 3.3 Rangkaian Clock ... 25

Gambar 3.4 Hubungan Pin-pin Mikrokontroler ... 26

Gambar 3.5 Rangkaian Sensor GP2D12 ... 27

Gambar 3.6 Peletakan Sensor GP2D12 pada Badan Robot ... 28

Gambar 3.7 Rangkaian Sensor Api ... 29

Gambar 3.8 Susunan Phototransistor pada Badan Robot ... 30

Gambar 3.9 Hasil Penggabungan Beberapa Phototransistor ... 30


(9)

Gambar 3.11 Rangkaian Pembanding Tegangan Untuk Sensor Api ... 32

Gambar 3.12 Rangkaian Pembanding Tegangan Untuk Sensor Api Menggunakan LM324N ... 33

Gambar 3.13 Rangkaian Pembanding Untuk Sensor Jarak ... 34

Gambar 3.14 Rangkaian Pembanding Tegangan Untuk Sensor Jarak Menggunakan LM324N ... 35

Gambar 3.15 Rangkaian Motor dc ... 36

Gambar 3.16 Gelombang Dengan Frekwensi Duty Cycle 10%, 50% dan 90%... 37

Gambar 3.17 Rangkaian Duty Cycle Modulation ... 38

Gambar 3.18 Rangkaian Saklar ... 40

Gambar 3.19 Rangkaian Kipas Angin ... 41

Gambar 3.20 Rangkaian LED Indikator ... 42

Gambar 4.1 Diagram Alir Perangkat Lunak ... 44

Gambar 4.2 Diagram Alir Bagian Jelajah ... 48

Gambar 4.3 Daerah Pendeteksian Sensor Api ... 51


(10)

DAFTAR TABEL

Tabel 2.1 Keterangan Pin Out AT89C51 ... 7

Tabel 2.2 Karakteristik GP2D12 ... 13

Tabel 2.3 Kegunaan pin-pin pada Timer 555 ... 19

Tabel 3.1 Hubungan pin Enable, Input dan Output IC L293D ... 37

Tabel 4.1 Logika Pergerakan Robot Berdasarkan Pembacaan Sensor Jarak ... 46


(11)

I.1 Latar Belakang

Teknologi adalah cara untuk mendapatkan sesuatu dengan kualitas lebih baik (lebih mudah, lebih murah, lebih cepat dan lebih menyenangkan). Salah satu teknologi yang berkembang pesat saat ini adalah teknologi dibidang kerobotan. Robot berguna untuk membantu manusia dalam melakukan pekerjaan tertentu misalnya untuk melakukan pekerjaan yang memerlukan ketelitian tinggi, beresiko tinggi, membosankan atau yang membutuhkan tenaga besar. Menurut buku The Robot Builder's Bonanza yang ditulis oleh Gordon McComb secara umum robot dapat didefenisikan sebagai sebuah piranti mekanik yang mampu melakukan pekerjaan manusia atau berprilaku seperti manusia.

Salah satu pekerjaan manusia yang dapat dilakukan robot adalah kegiatan pemadaman kebakaran. Jenis pekerjaan ini membutuhkan reaksi cepat karena kebakaran dapat dihindari apabila api dapat dipadamkan ketika belum menyebar. Ketika api telah menyebar pekerjaan pemadaman kebakaran akan menjadi pekerjaan yang sulit dan beresiko tinggi. Masalah kebakaran dapat dikurangi apabila sumber api dapat ditemukan dan dimatikan dalam waktu singkat.

Dengan latar belakang tersebut maka penulis membuat “Perancangan robot pemadam api berbasis mikrokontroler AT89C51”. Dalam perancangan ini, api yang akan dipadamkan adalah api lilin.


(12)

I.2 Tujuan Penulisan

Tujuan penulisan tugas akhir ini adalah sebagai berikut:

1. Untuk merancang robot berbasis mikrokontroler AT89C51 yang dapat mencari dan memadamkan api lilin yang berada disekitarnya.

2. Mengaplikasikan pelajaran digital, elektronika dan mikroprosesor yang telah dipelajari selama perkuliahan.

3. Memperkaya pengetahuan penulis dan pembaca tentang mikrokontroler dan aplikasinya.

I.3 Rumusan Masalah

Robot bertugas untuk mencari dan memadamkan api lilin yang terdapat disekitarnya. Agar dapat melakukan tugas tersebut maka robot harus mampu menjelajah ruangan tanpa menabrak dinding atau benda lainnya, mendeteksi keberadaan api lilin yang terdapat disekitarnya, mendekati dan memadamkan api lilin itu kemudian kembali menjelajah ruangan.

Pembuatan robot pemadam api meliputi perancangan perangkat keras dan perangkat lunak.

Perangkat keras robot dirancang agar mikrokontroler dapat menerima masukan dari sensor jarak dan sensor api kemudian memutuskan pergerakan motor dc melalui H-bridge L293D dan transistor hingga fungsi robot untuk memadamkan api lilin yang terdapat disekitarnya tercapai. Untuk mendeteksi dinding atau benda yang terdapat disekitar robot digunakan sensor infra merah, sedangkan untuk mendeteksi keberadaan api lilin digunakan phototransistor. Robot menggunakan dua buah motor dc sebagai penggerak roda dan sebuah motor dc untuk menggerakkan kipas angin


(13)

yang akan memadamkan api lilin. Sebagai pengendali robot digunakan mikrokontroler AT89C51.

Sedangkan perangkat lunak ditulis 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.

I.4 Batasan Masalah

Agar perancangan yang dibahas dalam tugas akhir ini tidak terlalu luas dan menyimpang dari topik yang telah ditentukan, maka penulis perlu membatasi permasalahan sebagai berikut:

1. Pembahasan tentang mikrokontroler AT89C51 hanya sebatas yang berkaitan dengan perancangan ini.

2. Pembahasan mengenai komponen pendukung yang meliputi: sensor infra merah GP2D12, phototransistor (sensor api), OP-AMP LM324N, motor dc, motor driver L293D, timer 555, dan komponen lainnya hanya sebatas teori umum dan yang berkaitan dengan perancangan robot pemadam api. 3. Api yang akan dipadamkan robot adalah api lilin. Lilin yang dipakai

adalah lilin putih dengan tinggi 14,5 cm dan berdiameter 1,5 cm.

4. Pembahasan cara kerja robot hanya sebatas menurut kebutuhan yang meliputi analisis rangkaian tiap-tiap blok baik secara perangkat keras maupun perangkat lunak.


(14)

I.5 Metodologi Perancangan

Metode perancangan yang dilakukan adalah sebagai berikut: 1. Studi literatur dan diskusi

Pada tahap pertama perancangan ini penulis akan mempelajari literatur yang berhubungan dengan perancangan robot pemadam api, mikrokontroler AT89C51 dan komponen pendukung yang digunakan. Penulis juga berdiskusi dengan dosen dan teman untuk memperkaya wawasan penulis mengenai perancangan robot pemadam api.

2. Perancang perangkat keras

Rangkaian yang akan dirancang meliputi rangkaian minimum mikrokontroler, rangkaian pengendali sensor dan rangkaian pengendali motor.

3. Perancang perangkat lunak

Setelah semua perangkat keras selesai dirakit maka akan dilakukan perancangan perangkat lunak yang terdiri dari diagram alir dan listing program.

4. Pengujian robot

Setelah perangkat keras dan perangkat lunak selesai dibuat, maka tahap berikutnya adalah pengujian robot. Jika hasil pengujian tidak sesuai dengan yang diharapkan, akan dilakukan perbaikan hingga tujuan tercapai.

I.6 Sistematika Penulisan

Tugas Akhir ini disusun berdasarkan kerangka penulisan sebagai berikut:

BAB I : PENDAHULUAN

Pada bab ini akan diuraikan mengenai latar belakang, tujuan, batasan masalah dan sistematika penulisan.


(15)

BAB II : MIKROKONTROLER AT89C51 DAN KOMPONEN PENDUKUNG

Bab ini berisi pembahasan mengenai mikrokontroler AT89C51 dan komponen pendukung yang digunakan dalam perancangan ini.

BAB III : PERANCANGAN PERANGKAT KERAS

Bab ini berisi perancangan perangkat keras robot pemadam api.

BAB IV : PERANCANGAN PERANGKAT LUNAK

Bab ini berisi pembahasan mengenai perangkat lunak yang ditulis agar robot pemadam api dapat bekerja dengan baik.

BAB V : IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi implementasi perancangan, pengujian komponen-komponen secara terpisah dan pengujian robot.

BAB VI : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran yang bermanfaat bagi perbaikan dan pengembangan robot pemadam api.


(16)

Dalam perancangan robot pemadam api digunakan mikrokontroler AT89C51 dan komponen pendukung seperti: sensor infra merah GP2D12, phototransistor (sensor api), OP-AMP LM324N, motor dc, motor driver L293D, timer 555, dan transistor 2PA773. Berikut penjelasannya.

II.1 Mikrokontroler AT89C51

AT89C51 merupakan mikrokontroler CMOS 8 bit dengan 4K bytes memori flash, 128 byte RAM internal, 32 pin Input-Output, dua buah timer / counter 16 bit, dan 6 sumber interupsi. Alasan pemilihan mikrokontroler ini sebagai komponen utama robot pemadam api adalah sebagai berikut:

1. Mempunyai 32 pin I/O

2. Kompatibel dengan produk MCS-51 lainnya 3. Harga perunitnya murah dan masih tetap diproduksi

II.1.1 Susunan Pin AT89C51


(17)

Kegunaan setiap pin pada mikrokontroller AT89C51 dapat dilihat pada tabel berikut.

Tabel 2.1 Keterangan pin out AT89C51

No. Pin Nama Pin Alternatif Keterangan

20 GND Ground

40 VCC Power supply

32 …39 P0.7…P0.0

D7…D0 dan A7…A0

Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.

Pada fungsi sebagai low order multiplex address, data

port ini akan mempunyai internal pull up.

1…8 P1.0…P1.7

Port ini mempunyai internal pull up dan berfungsi

sebagai input dengan memberikan logika 1 sebagai output port ini dapat memberikan output sink keempat buah input TTL.

21…28 P2.0…P2.7 A8…A15

Port ini mempunyai internal pull up dan berfungsi

sebagai input dengan memberikan output sink keempat buah input TTL.

10...17 Port 3

Sebagai I/O biasa port 3 mempunyai sifat yang sama dengan port 1 maupun port 2. Sedangkan sebagai fungsi spesial, port – port ini mempunyai keterangan sebagai berikut : 10 11 12 13 14 15 16 17 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD TXD 0 INT 1 INT T0 T1 WR RD

Port Serial Input. Port Serial Output. Port External Interupt 0. Port External Interupt 1. Port External Timer 0 input. Port External Timer 1 input.

External Data Memory WriteStrobe.

External Data Memory ReadStrobe.

9 RST Reset akan aktif dengan memberikan input high selama 2

cycle.

30 ALE PROG

Pin ini dapat berfungsi sebagai address latch enable

(ALE) yang me-latch low byte address pada saat

mengakses memori eksternal. ALE hanya akan aktif pada saat mengakses memori eksternal (Movx & Movc).

29 PSEN

Pin ini berfungsi pada saat mengeksekusi program yang terletak pada memori eksternal. PSEN akan aktif dua

kali setiap cycle.

31 EA VPP Pin ini akan berfungsi untuk menjalankan program yang ada pada memori internal pada kondisi

High.

19 XTAL 1 Input osilator.


(18)

II.1.2 Struktur Perangkat Keras AT89C51

AT89C51 adalah mikrokontroler keluaran Atmel dengan 4 kbyte Flash

PEROM (Programmable and Erasable Read Only Memory). AT89C51 merupakan memori dengan teknologi nonvolatile memory, isi memori tersebut dapat diisi ulang atau dihapus berkali-kali. Memori ini bisa digunakan untuk menyimpan instruksi (perintah) berstandar MCS-51 code sehingga memungkinkan mikrokontroler ini untuk bekerja dalam mode single chip operation yang tidak memerlukan memori eksternal untuk menyimpan source code tersebut. Gambar 2.2 menunjukkan blok diagram pada Mikrokontroler AT89C51.

AT89C51 mempunyai struktur memori yang terdiri atas :

1. RAM Internal

Memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variabel atau data yang bersifat sementara.


(19)

Gambar 2.2 Arsitektur AT89C51 2. Special Function Register (Register fungsi khusus)

Memori ini berisi register-register yang mempunyai fungsi-fungsi khusus yang disediakan oleh mikrokontroler tersebut, seperti timer, serial, dan lain-lain.

3. Flash PEROM

Memori ini digunakan untuk menyimpan instruksi-instruksi MCS51.

AT89C51 mempunyai struktur memori yang terpisah antara RAM Internal dan Flash PEROM-nya. RAM Internal dialamati oleh RAM Address Register

(Register Alamat RAM), sedangkan Flash PEROM yang menyimpan perintah-perintah MCS-51 dialamati oleh Program Address Register (Program Register Alamat). Dengan adanya struktur memori yang terpisah tersebut, walaupun RAM


(20)

Internal dan Flash PEROM mempunyai alamat awal yang sama yaitu alamat 00, namun secara fisiknya kedua memori tersebut tidak saling berhubungan.

II.1.2.1 RAM Internal

RAM internal terdiri atas :

1. Register Banks

AT89C51 mempunyai 8 buah register yang terdiri atas R0 hingga R7. Kedelapan buah register ini selalu terletak pada alamat 00H hingga 07H pada setiap kali sistem direset. Namun posisi R0 hingga R7 dapat dipindah ke bank 1 (08 hingga 0FH), bank 2 (10H hingga 17H) atau bank 3 (18H hingga 1FH) dengan mengatur bit RS0 dan RS1.

2. Bit Addressable RAM

RAM pada alamat 20H hingga 2FH dapat diakses secara pengalamatan bit (bit addressable) sehingga hanya dengan sebuah instruksi saja setiap bit dalam area ini dapat di-set, di-clear, di-AND dan di-OR.

Dalam aplikasinya, lokasi yang dapat diakses dengan pengalamatan bit ini dapat juga digunakan untuk menandai suatu lokasi bit tertentu, baik berupa Register Fungsi Khusus yang dapat dialamati secara bit (termasuk register I/O), ataupun lokasi – lokasi tertentu yang dapat dialamati secara bit.

3. RAM Keperluan Umum

RAM Keperluan Umum dimulai dari alamat 30H sampai 7FH dan dapat diakses dengan pengalamatan langsung maupun tak langsung. Pengalamatan langsung dilakukan ketika salah satu operand merupakan bilangan yang menunjukkan lokasi yang dialamati.

Sedangkan pengalamatan secara tak langsung pada lokasi dari RAM Internal ini adalah akses data dari memori ketika alamat tersebut tersimpan dalam suatu


(21)

Register R0 atau R1. R0 dan R1 adalah dua buah register pada mikrokontroler berarsitektur MCS51 yang dapat digunakan sebagai pointer dari sebuah lokasi memori pada RAM Internal. Pengalamatan secara tak langsung biasa digunakan untuk mengakses beberapa lokasi memori dengan letak yang beraturan.

II.1.2.2 Register Fungsi Khusus

AT89C51 mempunyai 21 Special Function Register (Register Fungsi Khusus) yang terletak pada antara alamat 80H hingga FFH seperti gambar 2.3. Beberapa dari register-register ini juga mampu dialamati dengan pengalamatan bit sehingga dapat dioperasikan seperti yang ada pada RAM yang lokasinya dapat dialamati dengan pengalamatan bit. Gambar 2.3 menunjukkan susunan Special Function Register dan susunan RAM internal AT89C51.


(22)

Byte Byte

Address Bit address Address Bit address

FF 7F

F0 F7 F6 F5 F4 F3 F2 F1 F0 B

E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC General Purpose RAM

( GPR )

D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW

B8 BF BE BD BC BB BA B9 B8 IP

30

B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 2F 7F 7E 7D 7C 7B 7A 79 78

2E 77 76 75 74 73 72 71 70

A8 AF AE AD AC AB AA A9 A8 1E 2D 6F 6E 6D 6C 6B 6A 69 68

2C 67 66 65 64 63 62 61 60

A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 2B 5F 5E 5D 5C 5B 5A 59 58

2A 57 56 55 54 53 52 51 50

99 Not bit addressable SBUF 29 4F 4E 4D 4C 4B 4A 49 48 98 9F 9E 9D 9C 9B 9A 99 98 SCON 28 47 46 45 44 43 42 41 40

27 3F 3E 3D 3C 3B 3A 39 38

90 97 96 95 94 93 92 91 90 P1 26 37 36 35 34 33 32 31 30

25 2F 2E 2D 2C 2B 2A 29 28

8D Not bit addressable TH1 24 27 26 25 24 23 22 21 20

8C Not bit addressable TH0 23 1F 1E 1D 1C 1B 1A 19 18

8B Not bit addressable TL1 22 17 16 15 14 13 12 11 10

8A Not bit addressable TL0 21 0F 0E 0D 0C 0B 0A 9 8

89 Not bit addressable TMOD 20 7 6 5 4 3 2 1 0

88 8F 8E 8D 8C 8B 8A 89 88 TCON 1F

87 Not bit addressable PCON B A N K 3

18

83 Not bit addressable DPH 17

82 Not bit addressable DPL B A N K 2

81 Not bit addressable SP 10

80 87 86 85 84 83 82 81 80 P0 0F

B A N K 1

8

7

B A N K 0

0 Default register R0 – R7

Gambar 2.3. Susunan SFR dan susunan RAM internal AT89C51

II.2 Sensor Infra Merah Sharp GP2D12

Dalam perancangan ini sensor Sharp GP2D12 digunakan pada sistem navigasi robot agar mampu menghindari tabrakan dengan benda yang terdapat didepannya dan mengikuti dinding yang terdapat disebelah kirinya. Sharp GP2D12 merupakan sensor infra merah yang bekerja dengan prinsip pemantulan, dimana pada


(23)

sensor ini terdapat pemancar dan penerima sinar infra merah. Beberapa fitur GP2D12 yang menjadi alasan pemilihan komponen ini adalah sebagai berikut:

• Outputnya analog

• Hampir tidak terpengaruh oleh warna benda yang dideteksi

• Pembacaan efektif 10 hingga 80 cm (lihat Gambar 2.5)

• Konsumsi arus rata-rata kecil, yaitu sebesar 33 mA

Gambar 2.4 Sensor jarak GP2D12 dan konfigurasi pinnya

Seperti yang terlihat pada Gambar 2.4 GP2D12 memiliki 3 pin: Vo, GND dan Vcc. Vo adalah tegangan keluaran GP2D12 berdasarkan jarak benda yang dibacanya. Berikut ini adalah tabel dan grafik karakteristik GP2D12

Tabel 2.2 Karakteristik GP2D12

Parameter Kondisi Nilai

minimum Nilai maksimum Satuan

Jarak yang diukur

( L) - 10 80 Cm

Tegangan

keluaran (Vo) L = 30 cm 0,25 0,55 V

Perbedaan tegangan keluaran ( Vo)

Perbedaan tegangan

keluaran pada L (80 cm – 10 cm)

1,75 2,25 V

Rata-rata


(24)

Gambar 2.5 Grafik karakteristik Output GP2D12 terhadap benda yang terdapat dihadapannya

II.3 Phototransistor

Gambar 2.6 Phototransistor

Transitor merupakan sebuah piranti yang memungkinkan sebuah arus kecil mengatur arus yang lebih besar. Pada phototransistor arus kecil itu berasal dari sinar infra merah yang mengenai permukaannya. Semakin banyak sinar infra merah yang mengenai permukaan phototransistor, maka arus yang dilewatkan akan semakin besar. Karakteristik ini dapat dilihat pada Gambar 2.7 Karena kepekaannya terhadap sinar infra merah dari api lilin dan harganya murah, dalam perancangan ini phototransistor digunakan untuk mendeteksi keberadaan api lilin.


(25)

Gambar 2.7 Grafik Karakteristik Phototransistor

II.4 OP-Amp LM324

Keluaran dari OP-AMP dipengaruhi oleh perbandingan antara kedua masukannya (inverting dan non inverting). Apabila masukan inverting lebih besar daripada masukan non inverting maka keluaran OP-AMP akan bernilai LOW. Apabila masukan inverting lebih kecil daripada masukan non inverting maka keluaran AMP akan bernilai HIGH. Dalam perancangan robot pemadam api, OP-AMP yang digunakan adalah LM324. Alasan pemilihan LM324 adalah karena beberapa karakteristiknya seperti:

• Hanya membutuhkan supply arus kecil: 375µA

• Rentang power supply yang lebar: +3V sampai +30V untuk catu daya tunggal dan ± 1,5V sampai ± 15V untuk catu daya ganda

Dalam perancangan LM324 digunakan untuk mengubah keluaran dari sensor jarak GP2D12 dan phototransistor yang berupa sinyal analog menjadi digital. Sebuah


(26)

LM324 terdiri dari empat buah OP-AMP yang terpisah, seperti yang terlihat pada

Gambar 2.8.

Gambar 2.8 Pin-pin dalam LM324

II.5 Motor dc dan motor-driver L293D II.5.1 Motor dc

Motor dc menerima masukan berupa arus searah. Pada perancangan ini digunakan motor dc berukuran kecil yang disebut juga dinamo. Dinamo yang dipakai adalah dinamo 5 Volt. Alasan pemilihannya adalah sebagai berikut:

• Ukurannya kecil dan ringan.

• Sumber tegangannya dapat berupa baterai kecil dan ringan sehingga memudahkan dalam perancangan robot berukuran kecil.

• Arah putarannya dapat dengan mudah dibalikkan dengan cara membalikkan kutub tegangan inputnya.

• Dapat dengan efisien dikendalikan pada tegangan 9V.


(27)

II.5.2 Motor driver L293D

Karena mikrokontroler tidak dapat memberikan arus yang cukup untuk menggerakkan motor dc maka digunakan motor driver L293D. IC L293D dipakai dalam perancangan ini karena L293D merupakan rangkaian H-Bridge yang dirancang untuk memudahkan dalam memberikan arus dua arah hingga 1 A dengan tegangan antara 4,5 volt hingga 36 volt kepada motor dc. IC L293D dapat digunakan untuk men-drive motor dc half-bridge sebanyak empat buah atau dua motor dc full-bridge. IC ini mempunyai empat pin input yang bersesuaian dengan empat pin outputnya. Selain itu juga terdapat dua pin enable/disable untuk pin output 1,2 dan pin output 3,4. Berikut ini adalah diagram bloknya.

Gambar 2.9 Diagram Blok IC L293D

II.6 Timer 555

Untuk mengendalikan kecepatan motor dc digunakan rangkaian duty cycle modulation yang menggunakan LM555. LM555 merupakan pembangkit waktu tunda


(28)

atau osilasi yang akurat dan stabil. Alasan pemilihan LM555 sebagai komponen utama pada rangkaian duty cycle modulation adalah sebagai berikut.

• Dapat mengatur duty cycle

• Dapat beroperasi pada mode astable dan monostable

• Dapat menghitung waktu dari mikro detik hingga berjam-jam

• Dapat menarik dan mengeluarkan arus listrik sebesar 200mA

Dalam mode operasi waktu tunda, lamanya waktu tunda dapat ditentukan oleh sebuah resistor dan kapasitor eksternal. Sebagai osilator untuk operasi astable, frekwensi dan duty cycle dikendalikan oleh dua resistor dan sebuah kapasitor eksternal. Rangkaian dapat ditrigger atau direset pada saat pulsa clock turun, dan rangkaian output dapat menarik atau mengeluarkan arus hingga 200mA atau mengendalikan rangkaian TTL. Berikut konfigurasi pin LM555 beserta kegunaannya.

1. GND

2. Trigger

3. Output

4. Reset

5. Control Voltage

6. Threshold

7. Discharge

8. +Vcc


(29)

Tabel 2.3Kegunaan pin-pin pada Timer 555

Pin Gambaran Kegunaan

1 Ground Dihubungkan ke ground

2 Trigger

Pin ini mencatu kapan memulai perhitungan waktu. Ketika nilainya LOW, pin output akan HIGH. Triger ini diaktifkan pada saat tegangan turun dan mencapai 1/3 dari tegangan positif pada pin 8.

3 Output

Pin output berguna untuk mengendalikan rangkaian eksternal. Pin ini mempunyai konfigurasi “totem pole”, yang membuatnya dapat mengeluarkan atau menarik arus. Pin Output akan bernilai HIGH saat pin trigger bernilai LOW dan akan bernilai LOW apabila pin treshold bernilai HIGH, atau jika pin reset bernilai LOW.

4 Reset Pin reset berguna untuk membuat pin output bernilai LOW. saat tidak digunakan, pin reset harus dihubungkan ke +V.

5 Control Voltage

Pin control voltage memungkinkan masukan dari tegangan eksternal untuk mempengaruhi perhitungan waktu timer 555. ketika tidak digunakan, pin ini harus dihubungkan ke kapasitor 0,01 uF dan ke ground.

6 Threshold Pin treshold akan membuat keluaran pin output bernilai LOW saat

tegangan pada pin ini dibawah 2/3 dari +V.

7 Discharge

Pin discharge akan terhubung ke ground ketika output pin bernilai HIGH. Pada umumnya pin ini digunakan untuk mengosongkan kapasitor selama asilasi.

8 +V Tegangan positif (3 - 18 Volt).

II.7 Transistor PN2222A

Dalam perancangan ini transistor digunakan sebagai saklar elektronik yang akan menghidupkan dan mematikan kipas angin. Gambar 2.11 menunjukkan tiga buah kaki transistor, yaitu basis, kolektor, dan emiter. Cara kerjanya adalah sebagai berikut: apabila basis diberi logika HIGH, maka arus akan mengalir dari kolektor ke emiter. Ketika basis diberi logika LOW, transistor akan tidak mengalirkan arus dari kolektor ke emiter. Pada perancangan ini digunakan Transistor NPN tipe PN2222A karena kemampuannya untuk melewatkan arus hingga 1A.


(30)

(31)

III.1 Spesifikasi Sistem

Dalam perancangan robot pemadam api mikrokontroler AT89C51 digunakan sebagai komponen utama yang mengatur komponen lainnya seperti: sensor jarak SHARP GP2D12, phototransistor (sensor api), motor dc, dan motor driver L293D. Hardware robot dirancang agar mikrokontroler dapat menerima masukan dari sensor jarak dan sensor api kemudian memutuskan pergerakan motor dc melalui H-bridge L293D hingga fungsi robot untuk memadamkan api lilin yang terdapat disekitarnya tercapai. Hardware robot dirancang sesuai diagram blok yang terdapat pada Gambar 3.1.

Gambar 3.1 Diagram Blok Perancangan Perangkat Keras

Mikrokontroler menerima sinyal masukan dari dua sumber, yaitu sensor api (photo transistor) dan sensor jarak GP2D12. Agar mikrokontroler dapat membaca keluaran dari sensor api dan sensor jarak yang keluarannya analog, digunakan


(32)

L324N sebagai analog to digital converter. Swich digunakan untuk memberi masukan pada mikrokontroler agar dapat menentukan mode robot, hal ini akan dibahas lebih lanjut pada bab IV.

Berdasarkan masukan dari sensor jarak dan sensor api, mikrokontroler menggerakkan tiga buah motor dc: motor dc penggerak roda kanan dan kiri serta kipas angin. Dalam hal ini motor penggerak roda kanan dan kiri robot dikendalikan melalui H-Bridge L293D, dan untuk mengendalikan kecepatannya digunakan rangkaian Duty Cycle Modulation. Sedangkan kipas angin dikendalikan melalui transistor 2PA733.

Berikut adalah penjelasan diagram blok pada Gambar 3.1 bagian demi bagian.

III.2 Rangkaian Dasar Mikrokontroler AT89C51

Rangkaian sistem mikrokontroler AT89C51 berfungsi sebagai pusat kontrol yang membaca sensor untuk menentukan keluaran yang berupa sinyal kontrol yang mengendalikan motor dc. Untuk membuat sistem mikrokontroler bekerja, dibutuhkan komponen-komponen tambahan. Untuk mereset mikrokontroler secara otomatis setiap kali catu daya dinyalakan digunakan rangkaian reset. Dan sebagai penggerak osilator internal digunakan rangkaian clock yang terdiri dari sebuah kristal dan dua buah kapasitor. Berikut akan dijelaskan rangkaian reset dan rangkaian clock secara khusus.

III.2.1 Rangkaian Reset

Rangkaian reset diperlukan untuk mereset mikrokontroler secara otomatis setiap kali catu daya dinyalakan, hal ini akan me-reset program counter sehingga


(33)

perintah program yang dieksekusi dimulai pada alamat 0h. Ketika catu daya diaktifkan, rangkaian reset menahan logika tinggi pin RST dengan jangka waktu yang ditentukan oleh lamanya pengisian muatan C. Jika pin RST diberi logika high selama dua siklus mesin maka mikrokontroler akan direset. Satu siklus mesin (

osc f.

12

) membutuhkan waktu 1,085 µs, sehingga untuk mereset mikrokontroler

dibutuhkan waktu minimal 2,17 µs. Tegangan RST yang diijinkan sebesar 0,7 Vcc hingga Vcc + 0,5. Jika tegangan RST minimal 3,5 V maka tegangan pada kapasitor maksimal 1,5 V untuk dapat me-reset mikrokontroler. Rangkaian reset dibentuk dengan rangkaian RC yang dapat dilihat dalam Gambar 3.2

vcc RST GND +vcc C R

Gambar 3.2 Rangkaian Reset(A) dan Rangkaian Setaranya(B)

Dari rangkaian setara diperoleh:

Vo = Vi

sC R R . 1 + (3.1)

Vo = Vi

sCR sCR

. 1

+ (3.2)

dengan tegangan Vi adalah Vcc yaitu 5V, dalam fungsi Laplace adalah

s

5


(34)

Vo = + = + = + RC s sCR CR sCR sCR s 1 1 . 5 1 . 5 1 . 5

Vo = 5.eRC tRC 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


(35)

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 1 s atau s

MHz 12 1µ

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


(36)

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.

! ∀# ∃%

& %∋

( & )∗

( & )∗

( & )∗

( & )∗

( & )∗

( & )∗

( & )∗

( & )∗ ( & )∗

+ ,,


(37)

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 (VOL) seharusnya adalah 0,5 V. Karena arus yang

dibutuhkan ketika logika ‘0’ (IOL) 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 Rpull up

2 , 3 5 , 0 5 _ − = Ω ≈ Ω = k

Rpull_up 1406,25 1,5

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.


(38)

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


(39)

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 500. Sehingga agar dapat mendeteksi api dalam 3600 dibutuhkan paling sedikit 8 buah phototransistor yang masing-masing mendeteksi api dalam sudut 450. Hal ini dapat dilihat pada Gambar 3.8


(40)

%) )

∗ )∗

!

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.

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


(41)

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.


(42)

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.


(43)

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.


(44)

Gambar 3.13Rangkaian 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 =0.5

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.


(45)

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.


(46)

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.


(47)

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.


(48)

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.


(49)

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


(50)

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.


(51)

Karena motor dc mempunyai hambatan dalam 10kOhm, maka arus yang akan melewati transistor adalah sebesar:

R I V = ×

Ω =

10 5V I

A I =0,5

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


(52)

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.


(53)

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.


(54)

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


(55)

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.


(56)

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,


(57)

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.


(58)

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

.


(59)

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.


(60)

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.


(61)

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.


(62)

(63)

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.


(64)

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.


(65)

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.


(66)

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.


(67)

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.


(1)

DAFTAR PUSTAKA

1.

Mc Comb, Gordon, “The Robot Builder’s 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


(2)

LAMPIRAN A

Rangkaian Robot Pemadam Api Phoenix

!

! ∀#∃ !

%

% ∀&∋ (

#

) !

! ! # #

+)

,,

+)

,,

+)

,,

+)

,,

+

+

+

+

!

∀ −

∀ − − %

! .


(3)

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.1Halaman 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.3Halaman 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)


(4)

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


(5)

LAMPIRAN C

Gambar Fisik Phoenix

Depan


(6)