Perancangan Robot Otomatis Pengangkat Barang Berbasis Mikrokontroler AT89S51

(1)

PERANCANGAN ROBOT OTOMATIS PENGANGKAT

BARANG

BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

HANGGA SURYA S.

032408037

PROGRAM STUDI D-3 FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN


(2)

PERANCANGAN ROBOT OTOMATIS PENGANGKAT BARANG BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya HANGGA SURYA S.

032408037

PROGRAM STUDI D3 FISIKA INSTRUMENTASI DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2007


(3)

PERSETUJUAN

Judul : PERANCANGAN ROBOT OTOMATIS

PENGANGKAT BARANG BERBASIS MIKROKONTROLER AT89S51

Kategori : TUGAS AKHIR

Nama : HANGGA SURYA S.

Nomor Induk Mahasiswa : 032408037

Program Studi : DIPLOMA (D3) FISIKA INSTRUMENTASI

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Disetujui di:

Medan, 27 November 2007 Diketahui oleh:

Departemen Fisika FMIPA USU Pembimbing, Ketua,

Dr. Marhaposan Situmorang Dra.Hj.Ratna Askiah

S.M,Si


(4)

PERNYATAAN

PERANCANGAN ROBOT OTOMATIS PENGANGKAT BARANG BERBASIS MIKROKONTROLER AT89S51

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 26 November 2007

HANGGA SURYA S 032408037


(5)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Daftar isi v

Daftar gambar vi

Bab 1. Pendahuluan 1

1.1 Latar Belakang masalah 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 3

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 4

Bab 2 Tinjauan Pustaka 7

2.1 Perangkat Keras 7

2.1.1 Arsitektur Mikrokontroller AT89S51 7

2.1.2 Kontruksi AT89S51 9

2.2 Perangkat Lunak 15

2.2.1 Bahasa Assembly MCS - 51 15 2.2.2 Software 8051 Editor, Assembler, Simulator (IDE) 19

2.2.3 Software Downloader 20

Bab 3. Perancangan Alat dan Program 22

3.1 Diagram Blok 22

3.2 Rangkaian Catu Daya 24

3.3 Rangkaian Mikrokontroller AT89S51 25

3.4 Rangkaian Sensor Garis 26

3.5 Rangkaian Tombol Perintah 30

3.6 Rangkaian Display Seven Segmen 31 3.7 Rangkaian Pengendali Pergerakan Motor (Jembatan H) 32 3.8 Rangkaian Driver Motor Stepper 36

3.9 Perancangan Program 37

Bab 4.Pengujian Rangkaian dan Program 39 4.1 Pengujian Rangkaian Catu Daya 39 4.2 Pengujian Rangkaian Mikrokontroller AT89S51 39 4.3 Pengujian Rangkaian Sensor Garis 41

4.4 Pengujian Rangkaian Tombol 42

4.5 Pengujian Rangkaian Seven Segmen 43 4.6 Pengujian Peengendali Pergerakan Moor (Jembatan H) 44 4.7 Pengujian Rangkaian Driver Motor Stepper 44


(6)

Daftar Pustaka 50 Lampiran 1 transistor 2PC945


(7)

DAFTAR TABEL

Halaman

Tabel 2.1 Kode warna resistor 5

Tabel 2.1 Kode warna toleransi resistor 6

Tabel 2.3 Mode operasi transistor 16

Tabel 2.4 Kebenaran gerbang EX-OR 21

Tabel 4.1 Data sensor 29


(8)

ABSTRACT

This activity aim to to develop;build an goods conveyor robot base on IC AT89S51 mikrokontroler. used network to develop;build a[n robot among others: network ration energy, AT89S51 mikrokontroler network, Rangakaian Censor line, knob network, network displayed by segment seven, controller movement of motor ( H bridge), stepper motor driver network. Memory type weared for the program of AT89S51 is PEROM flash. While to control mikrokontroler filled in to memory constructively named by appliance is AT89S51 PEROM programmer flash. used Ianguage for the program of IC AT mikrokontroler 89S51 is assembly Ianguage for the MCS-51 OF. instruction representing assembly Ianguage written down by at a editor that is 8051 editor, simulator assembler ( IDEA). To deliver heksa number denary this to mikrokontroler used by ISP programmer flash software.


(9)

ABSTRAK

Kegiatan ini bertujuan untuk membangun suatu robot pengangkut barang berbasis IC mikrokontroler AT89S51. rangkaian yang digunakan untuk membangun suatu robot diantaranya: rangkaian catu daya, rangkaian mikrokontroler AT89S51, Rangakaian sensor garis, rangkaian tombol, rangkaian display seven segmen, pengendali pergerakan motor (jembatan H), rangkaian driver motor stepper. Jenis memori yang dipakai untuk memprogram AT89S51 adalah flash PEROM. Sedangkan untuk mengendalikan mikrokontroler diisikan ke memori dengan bantuan alat yang dinamakan AT89S51 flash PEROM programmer. Bahasa yang digunakan untuk memprogram IC mikrokontroler AT 89S51 adalah bahasa assembly untuk MCS-51. instruksi-instruksi yang merupakan bahasa assembly dituliskan pada sebuah editor yaitu 8051 editor, assembler simulator (IDE). Untuk mengirimkan bilangan heksa desimal ini ke mikrokontroler digunakan software ISP flash programmer.


(10)

ABSTRACT

This activity aim to to develop;build an goods conveyor robot base on IC AT89S51 mikrokontroler. used network to develop;build a[n robot among others: network ration energy, AT89S51 mikrokontroler network, Rangakaian Censor line, knob network, network displayed by segment seven, controller movement of motor ( H bridge), stepper motor driver network. Memory type weared for the program of AT89S51 is PEROM flash. While to control mikrokontroler filled in to memory constructively named by appliance is AT89S51 PEROM programmer flash. used Ianguage for the program of IC AT mikrokontroler 89S51 is assembly Ianguage for the MCS-51 OF. instruction representing assembly Ianguage written down by at a editor that is 8051 editor, simulator assembler ( IDEA). To deliver heksa number denary this to mikrokontroler used by ISP programmer flash software.


(11)

BAB I

PENDAHULUAN

I.1. Latar Belakang Masalah

Manusia membutuhkan bantuan dari sesuatu yang dapat bekerja cepat, teliti dan tidak mengenal lelah, robot adalah jawaban dari keinginan tersebut. Robot diharapkan dapat bekerja cepat, teliti, tidak mengenal lelah dan dapat bekerja pada lingkungan yang berbahaya bagi kesehatan.

Robot yang dapat berpindah tempat tanpa campur tangan manusia disebut juga Autonomous Mobile Robot (AMR) dan menjadi penelitian di berbagai universitas dan lembaga penelitian di seluruh dunia. Aplikasi AMR antara lain sebagi penyapu ranjau, kurir, penyusun barang, dan penelitian objek mineral batuan planet di luar angkasa.

Untuk merancang AMR tesebut, dibutuhkan sebuah alat/komponen yang dapat menghitung, mengingat, dan mengambil pilihan yang digunakan sebagai otaknya. Kemampuan ini dimiliki oleh sebuah komputer, namun tidaklah efisien jika harus menggunakan komputer hanya untuk keperluan tersebut. Untuk itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler


(12)

pengembangan menjadi murah karena dapat dihapus kemudian diisi kembali dengan program lain sesuai dengan kebutuhan.

AT89S51 adalah chip mikrokontroler produksi Atmel Inc. AT89S51 mempunyai fitur dasar yang cukup lengkap untuk suatu pemrosesan input-output. Bahasa pemrograman yang digunakan AT89S51 hampir tidak berbeda jauh dengan instruksi pada mikroprosesor Intel.

Akan sangat berguna jika sebuah AMR yang dapat bergerak secara otomatis dapat digunakan untuk mempermudah pekerjaan manusia. Misalnya untuk membantu dalam penyusunan barang dalam sebuah gudang.

I.2. Rumusan Masalah

Berdasarkan uraian yang terdapat dalam latar belakang di atas, maka dalam tugas akhir ini akan dibuat sebuah robot yang dapat menyusun barang dalam sebuah gudang, dimana robot ini akan mengikuti garis yang merupakan jalur dari robot.

Pada alat ini akan digunakan sebuah mikrokontroler AT89S51, beberapa buah pemancar dan penerima infra merah dan dua buah motor DC. Mikrokontroler AT89S51 sebagai otak dari robot yang dapat mengolah sinyal dari sensor dan dapat mengendalikan pergerakan roda.

Pemancar dan penerima infra merah berfungsi sebagai sensor garis, dimana robot akan mengikuti garis yang merupakan jalur dari robot.


(13)

Untuk mengangkat benda akan digunakan sebuah motor stepper yang dihubungkan dengan sebuah forklift, sehingga benda/barang dapat diangkat/diturunkan oleh robot.

I.3 Tujuan Penulisan

Adapun tujuan dari penelitian ini adalah sebagai berikut:

1. Memanfaatkan mikrokontroler AT89S51 sebagai pusat kendali (otak) dari sebuah sistem (robot).

2. Membuat robot sederhana yang dapat bergerak otomatis dan dapat diperintah untuk menyusun barang dengan mengikuti garis sebagai jalurnya. I.4 Batasan Masalah

Mengacu pada hal diatas, batasan masalah adalah :

 Garis yang digunakan harus berwarna hitam dan lantai berwarna putih, sehingga perbedaan warnanya tajam agar sensor tidak salah mengenali warna garis.

 Robot hanya dilengkapi dengan sensor garis, sehingga tidak bisa mendeteksi keberadaan dinding didepannya.

 Robot hanya bisa membawa dan meletakkan benda pada tempatnya sesuai dengan yang diperintahkan, robot tidak bisa mengambil benda sendiri.


(14)

I.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja dari robot otomatis penyusun barang berbasis mikrokontroler AT89S51, maka penulis menulis laporan ini sebagai berikut:

BAB I. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II. LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain tentang mikrokontroler AT89S51 (hardware dan software), bahasa program yang digunakan, teori mengenai motor DC, infra merah dan photodioda sebagai penerima infra merah.

BAB III. PERANCANGAN ALAT DAN PROGRAM

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.


(15)

BAB IV. ANALISA RANGKAIAN DAN SISTEM KERJA ALAT

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai rangkaian-rangkaian yang digunakan, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51.

BAB V. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(16)

DIAGRAM BLOK

PERANCANGAN ROBOT OTOMATIS PENYUSUN BARANG BERBASIS MIKROKONTROLER AT89S51

Program diawali dengan start yang berarti bahwa robot dihidupkan. Selanjutnya program akan menunggu penekanan pada salah satu tombol pada robot. Setelah benda diletakkan pada forklift yang ada pada robot, kemudian tombol ditekan, maka robot akan melihat tombol mana yang ditekan. Jika tidak ada penekanan pada salah satu tombol, maka robot akan terus menunggu sampai ada penekanan pada salah satu tombol. Jika terjadi penekanan pada tombol 1, maka penekanan ini akan dianggap sebagai perintah untuk menyimpan/menyususn barang di ruangan 1, sehingga robot akan mulai bergerak memutar roda dan mengikuti jalur 1. Kemudian ketika robot sampai di ruangan 1, maka robot akan meletakkan barang dan kembali ke posisi awal untuk menunggu perintah selanjutnya. M ikr okont rol er A T89S 51 Jembatan H

(Pengendali Motor) KananMotor 6 buah Sensor

Garis Jembatan H (Pengendali Motor) Driver Motor Stepper Motor Kanan Motor Stepper 3 buah tombol

perintah

Display Seven Segmen


(17)

Demikian seterusnya, langkah yang sama juga akan dilakukan oleh robot, ketika terjadi penekanan pada tombol yang lainnya.


(18)

BAB II

TINJAUAN PUSTAKA

2.1 PERANGKAT KERAS

2.1.1 Arsitektur Mikrokontroler AT89S51

Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini ditangani dengan mikrokontroler, karena tidak mungkin menggunakan komputer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.


(19)

Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau yang dikenal dengan sistem telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu sistem pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar), yang semuanya itu bisa diperoleh dari mikrokontroler yang digunakan. Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.


(20)

2.1.2. Kontruksi AT89S51

Mikrokontrol AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 kilo ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler.

Memori merupakan bagian yang sangat penting pada mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda.

Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam.

Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Progamble ROM) yang kemudian


(21)

dinilai mahal dan ditinggalkan setelah adaflash PEROMyang harganya jauh lebih murah.

Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer.

Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.

Sarana Input/Ouput yang disediakan cukup banyak dan bervariasa. AT89S51 mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).


(22)

Deskripsi pin-pin pada mikrokontroler AT89S51 : VCC (Pin 40)

Suplai tegangan GND (Pin 20) Ground

Port 0 (Pin 39-Pin 32)

Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash progamming 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, por ini akan mempunyai internal pull up.

Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program.

Port 2 (Pin 21 pin 28)

Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. 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.


(23)

Port 3 (Pin 10 pin 17)

Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing, yaitu sebagai berikut :

Nama pin Fungsi

P3.0 (pin 10) RXD (Port input serial) P3.1 (pin 11) TXD (Port output serial) P3.2 (pin 12) INTO (interrupt 0 eksternal) P3.3 (pin 13) INT1 (interrupt 1 eksternal) P3.4 (pin 14) T0 (input eksternal timer 0) P3.5 (pin 15) T1 (input eksternal timer 1)

P3.6 (pin 16) WR (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori)

RST (pin 9)

Reset akan aktif dengan memberikan input high selama 2 cycle. ALE/PROG (pin 30)

Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash.


(24)

EA (pin 31)

Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.

XTAL1 (pin 19)

Input untuk clock internal. XTAL2 (pin 18)

Output dari osilator.

Motor Langkah (Stepper)

Motor langkah (stepper) banyak digunakan dalam berbagai aplikasi, dipergunakan apabila dikehendaki jumlah putaran yang tepat atau di perlukan sebagian dari putaran motor. Suatu contoh dapat di jumpai pada disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram(disk), head baca-tulis ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram, untuk head tersebut di hubungkan dengan sebuah motor langkah.

Aplikasi penggunaan motor langkah dapat juga di jumpai dalam bidang industri atau untuk jenis motor langkah kecil dapat di gunakan dalam perancangan suatu alat mekatronik atau robot. Motor langkah berukuran besar digunakan,


(25)

misalnya, dalam proses pengeboran logam yang menghendaki ketepatan posisi pengeboran, dalam hal ini di lakukan oleh sebuah robot yang memerlukan ketepatan posisi dalam gerakan lengannya dan lain-lain.

Pada gambar di bawah ditunjukkan dasar susunan sebuah motor langkah (stepper).

Gambar 2.2 Diagram motor langkah (stepper)

Magnet permanen U-S berputar kearah medan magnet yang aktif. Apabila kumparan stator dialiri arus sedemikian rupa, maka akan timbul medan magnet dan rotor akan berputar mengikuti medan magnet tersebut.setiap pengalihan arus ke kumparan berikutnya menyebabkan medan magnet berputar berputar menurut suatu sudut tertentu, biasanya informasi besar sudut putar tertulis pada badan

U

S A

D B

A C


(26)

berhenti pada posisi terakhir. Jika kecepatan pengalihan tidak terlalu tinggi, maka slip akan dapat dihindari. Sehingga tidak di perlukan umpan balik(feedback)pada pengendalian motor langkah.

Motor langkah yang akan di gunakan memiliki 4 fase (pole atau kutub), pengiriman pulsa dari mikrokontroler ke rangkaian motor langkah dilakukan secara bergantian, masing-masing 4 data (sesuai dengan jumlah phase-nya), sebagian di tunjukkan pada gambar di bawah ini.

Gambar 2.3 Pemberian data/pulsa pada motor stepper

Pada saat yang sama ,untuk tiap motor langkah, tidak boleh ada 2 (dua) masukan atau lebih yang mengandung pulsa sama dengan 1 (high), atau dengan kata lain, pada suatu saat hanya sebuah masukan yang bernilai 1 (satu) sedangkan lainnya bernilai 0 (nol).

2.2 PERANGKAT LUNAK 2.2.1. Bahasa Assembly MCS-51

C D A B


(27)

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya 10 instruksi. Instruksi instruksi tersebut antara lain :

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung. Contoh pengisian nilai secara langsung

MOV R0,#20h

Perintah di atas berarti : isikan nilai 20 heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.

Contoh pengisian nilai secara tidak langsung MOV 20h,#80h

... ... MOV R0,20h

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 heksadesimal ke register 0 (R0).

Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.


(28)

Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh ,

MOV R0,#80h Loop: ...

...

DJNZ R0,Loop ...

R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh : ...

ACALL TUNDA ...

TUNDA:

... 4. Instruksi RET

Instruksi RETURN (RET)ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksiACALLdilaksanakan. Contoh,

ACALL TUNDA ...

TUNDA:


(29)

RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh, Loop:

... ... JMP Loop

6. InstruksiJB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh,

Loop:

JB P1.0,Loop ...

7. InstruksiJNB (Jump if Not bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh,

Loop:

JNB P1.0,Loop ...


(30)

Loop:

...

CJNE R0,#20h,Loop ...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya..

9. InstruksiDEC (Decreament)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 1 ...

10. InstruksiINC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h ...

INC R0 R0 = R0 + 1 ...


(31)

2.1.2. Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, dan Simulator (IDE). Tampilannya seperti di bawah ini.

Gambar 2.4 8051 Editor, Assembler, Simulator (IDE)

Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.

Software 8051 IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat


(32)

2.1.3. Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini:

Gambar 2.5 ISP- Flash Programmer 3.a

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051 IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroller.


(33)

M ikr okont rol er A T89S 51

BAB III

PERANCANGAN ALAT DAN PROGRAM

III.1 Diagram Blok

Secara garis besar, diagram blok rangkaian dari robot penyusun barang ini ditunjukkan pada gambar 3.1 berikut ini :

P2 P0.0 & P0.1 P0.2 & P0.3 P2 P1

P3

Gambar 3.1 Diagram Blok Rangkaian

Pada robot ini terdapat 6 buah sensor garis, yang masing-masing diletakkan di bagian bawah dari robot. Sensor ini berfungsi agar robot dapat mengikuti garis. Sensor ini dihubungkan ke port 2 dari mikrokontroler AT89S51. Selanjutnya pada robot juga dilengkapi dengan 3 buah tombol perintah, tombol ini

Jembatan H

(Pengendali Motor) Motor Kanan 6 buah Sensor

Garis Jembatan H (Pengendali Motor) Driver Motor Stepper Motor Kanan Motor Stepper 3 buah tombol

perintah

Display Seven Segmen


(34)

Robot ini memiliki 3 buah roda, dimana 1 roda yang berada di belakang free, dan dua roda yang lainnya yang berada dibagian kanan dan kiri masing-masing dikendalikan oleh sebuah motor DC. Untuk mengendalikan putaran motor DC diperlukan agar dapat bergerak searah dan berlawanan arah dengan jarum jam digunakan sebuah rangkainan yang dikenal dengan rangkaian jembatan H. Jembatan H ini dapat memutar motor searah/berlawanan arah dengan jarum jam bila diberi pulsa 1 atau 0. Dengan demikian pergerakan motor dapat dikendalikan melalui program. Roda sebelah kanan dihubungkan dengan jembatan H yang terhubung ke P0.0 dan P0.1, sedangkan roda sebelah kiri dihubungkan dengan jembatan H yang terhubung dengan P0.2 dan P0.3.

Untuk mengangkat barang digunakan sebuah motor stepper bipolar. Rangkaian pengendali motor stepper (Driver motor stepper) berfungsi untuk mengendalikan pergerakan motor stepper (mengangkat/meletakkan barang). Rangkaian ini terhubung ke port 0 yaitu P0.4, P0.5, P0.6 dan P0.7, sehingga dengan memberikan program tertentu, pergerakan mengangkat/meletakkan barang sudah dapat dikendalikan oleh program yang diberikan ke mikrokontroler AT89S51.

Rangkaian penampil nilai tombol ini berfungsi untuk menampilkan nilai tombol yang ditekan. Rangkaian ini terdiri dari sebuah seven segmen common anoda. Rangkaian ini dihubungkan ke port 3 mikrokontroler AT89S51.


(35)

2200uF 5 Volt DC

0 Volt 6,2 Volt DC

6.2 V

Rangkaian Catu Daya

Rangkaian catu daya ini berfungsi untuk mensuplay tegangan ke seluruh rangkaian. Rangkaian ini terdiri dari sebuah baterei 6 volt yang di serikan dengan dua buah dioda. Untuk menenbus 1 buah dioda diperlukan tegangan tembus 0,6 volt, sehingga untuk menembus 2 buah dioda diperlukan tegangan sekitar 1,2 volt, sehingga output dari rangkaian ini sekitar 4,8 volt sampai 5,0 volt. Kemudian dipasang sebuah kapasitor untuk menyimpan arus, sehingga jika tiba-tiba mikrokontroler membutuhkan arus besar, maka arus tersebut dapat disupplay oleh kapasitor ini. Rangkaian catu daya ditunjukkan oleh gambar berikut ini :

Gambar 3.2 Rangkain catu daya

Pada rangkaian ini terdapat 2 buah keluaran, yaitu 5 volt dan 6 volt. Keluaran 5 volt dibutuhkan oleh mikrokontroler, rangkaian display seven segmen dan rangkaian sensor, sedangkan 6 volt dibutuhkan untuk rangkaian jembatan H dan driver motor stepper.


(36)

5V V CC 10uF 5V V CC 2 1 30pF 30pF

XTA L 12 MHz

A T 89S51

P0.3 (AD 3) P0.0 (AD 0) P0.1 (AD 1) P0.2 (AD 2) Vc c P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

P0.4 (AD 4) P0.5 (AD 5) P0.6 (AD 6) P0.7 (AD 7) R ST

EA/VPP P3.0 (R XD ) P3.1 (TXD ) P3.2 (IN T0) P3.3 (IN T1) P3.4 (T0)

ALE/PR O G PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P3.6 (W R )

P3.5 (T1) P3.7 (R D ) XTAL2 XTAL1

G N D P2.0 (A8)

1 2 3 4 5 6 7 8 40 39 38 37 36 35 34 33 9 10 11 12 13 14 15 32 31 30 29 28 27 26 16 17 18 19 20 25 24 23 22 21 4.7k2SA 733 5V V CC L ED1

Rangkaian Mikrokontroler AT89S51

Rangkaian ini berfungsi sebagai pusat kendali dari seluruh system yang ada. Kompoen utama dari rangkaian ini adalah IC mikrokontroler AT89S51. Pada IC inilah semua program diisikan, sehingga rangkaian dapat berjalan sesuai dengan yang dikehendaki. Rangkaian mikrokontroler ditunjukkan pada gambar berikut ini:

Gambar 3.3 Rangkaian mikrokontroller AT89S51

Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena mikrokontroller AT89S51 tidak menggunakan memori eskternal. Pin 18 dan 19 dihubungkan ke XTAL 12 MHz dan kapasitor 30 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroller AT89S51 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroller ini. Pin 32 sampai 39


(37)

adalah Port 0 yang merupakan saluran/bus I/O 8 bit open collector dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pin 1 sampai 8 adalah port 1. Pin 21 sampai 28 adalah port 2. Dan Pin 10 sampai 17 adalah port 3. Pin 17 yang merupakan P3.7 dihubungkan dengan transistor dan sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroller AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroller tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubung ke Pin 17 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay.

III. 3 Rangkaian Sensor Garis

Untuk dapat mengikuti garis, maka robot dilengkapi dengan 4 buah sensor garis dan dua buah sensor persimpangan. Ke-6 sensor garis ini mempunyai rangkaian yang sama, hanya penempatannya saja yang berbeda.

Masing-masing sensor garis menggunakan 3 buah pemancar infra merah dan sebuah photodioda. Sensor ini memanfaatkan pantulan dari pemancar infra


(38)

pada masing-masing sensor bertujuan agar jarak pantulan semakin jauh, sehingga posisi sensor tidak terlalu dekat dengan lantai.

Garis yang digunakan adalah garis hitam dan lantainya berwarna putih, dengan demikian ketika sensor mengenai lantai putih, maka pantulan dari infra merah akan mengenai photodioda. Sedangkan jika sensor mengenai garis hitam, maka pancaran sinar infra merah lebih banyak yang diserap oleh garis hitam, sehingga pantulannya menjadi lemah dan tidak mengenai photodioda. Perbedaan intensitas pantulan inilah yang digunakan untuk mendeteksi adanya garis hitam yang merupakan jalur robot.

Setiap pantulan yang diterima oleh photodioda akan diolah dan dijadikan data digital, sehingga bila photodioda mendapatkan pantulan dari pemancar infra merah, maka akan mengirimkan sinyal low ke mikrokontroller AT89S51. Dengan demikian mikrokontroler dapat mendeteksi sensor yang mengirimkan sinyal low dan mengambil tindakan untuk mengatur putaran roda kekanan atau kekiri.


(39)

VCC 5V

Infra Merah

100100

Infra Merah 100

Rangkaian pemancar infra merah tampak seperti gambar di bawah ini:

Gambar 3.4 Rangkaian pemancar infra merah

Pada rangkaian di atas digunakan 3 buah LED infra merah yang diparalelkan, dengan demikian maka intensitas yang dipancarkan oleh infra merah semakin kuat, karena merupakan gabungan dari 3 buah LED infra merah. Resistor yang digunakan adalah 100 ohm sehingga arus yang mengalir pada masing-masing LED infra merah adalah sebesar:

A volt

R V

i 1005 0.05 atau 50mA

Dengan besarnya arus yang mengalir ke LED infra merah, maka intensitas pancaran infra merah akan semakin kuat, yang menyebabkan jarak pantulannya akan semakin jauh.

Pantulan dari sinar infra merah akan diterima oleh photodioda, kemudian akan diolah oleh rangkaian penerima agar menghasilkan data biner, dimana jika photodioda menerima pantulan sinar infra merah maka output dari rangkaian


(40)

mengeluarkan logika high (1). Rangkaian penerima infra merah seperti gambar di bawah ini:

Gambar 3.5 Rangkaian penerima sinar infra merah

Potodioda memiliki hambatan sekitar 15 s/d 20 Mohm jika tidak terkena sinar infra merah, dan hambatannya akan berubah menjadi sekitar 80 s/d 300 kohm jika terkena sinar infra merah tergantung dari besarnya intensitas yang mengenainya. Semakin besar intensitasnya, maka hambatannya semakin kecil.

Pada rangkaian di atas, output dari photodioda diumpankan ke basis dari transistor tipe NPN C828, ini berari untuk membuat transistor tersebut aktif maka tegangan yang keluar dari photodioda harus lebih besar dari 0,7 volt. Syarat ini akan terpenuhi jika photodioda mendapatkan sinar infra merah. Analisanya sebagai berikut:

Jika tidak ada sinar infra merah yang mengenai photodioda, maka hambatan pada photodioda 15 Mohm, sehingga:

volt volt x xV R R R

VO12 2 CC(15.000330.000.000330.000) 5 0,107

VCC 5V 330k Poto dioda 4.7k C828 10k 1.0k Q2 2SA733 10k

2SC9454.7k

1.0k 1.0k Q4 2SA733 10k 330 LED1 AT89S51


(41)

Vout akan diumpankan ke basis dari transistor C828, karena tegangannya hanya 0,107 Volt maka transistor tidak aktif.

Jika ada sinar infra merah yang mengenai photodioda, maka hambatan pada photodioda 300 kohm, sehingga:

volt volt

x xV

R R R

VO12 2 CC(300.000330.000330.000) 5 2,619

Vout akan diumpankan ke basis dari transistor C828, karena tegangannya lebih besar dari 0,7 volt yaitu 2,619 Volt maka transistor akan aktif.

Aktipnya transistor C828 akan menyebabkan kolektornya terhubung ke emitor, sehingga kolektor mendapat tegangan 0 volt dari ground, tegangan ini diumpankan ke basis dari transistor ke-2 tipe PNP A733, sehingga transistor ini juga aktip. Seterusnya aktipnya transistor A733 akan menyebabkan kolektornya terhubung ke emitor, sehingga kolektor mendapat tegangan 5 volt dari Vcc, tegangan ini diumpankan ke basis dari transistor ke-3 tipe NPN C945, sehingga transistor ini juga aktif.

Kolektor dari transistor C945 dihubungkan mikrokontroler AT89S51 sehingga jika transistor ini aktif, maka kolektor akan mendapatkan tegangan 0 volt dari ground. Tegangan 0 volt inilah yang merupakan sinyal low (0) yang diumpankan ke mikrokontroler AT89S51, sehingga mikrokontroler dapat mengetahui bahwa sensor ini mengirimkan sinyal, yang berarti bahwa sensor ini


(42)

Transistor ke-4 tipe PNP A733 berfungsi untuk menyalakan LED sebagai indikator bahwa sensor ini menerima pantulan sinar infra merah dari pemancar. LED ini akan menyala jika sensor menerima sinar infra merah, dan akan mati jika sensor tidak menerima sinar infra merah.

III. 4 Rangkaian Tombol Perintah

Rangkaian tombol perintah ini terdiri dari 3 buah tombol. Tombol-tombol ini berfungsi memerintahkan robot untuk menyusun barang pada ruangan tertentu. Misalnya tombol yang ditekan adalah tombol 1, maka robot akan meletakkan barang pada ruangan 1, demikian juga untuk tombol 2, jika ditekan tombol 2, maka robot akan meletakkan barang pada ruangan 2. Dan tombol run berfungsi untuk memerintahkan robot untuk mulai berjalan.

Rangkaian tombol perintah ini dihubungkan dengan port 1. Dalam kondisi biasa, port 1 mendapatkan logika high (1), saat terjadi penekanan salah satu tombol, maka pin yang terhubung ke tombol tersebut akan terhubung ke ground, sehingga mengirimkan sinyal low (0). Perubahan kondisi dari high (1), menjadi low (0) inilah yang merupakan tanda adanya penekanan pada salah satu tombol. Rangkaian tombol perintah ditunjukkan pada gambar berikut ini :


(43)

4K7

P1.0 AT89S51

VCC 5V

Tombol

Gambar 3.6 Rangkaian tombol perintah III. 3 Rangkaian Display Seven Segmen

Untuk menampilkan angka dari setiap penekanan tombol, maka dibutuhkan sebuah display untuk menampilkannya. Pada alat ini, display yang digunakan adalah display seven segmen, yang terdiri dari 1 buah seven segmen.

Display seven segmen ini akan diaktipkan oleh IC 4094 yang merupakan IC serial to paralel (serial in paralel out). Jadi data dimasukkan ke dalam IC ini dengan mengirimkan data serial. Keluaran dari IC 4094 ini langsung dihubungkan ke seven segmen, sehingga data serial yang diterima oleh input IC ini akan ditampilkan nilainya pada seven segmen.

Rangkaian ini terhubung ke P3.0 dan P3.1, yang mempunyai fungsi khusus sebagai pengiriman data secara serial. Sehingga nilai yang akan tampil


(44)

5V VCC

SEVEN_SEG_DISPLAY

AB CDE FG

In C lo ck O ut D

6 D5 D4 D3 D2 D1 D0

4094 D 7 2 3 10 14 13 12 11 7 6 5 4

P3.0 AT89S51 P3.1 AT89S51

AT89S51. Rangkaian display seven segmen daitunjukkan pada gambar berikut ini :

Gambar 3.7 Rangkaian display seven segmen III. 5 Rangkaian Pengendali Pergerakan Motor (Jembatan H)

Untuk menghindari dinding, maka robot harus dapat mengendalikan perputaran rodanya. Robot menggunakan 2 buah motor DC 6 volt untuk menggerakkan rodanya, dimana 1 motor untuk menggerakkan roda sebelah kanan dan 1 motor lagi untuk menggerakkan roda sebelah kiri.

Motor DC akan berputar searah/berlawanan arah dengan jarum jam jika salah satu kutubnya diberi tegangan positip dan kutub yang lainnya diberi tegangan negatif atau ground. Dan motor DC akan berputar kearah sebaliknya jika


(45)

polaritasnya dibalik. Dengan sifat yang demikian maka dibutuhkan suatu rangkaian yang dapat membalikkan polaritas yang diberikan ke motor DC tersebut, sehingga perputaran motor DC dapat dikendalikan oleh rangkaian tersebut. Dan jika rangkaian tersebut dihubungkan dengan mikrokontroler AT89S51, maka pergerakan motor dapat dikendalikan oleh program.

Rangkaian untuk mengendalikan perputaran motor DC tersebut adalah sebuah rangkaian yang dikenal dengan jembatan H. Jembatan H ini terdiri dari 4 buah transistor, dimana 2 buah transistor bertipe NPN dan 2 buah transistor lagi bertipe PNP. Ke-4 transistor ini dirangkai sedemikian rupa sehingga dengan memberikan sinyal low atau high pada rangkaian maka perputaran motor dapat diatur.

Untuk perintah maju, maka robot akan memutar maju kedua motor, motor kanan dan kiri. Untuk perintah mundur, maka robot akan memutar mundur kedua motor. Sedangkan untuk memutar/berbelok kekanan, maka robot akan memutar maju motor sebelah kiri dan memutar mundur motor sebelah kanan, sehingga dengan demikian maka robot akan memutar/berbelok kearah kanan. Hal sebaliknya dilakukan jika robot berputar ke sebelah kiri. Rangkaian jembatan H, ditunjukkan pada gambar di bawah ini:


(46)

VCC 5V VCC 5V 183303302SC945 2SC945 1.0k1.0k

18Tip 127

Tip 122 Tip 127 18Tip 122 1.0k2SC945 1.0k182SC945 330330MOTOR VDD 6.2V VDD 6.2V P0.1 P0.0

Gambar 3.8 Rangkaian jembatan H

Pada rangkaian di atas, jika P0.0 diset high yang berarti P0.0 mendapat tegangan 5 volt, maka kedua transistor tipe NPN C945 yang disebelah kiri akan aktif. Hal ini akan membuat kolektor dari kedua transistor C945 itu akan mendapat tegangan 0 volt dari ground. Kolektor dari transistor C945 yang berada di sebelah kiri atas diumpankan ke basis dari transistor tipe PNP TIP 127 sehingga basis dari transistor TIP 127 mendapatkan tegangan 0 volt yang menyebabkan transistor ini aktif (transistor tipe PNP akan aktip jika tegangan pada basis lebih kecil dari 4,34 volt). Aktifnya transistor PNP TIP 127 ini akan mengakibatkan kolektornya terhubung ke emitor sehingga kolektor mendapatkan tegangan 5 volt dari Vcc.

Sedangkan kolektor dari transistor C945 yang berada di sebelah kiri bawah diumpankan ke basis dari transistor tipe NPN TIP 122 sehingga basis dari transistor TIP 122 mendapatkan tegangan 0 volt yang menyebabkan transistor ini tidak aktif (transistor tipe NPN akan aktif jika tegangan pada basis lebih besar dari 0,7 volt). Karena transistor TIP 122 ini tidak aktif, maka kolektornya tidak terhubung ke emitor, sehingga kolektor tidak mendapatkan tegangan 0 volt dari ground.


(47)

Karena kolektor TIP 122 dihubungkan dengan kolektor TIP 127 yang mendapatkan teganagan 5 volt dari Vcc, maka kolektor dari TIP 122 juga mendapatkan tegangan yang sama. Hal ini menyebabkan kaki motor sebelah kiri mendapatkan tegangan 5 volt (polaritas positif).

Agar motor dapat berputar ke satu arah maka kaki sebelah kanan motor harus mendapatkan tegangan 0 volt (polaritas negatif). Hal ini diperoleh dengan memberikan logika low (0) pada P0.1 mikrokontroler AT89S51.

Pada rangkaian di atas, jika P0.1 diset low yang berarti P0.1 mendapat tegangan 0 volt, maka kedua transistor tipe NPN C945 yang disebelah kanan tidak akan aktif. Hal ini akan membuat kolektor dari kedua transistor C945 itu akan mendapat tegangan 5 volt dari Vcc. Kolektor dari transistor C945 yang berada di sebelah kanan atas diumpankan ke basis dari transistor tipe PNP TIP 127 sehingga basis dari transistor TIP 127 mendapatkan tegangan 5 volt yang menyebabkan transistor ini tidak aktif Karena transistor PNP TIP 127 tidak aktif maka kolektornya tidak terhubung ke emitor sehingga kolektor tidak mendapatkan tegangan 5 volt dari Vcc, tetapi mendapatkan tegangan yang berasal dari transistor TIP 122 yang berada di bawahnya.

Sedangkan kolektor dari transistor C945 yang berada di sebelah kiri bawah diumpankan ke basis dari transistor tipe NPN TIP 122 sehingga basis dari


(48)

kolektornya terhubung ke emitor, sehingga kolektor mendapatkan tegangan 0 volt dari ground.

Karena kolektor TIP 122 yang mendapatkan teganagan 0 volt dari ground dihubungkan dengan kolektor TIP 127, maka kolektor dari TIP 127 juga mendapatkan tegangan yang sama. Hal ini menyebabkan kaki motor sebelah kanan mendapatkan tegangan 0 volt (polaritas negatif). Hal ini akan menyebabkan motor akan berputar ke satu arah tertentu.

Sedangkan untuk memutar motor kearah sebaliknya, maka logika yang diberikan ke P0.0 adalah low (0) dan logika yang diberikan ke P01. adalah high (1).

III. 6 Rangkaian Driver Motor Stepper

Untuk mengendalikan perputaran motor stepper dibutuhkan sebuah driver. Driver ini berfungsi untuk memutar motor stepper searah/berlawanan arah dengan arah jarum jam. Mikrokontroler tidak dapat langsung mengendalikan putaran dari motor stepper, karena itu dibutuhkan driver sebagai perantara antara mikrokontroler dan motor stepper, sehingga perputaran dari motor stepper dapat dikendalikan oleh mikrokontroler. Rangkaian jembatan H ditunjukkan pada gambar 3.9 berikut ini :


(49)

VCC 5V 183303302SC945 2SC945 1.0k1.0k18Tip 127 VCC 5V Tip 122 VCC 5V VCC 5V 183303302SC945 2SC945 1.0k1.0k18Tip 127 Tip 122 Kumparan2 Kumparan1 Tip 127 18Tip 122 1.0kVCC 5V VCC 5V 2SC945 1.0k182SC945 330330Tip 127 18Tip 122 1.0kVCC 5V VCC 5V 2SC945 1.0k182SC945 330330Kumparan3 Kumparan4 Motor AT89C4051 AT89C4051 AT89C4051 AT89C4051 II IV

Untuk mempermudah penjelasan, maka rangkaian di atas dikelompokkan menjadi 4 rangkaian. Pada rangkaian di atas, jika salah input rangkaian I yang dihubungkan ke mikrokontroler diberi logika high dan input pada rangkaian lainnya diberi logika low, maka kedua transistor tipe NPN C945 pada rangkaian I akan aktif. Hal ini akan membuat kolektor dari kedua transistor C945 pada rangkaian I akan mendapat tegangan 0 volt dari ground. Kolektor dari transistor C945 yang berada di sebelah kiri atas diumpankan ke basis dari transistor tipe PNP TIP 127 sehingga basis dari transistor TIP 127 mendapatkan tegangan 0 volt yang menyebabkan transistor ini aktif (transistor tipe PNP akan aktif jika tegangan pada basis lebih kecil dari 4,34 volt). Aktifnya transistor PNP TIP 127 ini akan mengakibatkan kolektornya terhubung ke emitor sehingga kolektor mendapatkan tegangan 15 volt dari Vcc.


(50)

kumparan menimbulkan medan magnet. Medan magnet inilah yang akan menarik motor untuk mengarah ke arah kumparan yang menimbulkan medan magnet tersebut.

Sedangkan rangkaian II, III dan IV karena pada inputnya diberi logika low, maka kumparannya tidak menimbulkan medan magnet, sehingga motor tidak tertarik oleh kumparan-kumparan tersebut.

Demikian seterusnya untuk menggerakkan motor agar berputar maka harus diberikan logika high secara bergantian ke masing-masing input dari masing-masing rangkaian.

III. 5 Perancangan Program

Program diawali dengan start yang berarti bahwa robot dihidupkan. Selanjutnya program akan menunggu penekanan pada salah satu tombol pada


(51)

robot. Setelah benda diletakkan pada forklift yang ada pada robot, kemudian tombol ditekan, maka robot akan melihat tombol mana yang ditekan. Jika tidak ada penekanan pada salah satu tombol, maka robot akan terus menunggu sampai ada penekanan pada salah satu tombol. Jika terjadi penekanan pada tombol 1, maka penekanan ini akan dianggap sebagai perintah untuk menyimpan/menyusun barang di ruangan 1, kemudian robot menunggu penekanan pada tombol run, setelah tombol run ditekan maka robot akan mulai bergerak memutar roda dan mengikuti jalur 1. Kemudian ketika robot sampai di ruangan 1, maka robot akan meletakkan barang dan kembali ke posisi awal untuk menunggu perintah selanjutnya.

Jika terjadi penekanan pada tombol 2, maka penekanan ini akan dianggap sebagai perintah untuk menyimpan/menyusun barang di ruangan 2, kemudian robot menunggu penekanan pada tombol run, setelah tombol run ditekan maka robot akan mulai bergerak memutar roda dan mengikuti jalur 2. Kemudian ketika robot sampai di ruangan 2, maka robot akan meletakkan barang dan kembali ke posisi awal untuk menunggu perintah selanjutnya.


(52)

BAB IV

PENGUJIAN RANGKAIAN DAN PROGRAM

4.1 Pengujian Rangkaian Catu Daya

Pengujian pada rangkaian catu daya ini dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan voltmeter digital. Dari hasil pengujian pada saat baterei penuh, maka didapatkan tegangan keluaran pertama sebesar 5,0 volt dan tegangan keluaran yang kedua sebesar 6,2 volt. Pada saat baterei lemah, maka didapatkan tegangan keluaran pertama sebesar 4.6 volt dan tegangan keluaran yang kedua sebesar 5,9 volt walaupun tegangan keluaran pertama tidak tepat 5 volt, dan tegangan keluaran kedua tidak tepat 6 volt, robot tetap bekerja namun jalannya semakin lambat. Hal ini disebabkan karena kurangnya tegangan yang dibutuhkan untuk memutar motor. Dengan demikian rangkaian ini telah berjalan dengan baik.

4.2 Pengujian Rangkaian Mikrokontroler AT89S51

Pengujian pada rangkaian mikrokontroler AT89S51 ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian power supplay sebagai sumber tegangan. Kaki 40 dihubungkan dengan sumber tegangan 5 volt, sedangkan kaki 20 dihubungkan dengan ground. Kemudian tegangan pada kaki 40 diukur dengan menggunakan voltmeter. Dari hasil pengujian didapatkan tegangan pada kaki 40


(53)

sebesar 5 volt. Langkah selanjutnya adalah memberikan program sederhana pada mikrokontroler AT89S51. Program yang diberikan adalah sebagai berikut :

Loop:

Cpl P3.7 Acall Tunda Sjmp Loop Tunda:

Mov R7,#255 Tnd:

Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Program di atas akan mengubah logika yang ada pada P3.7 selama selang waktu tunda. Jika logika pada P3.7 high maka akan diubah menjadi low, demikian juga sebaliknya jika logika pada P3.7 low maka akan diubah ke high, demikian seterusnya.

Logika low akan mengaktifkan transistor sehingga LED akan menyala dan logika high akan menonaktifkan transistor, sehingga LED padam. Dengan demikian program ini akan membuat LED berkedip terus-menerus. Jika LED telah berkedip terus menerus sesuai dengan program yang diinginkan, maka


(54)

Pengujian Rangkaian Sensor Garis

Pengujian pada rangkaian sensor garis ini dapat dilakukan dengan meletakkan robot diatas line hitam (sensor mengenai line hitam), dan kemudian meletakkan robot di atas lantai putih (sensor mengenai lantai putih),. Dari hasil pengujian, ketika robot diletakkan pada line hitam (sensor mengenai line hitam), maka tegangan pada potodioda 0,3 mV. Tegangan ini tidak dapat mengaktipkan transistor C828 sehingga rangkaian sensor tidak aktip, LED indikator mati dan rangkaian ini akan mengirimkan logika high (1) ke mikrokontroler AT89S51.

Ketika robot diletakkan pada lantai putih (sensor mengenai lantai putih), maka tegangan pada potodioda 1,3 mV. Tegangan ini akan mengaktipkan transistor C828 sehingga rangkaian sensor menjadi aktif, LED indikator menyala dan rangkaian ini akan mengirimkan logika low (0) ke mikrokontroler AT89S51.

Pengujian selanjutnya adalah dengan menghubungkan rangkaian sensor garis ini dengan rangkaian mikrokontroler yang telah diberi program sebagai berikut :

Jnb P2.3,$ Setb P3.7 . . . .

Program di atas akan menunggu adanya sinyal high (1) yang dikirimkan sensor, dimana sensor siang tersebut dihubungkan dengan P2.3. Program akan terus menunggu sampai ada sinyal high yang dikirimkan oleh sensor. Sinyal high


(55)

ini menunjukkan behwa sensor pada robot mengenai garis hitam. Jika ada sinyal high yang dikirimkan oleh sensor, maka program akan menghidupkan LED indikator yang dihubungkan ke P3.7.

Pengujian Rangkaian Tombol

Pengujian pada rangkaian ini dapat dilakukan dengan menekan tombol, kemudian mengukur tegangan output dari rangkaian tersebut. Dari hasil pengujian didapatkan pada saat tombol tidak ditekan, maka output dari rangkaian ini adalah 4,9 volt. Ketika terjadi penekanan tombol, maka output dari rangkaian ini adalah 0 volt. Dengan demikian rangkaian ini telah berfungsi dengan baik.

Pengujian selanjutnya adalah dengan menghubungkan rangkaian tombol ini dengan rangkaian mikrokontroler yang telah diberi program sebagai berikut :

Jb P1.0,$ Setb P3.7 . . . .

Program di atas akan menunggu adanya sinyal low yang dikirimkan tombol, dimana tombol tersebut dihubungkan dengan P1.0. Program akan terus


(56)

menunggu sampai ada sinyal low yang dikirimkan oleh tombol. Jika ada sinyal low yang dikirimkan oleh tombol, maka program akan menghidupkan LED indikator yang dihubungkan ke P3.7.

Pengujian Rangkaian Display Seven Segmen

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini ke rangkaian mikrokontroler AT89S51. Dimana kaki 2 pada IC 4094 dihubungkan dengan kaki 10 (P3.0) mikrokontroler AT89S51 dan kaki 3 pada IC 4094 dihubungkan dengan kaki 11 (P3.1) mikrokontroler AT89S51.

Seven segmen yang digunakan adalah aktif low, ini berarti segmen akan hidup jika diberi data low (0) dan segmen akan mati jika diberi data high (1). Untuk menampilkan angka pada seven segmen, maka data yang harus diberikan adalah sebagai berikut:

 Untuk menampilkan angka nol, data yang harus dikirim adalah

20h

 Untuk menampilkan angka satu, data yang harus dikirim adalah

0ech

 Untuk menampilkan angka dua, data yang harus dikirim adalah

18h

 Untuk mengosongkan tampilan, data yang harus dikirim adalah


(57)

Langkah selanjutnya memberikan program sederhana untuk menampilkan angka pada seven segmen tersebut.

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bilkosong equ 0ffh

Display:

mov sbuf,#bil0 jnb ti,$

clr ti ret

Progran di atas akan menampilkan nilai 0 pada display seven segmen. Dan nilai

berapapun yang diisikan ke serial buffer (sbuf) akan ditampilkan pada display seven segmen.

Pengujian Pengendali Pergerakan Motor (Jembatan H)

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan input rangkaian ini ke rangkaian mikrokontroler AT89S51 dan menghubungkan output dari rangkaian ini ke motor DC.

Langkah selanjutnya adalah mengisikan pada mikrokontroler program sederhana untuk memutar motor DC tersebut. Program yang diisikan ke


(58)

Clr P0.1

Perintah Setb P0.0 akan memberikan logika high ke P0.0 dan perintah Clr P0.1 akan memberikan logika low ke P0.1. Untuk membuat motor berputar kearah sebaliknya adalah,

Clr P0.0 Setb P0.1

Perintah Clr P0.0 akan memberikan logika low ke P0.0 dan perintah Setb P0.1 akan memberikan logika high ke P0.1. Dengan demikian arah perputaran motor sudah dapat dikendalikan oleh program yang diisikan ke mikrokontroler AT89S51.

Pengujian Rangkaian Driver Motor Stepper

Pengujian pada rangkaian jembatan H ini dilakukan dengan menghubungkan input rangkaian driver motor stepper ini dengan rangakaian mikrokontroler AT89S51 dan menghubungkan output dari rangkaian driver motor stepper ini dengan motor stepper, kemudian memberikan program sebagai berikut:

motor1 Bit P0.4 motor2 Bit P0.5 motor3 Bit P0.6 motor4 Bit P0.7 angkat_lift:

setb motor1 Clr motor4


(59)

acall tunda setb motor2 Clr motor1 acall tunda setb motor3 Clr motor2 acall tunda setb motor4 Clr motor3 acall tunda

Sjmp angkat_lift Tunda:

Mov R7,#50 Tnd:

Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Program di atas akan memberikan logika high secara bergantian pada input dari rangkaian driver motor stepper, dimana input dari jembatan masing-masing dihubungkan ke P0.4, P0.5, P0.6 dan P0.7. Dengan program di atas maka motor akan bergerak searah dengan arah putaran jarum jam (mengangkat lift). Untuk memutar dengan arah sebaliknya, maka diberikan program sebagai berikut :

Turun_Lift:


(60)

Clr motor4 acall tunda setb motor2 Clr motor3 acall tunda setb motor1 Clr motor2 acall tunda Sjmp Turun_Lift

Tunda:

Mov R7,#50 Tnd:

Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Dengan program di atas, maka motor akan berputar berlawanan arah dengan arah putaran jarum jam (menurunkan lift). Tunda digunakan untuk mengatur kecepatan putar dari motor. Semakin besar nilai yang diberikan pada tunda, maka perputaran motor akan semakin lambat, dan sebaliknya.


(61)

BAB V

KESIMPULAN DAN SARAN 5.1. Kesimpulan

Berdasarkan pengamatan dan data dapat diambil kesimpulan sebagai berikut: a. Pada alat ini menggunakan pemancar dan peneima infra merah yang

fungsinya merupakan sensor untuk mendeteksi garis dimana garis yang digunakan berwarna hitam dengan latar belakang berwarna putih agar didapat perbedaan intensitas pantulan. Karena pantulan sinar infra merah pada objek yang gelap berbeda dengan yang terang. Pada objek yang terang pantulan sinar infra merahnya lebih besar dari pada objek yang gelap.

b. Alat ini dirancang untuk dapat mengangkat dan menyusun barang dengan jalur yang dikehendaki yaitu yang ditandai dengan adanya garis hitam. Alat ini sangat efisien karena bekerja secara otomatis sesuai program pada mikrokontroler.


(62)

5.2. Saran

a. Untuk mendapatkan hasil pantulan sinar infra merah yang lebih baik dapat mengguanakan rangkaian pemancar dengan dioda infra merah lebih dari satu.

b. Untuk mendapatkan sinar infra merah yang lebih baik maka pada foto dioda dapat digunakan sarung bakar.

c. Penggunaan beban barang pada alat yang dicobakan diharapkan tidak melebihi kapasitas daya angkut alat.


(63)

DAFTAR PUSTAKA

1. Agfianto, 2004. Belajar Mikrocontroler AT89C51/52/55 Teori dan Aplikasi,Edisi Kedua, Yogyakarta, Gava Media.

2. Andi, 2003. Panduan Praktis Teknik Antar Muka dan Pemrograman Mikrocontroler AT89C51,Jakarta, PT Elex Media Komptindo. 3. Malvino, Albert Paul, 2003, Prinsip-prinsip Elektronika,Jilid 1 & 2, Edisi

Pertama,Jakarta, Salemba Teknika.

4. http:www.atmel.com, diakses pada tanggal 10 Agustus 2007. 5. http.www.sgbotic.com, diakses pada tanggal 13 Agustus 2007.


(1)

Clr P0.1

Perintah Setb P0.0 akan memberikan logika high ke P0.0 dan perintah Clr P0.1 akan memberikan logika low ke P0.1. Untuk membuat motor berputar kearah sebaliknya adalah,

Clr P0.0 Setb P0.1

Perintah Clr P0.0 akan memberikan logika low ke P0.0 dan perintah Setb P0.1 akan memberikan logika high ke P0.1. Dengan demikian arah perputaran motor sudah dapat dikendalikan oleh program yang diisikan ke mikrokontroler AT89S51.

Pengujian Rangkaian Driver Motor Stepper

Pengujian pada rangkaian jembatan H ini dilakukan dengan menghubungkan input rangkaian driver motor stepper ini dengan rangakaian mikrokontroler AT89S51 dan menghubungkan output dari rangkaian driver motor stepper ini dengan motor stepper, kemudian memberikan program sebagai berikut:

motor1 Bit P0.4 motor2 Bit P0.5 motor3 Bit P0.6 motor4 Bit P0.7 angkat_lift:

setb motor1 Clr motor4


(2)

acall tunda setb motor2 Clr motor1 acall tunda setb motor3 Clr motor2 acall tunda setb motor4 Clr motor3 acall tunda Sjmp angkat_lift Tunda: Mov R7,#50 Tnd: Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Program di atas akan memberikan logika high secara bergantian pada input dari rangkaian driver motor stepper, dimana input dari jembatan masing-masing dihubungkan ke P0.4, P0.5, P0.6 dan P0.7. Dengan program di atas maka motor akan bergerak searah dengan arah putaran jarum jam (mengangkat lift). Untuk memutar dengan arah sebaliknya, maka diberikan program sebagai berikut : Turun_Lift: setb motor4 Clr motor1 acall tunda setb motor3


(3)

Clr motor4 acall tunda setb motor2 Clr motor3 acall tunda setb motor1 Clr motor2 acall tunda Sjmp Turun_Lift

Tunda:

Mov R7,#50 Tnd:

Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Dengan program di atas, maka motor akan berputar berlawanan arah dengan arah putaran jarum jam (menurunkan lift). Tunda digunakan untuk mengatur kecepatan putar dari motor. Semakin besar nilai yang diberikan pada tunda, maka perputaran motor akan semakin lambat, dan sebaliknya.


(4)

BAB V

KESIMPULAN DAN SARAN 5.1. Kesimpulan

Berdasarkan pengamatan dan data dapat diambil kesimpulan sebagai berikut: a. Pada alat ini menggunakan pemancar dan peneima infra merah yang

fungsinya merupakan sensor untuk mendeteksi garis dimana garis yang digunakan berwarna hitam dengan latar belakang berwarna putih agar didapat perbedaan intensitas pantulan. Karena pantulan sinar infra merah pada objek yang gelap berbeda dengan yang terang. Pada objek yang terang pantulan sinar infra merahnya lebih besar dari pada objek yang gelap.

b. Alat ini dirancang untuk dapat mengangkat dan menyusun barang dengan jalur yang dikehendaki yaitu yang ditandai dengan adanya garis hitam. Alat ini sangat efisien karena bekerja secara otomatis sesuai program pada mikrokontroler.


(5)

5.2. Saran

a. Untuk mendapatkan hasil pantulan sinar infra merah yang lebih baik dapat mengguanakan rangkaian pemancar dengan dioda infra merah lebih dari satu.

b. Untuk mendapatkan sinar infra merah yang lebih baik maka pada foto dioda dapat digunakan sarung bakar.

c. Penggunaan beban barang pada alat yang dicobakan diharapkan tidak melebihi kapasitas daya angkut alat.


(6)

DAFTAR PUSTAKA

1. Agfianto, 2004. Belajar Mikrocontroler AT89C51/52/55 Teori dan Aplikasi,Edisi Kedua, Yogyakarta, Gava Media.

2. Andi, 2003. Panduan Praktis Teknik Antar Muka dan Pemrograman Mikrocontroler AT89C51,Jakarta, PT Elex Media Komptindo. 3. Malvino, Albert Paul, 2003, Prinsip-prinsip Elektronika,Jilid 1 & 2, Edisi

Pertama,Jakarta, Salemba Teknika.

4. http:www.atmel.com, diakses pada tanggal 10 Agustus 2007. 5. http.www.sgbotic.com, diakses pada tanggal 13 Agustus 2007.

.