APLIKASI MIKROKONTROLER ATMEL 90S8515 SEBAGAI … · 12. Rekan-rekan kampong halamanku, Awi, Hani,...
Transcript of APLIKASI MIKROKONTROLER ATMEL 90S8515 SEBAGAI … · 12. Rekan-rekan kampong halamanku, Awi, Hani,...
i
APLIKASI MIKROKONTROLER ATMEL 90S8515 SEBAGAI
PENGATUR PADA ROBOT PENYELEKSI DAN PEMINDAH
BARANG
TUGAS AKHIR
Disusun Sebagai Syarat Akhir Menyelesaikan Pendidikan Program Sarjana Pada
Jurusan Teknik Elektro Fakultas Teknik Universitas Diponegoro
Disusun oleh :
ANDES INDRAYANTO
L2F099572
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO
SEMARANG
2006
ii
HALAMAN PENGESAHAN
Laporan Tugas Akhir dengan judul “APLIKASI MIKROKONTROLER ATMEL
90S8515 SEBAGAI PENGATUR PADA ROBOT PENYELEKSI DAN
PEMINDAH BARANG“ yang disusun oleh:
Nama : ANDES INDRAYANTO
NIM : L2F 099 572
Konsentrasi : Kontrol
Telah disetujui dan disahkan untuk dijadikan laporan Tugas Akhir sebagai salah satu
syarat menyelesaikan pendidikan program Strata Satu Jurusan Teknik Elektro
Fakultas Teknik Universitas Diponegoro Semarang.
Menyetujui dan mengesahkan
Pembimbing I,
Sumardi, ST, MT
NIP. 132 125 670
Pembimbing II,
Iwan Setiawan ST, MT
NIP.132 283 183
Mengetahui,
Ketua Jurusan Teknik Elektro
Fakultas Teknik Universitas Diponegoro
Ir. Sudjadi, MT
NIP. 131 558 567
iii
Tugas Akhir
APLIKASI MIKROKONTROLER ATMEL 90S8515 SEBAGAI PENGATUR PADA ROBOT PENYELEKSI DAN PEMINDAH BARANG
yang dipersiapkan dan disusun oleh
Andes Indrayanto L2F 099 572
telah dipertahankan di depan para Dosen Penguji
pada tanggal 20 Juli 2006
dan dinyatakan telah memenuhi syarat
Susunan Dosen Penguji
Tanda tangan
Ketua / Anggota Ir. Sudjadi, MT
Tanggal :
...................................
...................................
Sekretaris / Anggota Aghus Sofwan, ST, MT
Tanggal :
...................................
...................................
Anggota Budi Setiyono, ST, MT
Tanggal :
...................................
...................................
iv
ABSTRAK Pada era teknologi sekarang ini perkembangan disegala bidang dengan basis teknologi sangatlah pesat. Berbagai penemuan dan perkembangan teknologi telah menjadikan banyak sekali perubahan – perubahan bagi berbagai macam tatanan kehidupan yang berkembang dimasyarakat. Kemajuan ini membantu memudahkan manusia dalam menyelesaikan pekerjaan yang dulu dianggap sulit bahkan hamper mustahil untuk dilakukan.Salah satunya adalah dibidang kontrol dengan ditemukannya mikrokontroler sebagai alat bantu pengendali yang otomatis.
Melalui tugas akhir ini penulis akan menggunakan mikrokontroler ATMEL 90S8515 sebagai salah satu dari beberapa produk keluaran ATMEL untuk mengatur dan menjalankan gerak mekanis dari tangan robot dengan metode on/off kontroler. Penulis menggunakan bahasa pemrograman C sebagai bahasa pemrograman untuk mikrokontroler ATMEL 90S8515.
Lengan robot ini dirancang untuk menyeleksi dan memindahkan barang berdasarkan ukuran tinggi. Dimana barang yang diangkat berupa logam yang memiliki sifat magnetis. Dari hasil pengujian secara keseluruhan maka dapat disimpulkan bahwa sistem dapat bekerja dengan baik, hal ini terlihat dari hasil pengujian yang meliputi proses penyeleksian dan pemindahan barang berhasil dilakukan dengan baik.
v
ABSTRAK
The development of technology is growing rapidly in this era. Inventions and development of technology create many changes in the society’s way of life. Those products help human being to handle and finish any difficult job, even some impossible task. One of them is microcontroler as an automatic control tool. This research used ATMEL 90S8515 microcontroler as one of ATMEL product that is used to control and manage mechanical movement of robotic hand by using on/off control method. C language program as a program language for microcontroler ATMEL 90S8515 was using in this research.
Robotic hand was made to select and move equipment based on the level of the object. Where equipment lifted in the form of metal having the nature of magnetic. The result of this research was the system worked well by seeing the experiment of selection and movement process of equipment that was successfully done.
vi
KATA PENGANTAR
بسم اهللا الرحمن الرحیم
Puji syukur kehadirat Allah SWT yang telah melimpahkan segala Rahmat,
Taufik serta Hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan
penyusunan laporan Tugas Akhir (TA) yang berjudul “APLIKASI
MIKROKONTROLER ATMEL AT90S8515 SEBAGAI PENGATUR PADA
ROBOT PENYELEKSI DAN PEMINDAH BARANG”
Dalam penyusunan laporan tugas akhir ini, penulis banyak mendapatkan
bantuan dari berbagai pihak, oleh karena itu pada kesempatan kali ini penulis ingin
menyampaikan ucapan terima kasih kepada :
1. Bapak Ir. Sudjadi, MT selaku Ketua Jurusan Teknik Elektro FT. UNDIP.
2. Bapak Sumardi, ST, MT selaku Dosen Pembimbing I.
3. Bapak Iwan Setiawan, ST, MT selaku Dosen Pembimbing II.
4. Segenap Staf Dosen, Laboratorium dan Tata Usaha Jurusan Teknik Elektro
FT. UNDIP.
5. Bpk R. Rizal Isnanto, ST, MM, MT selaku koordinator Tugas Akhir (TA)
6. Ibu Ir. Juningtyastuti selaku Dosen Wali
7. Ibundaku tercinta, Bapakku yang sangat kuhormati“Ya allah ampunilah
dosanya dan terimalah amalnya”, dan semua saudara-saudaraku Mbak Lilis,
Mbak Rita, Mbak Feri dan Mbak Ike yang telah memberikan doa, nasehat
serta dorongan semangat kepada penulis.
8. Adindaku “Herlina R.E”. Kamu yang mengisi hari-hariku selama ini.
9. Teman-teman Kosku. Adi, Radit, Oki, Agung dan semuanya terima kasih atas
kebersamaannya selama ini. Jauh dimata tetap dekat dihati.
10. Semua teman-teman Teknik Elektro angkatan ’99.
11. Teman-teman Akrabku Kadiq, Argo, Arief B, Budiono, Nasrul, Agusti,
Syahid, Handoko, Boim, Mustofa, Riyo terima kasih atas segala bantuan dan
semangatnya.
12. Rekan-rekan kampong halamanku, Awi, Hani, Enjis, Amin, Slamet, Warso
terima kasih atas segala dorongan dan canda tawanya.
13. Semua pihak-pihak yang telah banyak membantu penulis, yang penulis tidak
dapat sebutkan disini satu-per-satu
vii
Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari sempuma,
baik dari segi isi maupun cara penyusunannya. Oleh karena itu, penulis sangat
mengharapkan saran dan kritik yang bersifat membangun dari pembaca demi
kesempurnaan laporan ini dimasa mendatang. Penulis berharap, semoga laporan
Tugas Akhir ini dapat memberikan manfaat kepada para pembaca pada umumnya
dan bagi penulis pada khususnya.
Akhirnya penulis berharap semoga laporan Tugas Akhir ini dapat
memberikan manfaat bagi kita semua.
Semarang, Mei 2006
Penulis
viii
DAFTAR ISI
HALAMAN JUDUL ........................................................................................... i
HALAMAN PENGESAHAN ............................................................................. ii
ABSTRAKSI ....................................................................................................... iv
KATA PENGANTAR ......................................................................................... vi
DAFTAR ISI ....................................................................................................... viii
DAFTAR GAMBAR ........................................................................................... xi
DAFTAR TABEL ............................................................................................... xii
BAB I PENDAHULUAN ................................................................. 1
1.1. Latar Belakang ......................................................................................... 1
1.2. Maksud dan Tujuan .................................................................................. 2
1.3. Pembatasan Masalah ................................................................................ 2
1.4. Sistematika Penulisan ............................................................................... 2
BAB II DASAR TEORI ................................................................... 4
2.1. Robot ....................................................................................................... 4
2.2. Mikrokontroler AT90S8515 ..................................................................... 5
2.2.1. Susunan Kaki Mikrokontroler AT90S8515 .................................... 7
2.2.2. Blok Diagram dan Arsitektur AT90S8515 ..................................... 8
2.2.3. Organisasi Memori ........................................................................ 9
2.2.3.1.Memori Program ...................................................................... 10
2.2.3.2.Memori Data ............................................................................ 11
2.2.3.3.32 Register Serbaguna ............................................................. 12
2.2.3.4.Ruang Memory I/O .................................................................. 13
2.2.4. Pewaktuan CPU ............................................................................. 15
ix
2.3. Transistor Sebagai Saklar ......................................................................... 16
2.4. Infrared .................................................................................................... 18
2.5. Motor DC ................................................................................................. 19
2.6. Sistem Kontrol On-Off ............................................................................. 20
2.7. Perangkat Lunak (Software) ..................................................................... 21
BAB III PERANCANGAN HARDWARE & SOFTWARE ............................... 22 3.1. Blok Sistem .............................................................................................. 22
3.2. Perancangan Perangkat Keras ................................................................... 23
3.2.1. Perancangan Rangkaian Mikrokontroler AT90S8515 ..................... 23
3.2.2. Perancangan Rangkaian Penggerak Motor DC Satu Arah .............. 26
3.2.3. Perancangan Rangkaian Penggerak Motor DC Dua Arah ............... 27
3.2.4. Perancangan Rangkaian Sensor Infrared ........................................ 28
3.2.5. Perancangan Rangkaian Sensor Limit Switch sebagai Sensor Batas 30
3.3. Perancangan Perangkat Lunak .................................................................. 31
3.3.1. Deklarasi Variabel, Fungsi, dan File Judul (Header File) Program . 31
3.3.2. Program Utama .............................................................................. 32
3.3.3. Fungsi Untuk Barang Jenis Rendah ................................................ 36
3.3.4. Fungsi Untuk Barang Jenis Tinggi ................................................. 41
BAB IV PENGUJIAN DAN ANALISA ALAT ................................................ 48 4.1. Pengujian Hardware ................................................................................. 48
4.1.1. Pengujian Sistem Minimum AT90S8515 - LCD ............................ 48
4.1.2. Pengujian Rangkaian Penggerak Motor DC Satu Arah ................... 49
4.1.3. Pengujian Rangkaian Penggerak Motor DC Dua Arah ................... 50
4.1.4. Pengujian Rangkaian Sensor infrared ............................................. 51
4.1.5. Pengujian Rangkaian Sensor Limit Switch ...................................... 53
4.2. Pengujian Software .................................................................................. 54
4.2.1. Pengujian Program Pada Konveyor Penyedia Barang ..................... 54
4.2.2. Pengujian Program Konveyor Penerima Barang Untuk Gerakan
Kekanan, Ketengah, Kekiri Dan Turun-Naik ................................ 57
BAB V PENUTUP ............................................................................................. 61 5.1. Kesimpulan .............................................................................................. 61
1
x
5.2. Saran ........................................................................................................ 61
DAFTAR PUSTAKA .......................................................................................... 62
LAMPIRAN A : DIAGRAM ALIR PROGRAM
LAMPIRAN B : SENARAI PROGRAM
LAMPIRAN C : DIAGRAM SKEMATIK RANGKAIAN
LAMPIRAN D : FOTO ALAT
LAMPIRAN E : DATA SHEET
1
xi
DAFTAR GAMBAR
Gambar 2.1 Gambar bagian lengan robot ......................................................... 5
Gambar 2.2 Susunan kaki AT90S8515 ............................................................ 7
Gambar 2.3 Blok diagram Mikrokontroler AT90S8515 .................................. 9
Gambar 2.4 Memori program .......................................................................... 10
Gambar 2.5 Bagian bawah memori program .................................................... 11
Gambar 2.6 Memori Data ............................................................................... 11
Gambar 2.7 32 Register Serbaguna .................................................................. 12
Gambar 2.8 Register X, Y dan Z ..................................................................... 13
Gambar 2.9 Menggunakan osilator internal ..................................................... 15
Gambar 2.10 Menggunakan sumber detak eksternal .......................................... 15
Gambar 2.11 (a) Rangkaian transistor bias basis ............................................... 16
(b) Kurva karakteristik dan garis beban dc transistor Susunan kaki
..................................................................................................... 16
Gambar 2.12 (a) Dasar konstruksi motor DC .................................................... 19
(b) Penghantar beraliran listrik dalam medan magnet
mendapat gaya tolak .............................................................. 19
Gambar 2.13 Diagram blok kontroler on-off ..................................................... 20
Gambar 3.1 Diagram blok sistem .................................................................... 22
Gambar 3.2 Rangkaian Pengontrol Mikrokontroler AT90S8515 ..................... 24
Gambar 3.3 Rangkaian penggerak motor dc satu arah ................................... 26
Gambar 3.4 Rangkaian penggerak motor dc dua arah ..................................... 27
Gambar 3.5 Rangkaian Pemancar dan Penerima infrared ................................ 30
Gambar 3.6 Rangkaian sensor limit switch ...................................................... 31
Gambar 3.7 Diagram alir program utama ........................................................ 32
Gambar 3.8 Diagram alir proses penyeleksian dan pemindahan barang rendah
..................................................................................................... 35
Gambar 3.9 Diagram alir proses penyeleksian dan pemindahan barang tinggi ..
..................................................................................................... 41
Gambar 4.1 Rangkaian untuk menguji sistem minimum AT90S8515-LCD ..... 47
Gambar 4.2 Rangkaian uji penggerak motor DC dua arah ............................... 49
Gambar 4.3. Rangkaian uji limit switch ............................................................ 52
xii
DAFTAR TABEL
Tabel 2.1 Ruang I/O AT90S8515 .................................................................. 13
Tabel 3.1 Penggunaan port-port pada AT90S8515 ......................................... 24
Tabel 3.2 Logika untuk motor dc satu arah .................................................... 26
Tabel 3.3 Logika untuk motor dc dua arah naik – turun ................................. 28
Tabel 3.4 Logika untuk motor dc dua arah kanan – kiri ................................. 28
Tabel 3.5 Logika untuk sensor infrared ......................................................... 30
Tabel 3.6 Logika untuk sensor limit switch .................................................... 31
Tabel 4.1 Hasil pengujian rangkaian penggerak motor dc satu arah ............... 49
Tabel 4.2 Hasil pengujian rangkaian penggerak motor dc dua arah ................ 51
Tabel 4.3 Hasil pengujian rangkaian sensor infrared ...................................... 53
Tabel 4.4 Hasil pengujian sensor limit switch ................................................ 54
Tabel 4.5 Hasil pengujian pada konveyor penyedia barang ............................ 56
Tabel 4.6 Hasil pengujian pada konveyor penerima barang ............................ 60
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pada era globalisasi seperti saat ini, dimana persaingan pasar sudah sangat
terbuka, hanyalah yang mampu bersaing yang dapat bertahan. Faktor kualitas menjadi
jawaban. Industri yang lebih berkualitas dialah yang akan memenangkan persaingan.
Sehingga suatu industri harus mampu menekan biaya produksi dan mengoptimalkan
produksi.
Dalam industri yang berskala besar kegiatan produksinya sudah dilakukan
secara automatis yaitu dengan menggunakan robot yang bergerak otonom. Sebagai
salah satu elemen dari proses manufaktur, kita dapat menggunakan robot sebagai
bagian integral dari lingkungan industri modern. Apa yang mencirikan robot adalah
kecanggihannya dan kemampuan adaptasinya. Bersamaan dengan kemunculan robot
pintar, menjadikan robot menempati posisi sentral dalam evolusi sistem manufaktur
yang fleksibel dan maju. Selain menambah biaya produksi, pemakaian tenaga
manusia juga banyak menimbulkan kerugian terutama dari segi keakuratan
pemeriksaan. Kecanggihan dan kepintaran robot yang komplek terdiri dari
kemampuan untuk mengolah informasi dari indera (sensor) dan kemampuan untuk
melakukan aksi/tindakan juga kecerdasan untuk mengambil keputusan.
Salah satu bentuk robot bergerak otonom yang dirancang untuk industri
adalah robot pengikut garis seperti dalam penelitian yang dilakukan Raharjo dan
Sutopo (2004). Robot ini dirancang dan diimplementasikan menggunakan
mikrokontroler AT89C51 dan sensor berupa infrared.
Dalam tugas akhir ini penulis juga mencoba untuk merancang sebuah lengan
robot bergerak yang dapat menyeleksi dan memindah barang yang dapat dikendalikan
dengan mikrokontroler AT90S8515 dengan sensor berupa infrared dan limit switch.
Lengan robot ini juga dirancang sebagai salah satu aplikasi teknologi yang dapat
digunakan dalam dunia industri.
2
1.2 Maksud dan Tujuan
Tujuan yang hendak dicapai pada pembuatan Tugas Akhir ini adalah membuat
lengan robot penyeleksi dan pemindah barang berdasarkan ukuran tinggi
menggunakan mikrokontroler ATMEL 90S8515.
1.3 Pembatasan Masalah
Dalam Tugas Akhir ini, sistem yang akan dibuat dibatasi pada hal-hal sebagai
berikut :
a. Perangkat keras yang digunakan menggunakan mikrokontroler ATMEL
90S8515 dan tidak membahas arsitektur dan kinerja mikrokontroler ATMEL
90S8515.
b. Sistem kontrol yang digunakan adalah sistem kontrol on-off dengan ikal
tertutup.
c. Lengan robot ini hanya dapat mendeteksi dua jenis barang yang berbeda tinggi
rendahnya dengan ukuran yang telah ditentukan.
d. Lengan robot ini memiliki batas kemampuan dalam memindahkan benda
(tidak dapat memindahkan benda yang terlalu berat).
e. Proses pemindahan barang dilakukan satu-persatu dari konveyor penyedia ke
konveyor penerima kemudian ke kotak pengumpul.
f. Perangkat lunak menggunakan bahasa pemrograman C.
g. Lengan robot ini hanya bekerja untuk memindahkan barang dari satu konveyor
penyedia ke konveyor penerima yang telah ditentukan.
1.4 Sistematika Penulisan
Laporan Tugas Akhir ini disusun dengan sistematika penulisan sebagai
berikut:
BAB I : PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, maksud dan tujuan, pembatasan
masalah, metoda pengumpulan data dan analisa, dan sistematika penulisan.
3
BAB II : DASAR TEORI
Bab ini membahas perangkat keras dari AT90S8515. Pembahasan mengenai
perangkat keras didahulukan sebelum perangkat lunak karena perangkat lunak yang
digunakan akan menyesuaikan dengan perangkat keras. Pembahasan mengenai
perangkat keras ini antara lain mengenai blok diagram, register kontrol, register flag,
bagaimana pengoperasian divais pendukung seperti port, maupun alokasi memori,
transistor, sensor infrared, dan motor dc.
BAB III : PERANCANGAN HARDWARE & SOFTWARE
Bab ini berisi proses perancangan hardware dan software. Untuk perancangan
hardware membahas tentang mikrokontroler AT90S8515, rangkaian sensor dan
rangkaian penggerak motor. Sedangkan perancangan software meliputi flowchart
program dan listing program.
BAB IV : PENGUJIAN DAN ANALISA ALAT
Bab ini berisi laporan hasil pengujian dan analisa terhadap hardware dan software.
BAB V : PENUTUP
Bab ini berisi kesimpulan dari hasil Tugas Akhir yang telah dilakukan dan saran yang
diperlukan untuk perbaikan Tugas Akhir.
48
BAB II DASAR TEORI
2.1 Robot[5]
Perkembangan teknologi saat ini mulai bergeser kearah otomatisasi robot yang
memiliki kecerdasan tinggi dengan campur tangan manusia yang semakin kecil.
Untuk dapat bekerja secara otomatis maka suatu robot harus mempunyai 3 buah
komponen yaitu input (data masukan yang akan diolah), kecerdasan (suatu algoritma
yang menangani pengambilan keputusan yang didasarkan pada masukan) dan output
(keputusan yang yang diambil ).
Istilah robot berasal dari kata robota (bahasa Czech) yang berarti bekerja.
Kamus Webster mendefinisikan robot sebagai “perangkat automatik yang
menunjukkan fungsi yang dapat dilakukan manusia”. Robot Institute of America
mendeskripsikan istilah robot sebagai berikut : “Suatu robot adalah manipulator multi
fungsi yang dirancang untuk memindahkan benda, peralatan atau perangkat khusus
dengan pergerakan yang dapat diprogram secara variabel untuk menunjukkan
berbagai macam tugas”.
Salah satu jenis robot yang sangat populer dan paling sederhana adalah sistem
lengan robot (robot arm system). Sistem ini mengadopsi pergerakan lengan manusia,
yang terdiri dari pangkal bahu, lengan, sendi dan telapak tangan. Pada dunia industri
sistem ini banyak dipakai untuk memindahkan benda dari satu tempat ke tempat lain.
Suatu lengan robot (arm robot) terdiri dari rangkaian benda tegar, yaitu :
1. Bagian dasar (base).
2. Batang lengan (link).
3. Sendi (joint).
4. Piranti yang dipasang pada lengan robot (end-effector), yang dapat berupa
pencengkeram (gripper) dan peralatan (tool).
5
Gambar 2.1 Gambar bagian lengan robot.
Derajat kebebasan adalah banyaknya arah independen yang menyebabkan
end-effector dari sebuah lengan robot dapat bergerak. Setiap pasangan joint dan link
menyatakan 1 derajat kebebasan. Jika ada N pasangan joint dan link maka ada N
derajat kebebasan dengan link ke-0 yang melekat pada base tidak dipertimbangkan
sebagai bagian dari lengan robot.
2.2 Mikrokontroler AT90S8515[15]
Sebuah mikrokontroler adalah suatu kombinasi dari mikroprosesor, piranti I/O
(Input/Output) dan memori yang terdiri atas ROM (Read Only Memory) dan RAM
(Random Access Memory) dalam bentuk keping tunggal (single chip). Mikrokontroler
AT90S8515 adalah mikrokontroler 8 bit buatan Atmel dengan 8 K Byte System
Programable Flash dengan teknologi memori tak sumirna (nonvolatile), dengan
kepadatan tinggi, dan kompatibel dengan pin out dan set intruksi standar industri
MCS51 INTEL. Selain itu AT90S8515 mempunyai banyak fitur. Fitur tersebut antara
lain adalah Flash memory sebesar 4 Kwords mempunyai EEPROM internal sebesar
512 bytes, RAM sebesar 512 bytes, kecepatan clock sampai dengan 8 MHz dengan
frekuensi kerja sama dengan frekuensi kristal osilator, 11 interupsi, analog
komparator, 32 register yang langsung terhubung dengan ALU sehingga menyerupai
akumulator, serta dirancang dengan mempertimbangkan sifat-sifat pengkodean bahasa
C.
6
Latar belakang pemilihan mikrokontroler AT90S8515 dalam Tugas Akhir
(TA) ini adalah karena kemiripan sifatnya dengan AT89C51/52 dalam hal perangkat
keras, kemudahannya diperoleh di pasaran, harganya yang murah, sehingga
terjangkau oleh mahasiswa yang ingin bereksperimen dan juga karena kemampuan
AT90S8515 dalam pemrograman dalam sistem (In System Programming/ ISP) yaitu
pemrograman ketika sistem dijalankan (masih dalam sistem).
Adapun secara lengkapnya mikrokontroler Atmel AT90S8515 ini memiliki
karakteristik sebagai berikut :
1. Arsitektur RISC,
2. 118 instruksi sebagian besar satu siklus instruksi,
3. 32x8 register kerja serbaguna,
4. 8 MIPS (Mega Instructions per Second) pada 8 MHZ
5. Dapat digunakannya bahasa C sebagai bahasa pemrogramannya,
6. Programmable Flash Memory sebesar 8 K Byte (1000 kali siklus hapus/tulis),
7. 512 bytes SRAM,
8. 512 Bytes Programable EEPROM (100.000 siklus hapus/tulis),
9. Pemrograman terkunci untuk program Flash dan keamanan data pada
EEPROM,
10. Jangkauan operasi : 2,7 – 6 Volt,
11. Fully Static Operation : 0 Hz – 8 MHz untuk AT90S8515-8,
12. Dua level Program Memory Lock yaitu flash program dan EEPROM data
security,
13. 32 jalur I/O yang dapat diprogram,
14. Satu Timer/Counter 8 bit dengan sparate prescaler,
15. Satu Timer/Counter 16 bit dengan sparate prescaler,
16. Sumber interupsi (interrupt source) external dan internal,
17. Analog Comparator dalam chip,
18. Pewaktu Watchdog terprogram dengan Osilator dalam chip,
19. Antarmuka serial SPI master/slave,
20. Mode power down dan catu rendah senggang,
21. Kanal pengirim-penerima tak serempak universal (UART-Universal
Asynchronous Receiver-Transmitter) yang dapat diprogram.
7
2.2.1 Susunan Kaki Mikrokontroler AT90S8515
Bentuk kemasan dan susunan kaki-kaki mikrokontroler dari AT90S8515
diperlihatkan seperti pada Gambar 2.1.
Gambar 2.2 Susunan kaki AT90S8515.
Penjelasan dari masing-masing kaki adalah sebagai berikut:
1. VCC (kaki 40) dihubungkan ke Vcc
2. GND (kaki 20) dihubungkan ke ground.
3. PortA (PA7..PA0) (kaki 32-39) merupakan port 8 bit dua arah (bidirectional)
I/O. Port ini berfungsi sebagai port data/alamat I/O ketika menggunakan
SRAM eksternal.
4. Port B (PB7-PB0) (kaki 1-8) merupakan port 8 bit dua arah (bidirectional) I/O,
untuk berbagai keperluan (multi purpose).
5. Port C(PC7..PC0) (kaki 21-28) adalah port 8 bit dua arah I/O, dengan internal
pull-up resistor. Port C ini juga berfungsi sebagai port alamat ketika
menggunakan SRAM eksternal.
6. Port D (PD7...P0)(kaki 10-17) adalah port 8 bit dua arah I/O dengan resistor
pull-up internal. Port D juga dapat berfungsi sebagai terminal khusus.
7. Reset (kaki 9) ketika kondisi rendah rendah yang lebih lama dari 50 nS akan
mereset mikrokontroler walaupun detak tidak berjalan.
8. XTAL1 (kaki 19) masukan bagi penguat osilator terbalik dan masukan bagi
rangkaian operasi detak internal.
8
9. XTAL2 (kaki 18) keluaran dari penguat osilator terbalik.
10. ICP (kaki 31) adalah masukan bagi masukan fungsi Capture Timer/counter1
11. OC1B (kaki 29) adalah kaki keluaran bagi fungsi Output CompareB keluaran
Timer/Counter1.
12. ALE (Address Latch Enable) (kaki 30) digunakan ketika menggunakan
SRAM eksternal. Kaki ini digunakan untuk mengunci 8 bit alamat bawah pada
saat siklus akses pertama, dan berfungsi sebagai port data pada siklus akses
kedua.
2.2.2 Blok Diagram dan Arsitektur AT90S8515
AT90S8515 mempunyai 32 general purpose register (R0..R31) yang
terhubung langsung dengan Arithmetic Logic Unit (ALU) sehingga register dapat
diakses dan dieksekusi hanya dalam waktu satu siklus clock. ALU merupakan tempat
dilakukannya operasi fungsi aritmetik, logika dan operasi bit. R30 disebut juga
sebagai Z-Register, yang digunakan sebagai register penunjuk pada pengalamatan tak
langsung. Didalam ALU terjadi operasi aritmetik dan logika antar register, antara
register dan suatu konstanta, maupun operasi untuk register tunggal (single register).
Berikut arsitekturnya yang ditunjukkan blok diagram pada Gambar 2.2 dibawah ini.
9
Gambar 2.3 Blok diagram Mikrokontroler AT90S8515.
2.2.3 Organisasi Memori
AVR menggunakan arsitektur Harvard sehingga memisahkan memori serta
bus data dengan program. Program ditempatkan Flash Memory sedangkan memori
data terdiri dari 32 buah register serbaguna, 64 register serbaguna, 512 bytes internal
SRAM dan 64 Kbytes SRAM eksternal yang dapat ditambahkan.
10
2.2.3.1 Memori Program
Memori program pada AT90S8515 diperlihatkan pada Gambar 2.3
Gambar 2.4 Memori program.
AT90S8515 mempunyai kapasitas memori program sebesar 8 Kbytes. Karena
semua format instruksi berupa kata (word), Format word yang biasa digunakan adalah
16 atau 32 bit. Pada AT90S8515 ini format memori program yang digunakan adalah
16 bit sehingga format memori program yang digunakan adalah 4Kx16bit. Memori
Flash ini dirancang untuk dapat di hapus dan tulis sebanyak seribu kali. Program
Counter (PC)-nya sepanjang 12 bit sehingga mampu mengakses hingga 4096 alamat
program memori.
Gambar 2.4 memperlihatkan bagian bawah dari memori program. Setelah
reset CPU memulai eksekusi dari lokasi 0000h. Setiap interupsi mempunyai lokasi
tetap dalam memori program. Interupsi menyebabkan CPU melompat ke lokasi
tersebut dimana pada lokasi tersebut terdapat subrutin yang harus dilaksanakan.
11
Gambar 2.5 Bagian bawah memori program.
2.2.3.2 Memori Data
Memori data pada AT90S8515 diperlihatkan pada Gambar 2.5.
Gambar 2.6 Memori Data.
Memori data pada AT90S8515 tersebut terdiri atas memori data internal dan
eksternal. Kapasitas dari SRAM internal adalah sebesar 512 bytes. Ini menempati
ruang alamat setelah 32 lokasi register serbaguna, dan setelah 64 register I/O. Jika
SRAM eksternal digunakan, ia akan mengikuti besar SRAM external sampai dengan
maksimum 64K tergantung ukuran SRAM eksternal.
RE S E T
LO K A S IINTE RUP S I
000H001H002H003H004H005H006H007H008H009H00A H00B H00CH
12
Ketika alamat yang digunakan untuk mengakses melebihi alamat dari ruang
memori internal SRAM, maka SRAM eksternal akan terakses dengan instruksi yang
sama dengan instruksi pada SRAM internal. Jalur pengontrolan SRAM untuk baca
dan tulis masing-masing menggunakan kaki RD dan WR . Ketika masih mengakses
SRAM internal, fungsi RD dan WR tidak akan aktif dan kaki tersebut berfungsi
seperti biasa. Operasi SRAM eksternal dienable oleh seting bit SRE di register
MCUCR.
Mode pengalamatan untuk mengakses memori data meliputi pengalamatan
langsung (Direct Addressing), pengalamatan tak langsung (Indirect Addressing),
Indirect dengan Pre-Decrement, Indirect dengan Post-Decrement, dan Indirect dengan
Displacement.
2.2.3.3 32 Register Serbaguna
Pada 32 bytes general purpose working register atau register umum serbaguna
mendukung adanya konsep register akses cepat. Ini berarti bahwa waktu akses dari
register adalah satu detak dan berarti pula satu operasi ALU (Arithmetics Logic Unit)
dilaksanakan. Agar lebih jelas maka 32 register itu ditunjukkan pada Gambar 2.6.
Gambar 2.7 32 Register Serbaguna.
Semua instruksi operasi register mempunyai akses langsung dan siklus tunggal
terhadap semua register. Perkecualiannya adalah pada perintah SBCI, SUBI, CPI,
13
ANDI dan ORI. Instruksi ini digunakan pada R16 sampai dengan R31. Enam dari 32
register dapat digunakan sebagai tiga penunjuk alamat tak langsung 16 bit untuk
pengalamatan ruang data. Tiga register fungsi tambahan ini disebut register 16 bit
X,Y, dan Z.
Register di atas juga bisa dianggap sebagai alamat memori data. Register X,Y,
dan Z dapat diset sebagai index pada berbagai register. Register X, Y dan Z tersebut
ditunjukkan pada Gambar 2.7.
Gambar 2.8 Register X, Y dan Z.
2.2.3.4 Ruang Memory I/O
Ruang memori I/O pada AT90S8515 berisi 64 alamat untuk fungsi periferal
CPU seperti register kontrol, Timer/Counter, dan fungsi I/O yang lain. Semua I/O
dan periferal AT90S8515 ditempatkan dalam ruang I/O
Tabel 2.1 Ruang I/O AT90S8515.
Alamat dalam hexadesimal
Nama Fungsi
$3F($5F) SREG Status Register
$3E($5E) SPH Stack Ponter high
$3D($5D) SPL Stack Pointer Low
$3B($5B) GIMSK General Interrupt Mask Regsiter
$3A($5A) GIFR General Interrupt Flag Register
$39($59) TIMSK Timer/Counter Interrupt Mask Register
$38($58) TIFR Timer/Counter Flag Mask Register
$35($55) MCUCR MCU General Control Register
14
$33($53) TCCR0 Timer/Counter0 Control Register
$32($52) TCNT0 Timer/Counter0 (8 bit)
$2F($4F) TCCRR1A Timer/Counter1 Control Regster A
$2E($4E) TCCR1B Timer/Counter1 Control Regster B
$2D($4D) TCNT1H Timer/Counter1 High Byte
$2C($4C) TCNT1L Timer/Counter1 Low Byte
$2B($4B) OCR1AH Timer/Counter1 Output Compare Register A High Byte
$2A($4A) OCR1AL Timer/Counter1 Output Compare Register A Low Byte
$29($49) OCR1BH Timer/Counter1 Output Compare Register B High Byte
$28($48) OCR1BL Timer/Counter1 Output Compare Register B Low Byte
$25($45) ICR1H T/C 1 Input Capture Register High Byte
$24($44) ICR1L T/C 1 Input Capture Register Low Byte
$21($41) WDTCR Watchdog Timer Control Register
$1F($3E) EEARH EEPROM Address Register high Byte
$1E($3E) EEARL EEPROM Address Register Low Byte
$1D($3D) EEDR EEPROM Data Register
$1C($3C) EECR EEPROM Control Regsiter
$1B($3B) PORTA Data Register, Port A
$1A($3A) DDRA Data Direction Register, Port A
$19($39) PINA Input PIN, Port A
$18($38) PORT B Data Register, Port B
$17($37) DDRB Data Direction Register, Port B
$16($36) PINB Input PIN, Port B
$15($35) PORTC Data Register, Port C
$14($34) DDRC Data Direction Register, Port C
$13($33) PINC Imput PIN, Port C
$12($32) PORTD Data Register, Port D
$11($31) DDRD Data Direction Register, Port D
$10($30) PIND Input PIN, Port D
$0F($2F) SPDR SPI I/O data Register
$0E($2E) SPSR SPI Status Register
15
$0D($2D) SPCR SPI Control Register
$0C($2C) UDR UART I/O Data register
$0B($2B) USR UART Status register
$0A($2A) UCR UART Control Register
$09($29) UBRR UART Baud Rate Register
$08($28) ACSR Analog Comparator Status Register
2.2.4 Pewaktuan CPU Mikrokontroler AT90S8515 memiliki osilator internal (on chip osilator) yang
dapat digunakan sebagai sumber detak bagi CPU. Untuk menggunakan osilator
internal diperlukan sebuah kristal atau resonator keramik antara kaki Xtal1 dan kaki
Xtal2 dan sebuah kapasitor ke ground seperti terlihat pada Gambar 2.8.
Gambar 2.9 Menggunakan osilator internal.
Bila menggunakan detak eksternal rangkaiannya adalah seperti pada Gambar 2.9.
Gambar 2.10 Menggunakan sumber detak eksternal.
16
2.3 Transistor Sebagai Saklar[8]
Transistor merupakan salah satu komponen aktif yang terbuat dari bahan
semikonduktor dan memiliki tiga buah terminal yaitu: Basis (B), Emitor (E) dan
Kolektor (C). Garis beban dapat digambarkan pada kurva kolektor untuk memberikan
pandangan yang lebih banyak bagaimana transistor bekerja dan di daerah mana
beroperasi. Pada rangkaian dari Gambar 2.10a tegangan sumber VCC membias balik
dioda kolektor melalui RC. Tegangan pada tahanan ini adalah VCC – VCE. Karena itu,
arus yang melaluinya sama dengan
C
CECCC R
VVI ………………......................................................…………….(2.1)
Suatu alternatif untuk mendapatkan ujung atas dari garis beban adalah dengan
membayangkan bahwa terminal kolektor-emitor terhubung singkat dan arus kolektor
besarnya C
CC
RV . Untuk mendapatkan ujung bawah dari garis beban adalah dengan
membayangkan terminal kolektor-emitor terbuka dan tegangan kolektor-emitor yang
dihasilkan adalah VCC.
C
CC
RV
Gambar 2.11 (a) Rangkaian transistor bias basis.
(b) Kurva karakteristik dan garis beban dc transistor.
(b)
(a)
17
Pada Gambar 2.10b terdapat titik dimana garis beban memotong kurva IB = 0,
titik ini disebut sebagai titik sumbat (cut off). Pada titik ini, arus basis nol dan arus
kolektor sangat kecil, sehingga dapat diabaikan (hanya ada arus bocor ICEO). Pada titik
sumbat, dioda emitor tidak lagi dibias maju, dan transistor kehilangan kerja
normalnya. Dan digunakan suatu pendekatan, bahwa tegangan kolektor-emitor sama
dengan ujung bawah dari garis beban :
VCE(cut off) VCC ………………………..................………………(2.2)
Perpotongan dari garis beban dan kurva IB = IB(sat) disebut titik saturasi. Pada
titik ini, arus basis sama dengan IB(sat) dan arus kolektor adalah maksimum. Pada
saturasi, dioda kolektor tidak lagi dibias balik, dan transistor kehilangan kerja
normalnya. Digunakan suatu pendekatan, arus kolektor pada saturasi sama dengan
ujung atas dari garis beban:
IC(sat) C
CC
RV
…………………………....................………………(2.3)
Cara yang termudah menggunakan sebuah transistor adalah sebagai saklar,
artinya mengoperasikan transistor pada salah satu dari saturasi atau titik sumbat dan
tidak di tempat-tempat sepanjang garis beban dc. Jika sebuah transistor berada dalam
keadaan saturasi, transistor tersebut seperti sebuah saklar yang tertutup dari kolektor
ke emitor. Jika transistor tersumbat (cut off), transistor seperti sebuah saklar yang
terbuka.
IBRB + VBE – VBB = 0 …………….……............…………………(2.4)
IB = B
BEBB
RVV …………………..………………............………..(2.5)
Jika arus basis lebih besar atau sama dengan IB(sat), titik kerja Q berada pada
ujung atas dari garis beban seperti pada gambar 2.2b. Dalam hal ini, transistor
kelihatan seperti sebuah saklar yang tertutup. Sebaliknya, jika arus basis nol,
transistor bekerja pada ujung bawah dari garis beban, dan transistor kelihatan seperti
sebuah saklar yang terbuka.
18
2.4 Infrared
Sensor berguna untuk mendeteksi suatu keadaan tertentu. Sensor yang
digunakan di sini menggunakan prinsip kerja dari photodioda. Photodioda dapat
berfungsi sebagai sakelar dengan memanfaatkan infrared yang mengenainya.Terdapat
dua bagian penting dari sensor infrared ini yaitu bagian pemancar dan bagian
penerima dari infrared.
Pemancar infrared merupakan komponen yang dapat memancarkan infrared.
Infrared dapat digunakan baik untuk memancarkan data maupun sinyal suara.
Keduanya membutuhkan sinyal carrier untuk membawa sinyal data maupun sinyal
suara tersebut hingga sampai pada penerima. LED infrared dapat digunakan sebagai
komponen pemancar.
Penerima infrared merupakan komponen yang dapat menerima infrared.
Komponen ini peka terhadap cahaya dan berupa dioda (photodioda) atau transistor
(phototransistor).
Sebuah photodioda biasanya dikemas dengan plastik transparan yang juga
berfungsi sebagai lensa fresnel. Lensa ini merupakan lensa cembung yang
mempunyai sifat mengumpulkan cahaya. Lensa tersebut juga merupakan filter
cahaya, lebih dikenal sebagai ‘optical filter’, yang hanya melewatkan cahaya infrared
saja.
Pada pembuatan komponen yang dikhususkan untuk penerima infrared,
lubang untuk menerima cahaya (window) sudah dibuat khusus sehingga dapat
mengurangi interferensi dari cahaya non-infrared. Oleh sebab itu sensor infrared
yang baik biasanya jendelanya (pelapis yang terbuat dari silikon) berwarna biru tua
keungu-unguan. Sensor ini biasanya digunakan untuk aplikasi infrared yang
digunakan diluar rumah (outdoor).
Komponen ini akan merubah energi cahaya, dalam hal ini energi cahaya
infrared, menjadi pulsa-pulsa sinyal listrik. Komponen ini harus mampu
mengumpulkan sinyal infrared sebanyak mungkin sehingga pulsa-pulsa sinyal listrik
yang dihasilkan kualitasnya cukup baik.
Semakin besar intensitas infrared yang diterima maka sinyal pulsa listrik
yang dihasilkan akan baik jika sinyal infrared yang diterima intensitasnya lemah
maka infrared tersebut harus mempunyai pengumpul cahaya (light collector) yang
cukup baik dan sinyal pulsa yang dihasilkan oleh sensor infrared ini harus dikuatkan.
19
Pada prakteknya sinyal infrared yang diterima intensitasnya sangat kecil sehingga
perlu dikuatkan.
LED infrared dengan detektornya memang sangat banyak gunanya terutama
untuk alat-alat kontrol di beberapa tempat tanpa mengganggu dan terganggu oleh
sinar tampak. Misalnya saja dalam remote control untuk mematikan atau
menghidupkan Televisi, CD, DVD bahkan Air Conditioning menggunakan
gelombang infrared. Ternyata temperatur yang kita rasakan ada juga hubungannya
dengan gelombang infrared. Adapun penggunaan infrared antara lain sebagai berikut:
teropong malam, mouse komputer.
Seperti halnya sifat cahaya, infrared dapat dipantulkan. Intensitas sinar pantul
infrared bergantung pada permukaan pemantul, untuk permukaan pemantul putih
akan memantulkan sempurna, sedangkan untuk permukaan pemantul hitam tidak
memantulkan sama sekali.
2.5 Motor DC[14]
Motor merupakan suatu alat yang merubah energi listrik menjadi energi
mekanik (putaran). Motor bekerja berdasarkan prinsip induksi elektromagnetik. Pada
Gambar 2.11a lilitan kawat a-b berada dalam medan magnet, lilitan kawat ini dapat
berputar dengan bebas. Lilitan ini disebut jangkar atau armatur. Pada jangkar dialiri
arus listrik yang berasal dari sumber arus (E).
(a) (b)
Gambar 2.12 (a) Dasar konstruksi motor DC.
(b) Penghantar beraliran listrik dalam medan magnet mendapat gaya tolak.
Motor DC dalam pengoperasiannya menggunakan catu daya DC. Prinsip kerja
dari motor DC yaitu arus listrik searah dialirkan melalui suatu penghantar berupa
kumparan. Kumparan tersebut diletakkan pada suatu medan magnet tetap, seperti
20
terlihat pada Gambar 2.11b. Pada tiap – tiap sisi kumparan tersebut akan timbul gaya,
karena arah gaya pada tiap – tiap sisi kumparan berlawanan arah maka kumparan
akan berputar pada porosnya. Besarnya gaya yang ditimbulkan adalah:
F = BIl ..................................................................................................................(2. 6)
Arah gaya ditentukan oleh aturan tangan kiri, dengan jempol, telunjuk, dan jari
tengah yang saling tegak lurus menunjukan masing – masing arah, F, B, dan I, l
pada rumus 2.6 adalah panjang kumparan.
2.6 Sistem Kontrol On-Off[9]
Pada sistem kontrol on-off, elemen pembangkit hanya memiliki dua posisi
tertentu yaitu on dan off. Kontrol on-off memiliki karakteristik sinyal keluaran dari
kontroler u(t) tetap pada salah satu nilai maksimum atau minimum tergatung dari
sinyal pembangkit kesalahan positif atau negatif. Diagram blok kontroler on-off yang
memiliki masukan e(t) dan keluaran u(t), ditunjukkan pada Gambar 2.12.
U1
U2
e(t) u(t)
Gambar 2.13 Diagram blok kontroler on-off.
Aksi kontrol on-off ditunjukkan pada persamaan di bawah ini.
0)(,0)(,
21
)(tete
UU
tu .................................................................. (2.7)
Pada persamaan (2.7) U1 dan U2 adalah konstanta. Nilai minimum U2 dapat
sebesar nol atau –U1. Pada sistem kontrol ikal tertutup (close loop), sinyal e(t)
merupakan sinyal kesalahan (error) dari selisih antara sinyal input dengan sinyal
umpan balik.
21
2.7 Perangkat Lunak (Software)
Perangkat lunak adalah bagian dari sistem komputer yang berfungsi untuk
mendukung perangkat keras (hardware). Perangkat lunak yang digunakan dalam
Tugas Akhir ini merupakan bahasa pemrograman yang terdiri dari :
a. Bahasa C
Bahasa ini digunakan untuk mengatur kerja dari Mikrokontroler AT90S8515,
yaitu menerima/mengirim data input.
b. CVAVR
Sebagai pemrogram mikrokontroler dengan bahasa pemrograman C untuk
mengatur kerja dari AT90S8515.
48
BAB III
PERANCANGAN HARDWARE & SOFTWARE
3.1 Blok Sistem
Lengan robot penyeleksi dan pemindah barang yang dikendalikan oleh
komputer ini diharapkan mampu bekerja sebagai penyeleksi dan pemindah barang
berdasarkan ukuran tinggi barang. Diagram blok sistem lengan robot penyeleksi dan
pemindah barang berbasis AT90S8515 terlihat pada Gambar 3.1.
Gambar 3.1 Diagram blok sistem.
Serangkaian keadaan on dan off dari pin-pin penghubung yang membentuk
kode biner pada port AT90S8515 digunakan sebagai pengontrol dalam menjalankan
motor dc dan pembacaan sensor infrared dan limit switch.
Fungsi masing-masing blok dalam diagram blok :
1. Komputer
Berfungsi sebagai pusat pemroses sinyal digital untuk menjalankan program
aplikasi C dengan memberikan tampilan pada lcd sebagai indikator dan
pengoperasian alat. Program dibuat pada komputer dan setelah program di
download kedalam AT90S8515 maka komputer tidak perlu dipakai lagi.
23
2. Downloader AT90S8515
Digunakan sebagai antarmuka paralel dari komputer yang mengeluarkan data
biner ke AT90S8515.
3. Penggerak motor dc satu arah
Digunakan untuk menggerakkan motor dc yang berputar satu arah, yaitu : motor
konveyor penyedia, motor konveyor penerima tinggi dan rendah.
4. Penggerak motor dc dua arah
Digunakan untuk menggerakkan motor dc yang berputar dua arah, yaitu: motor
putar kekanan dan kekiri.
5. Sensor infrared
Digunakan untuk mendeteksi ada atau tidaknya barang serta penentuan jenis
barang apakah termasuk ukuran tinggi atau rendah.
6. Sensor batas
Digunakan untuk mendeteksi gerak lengan robot apakah sudah mencapai batas sisi
kiri, sisi tengah atau sisi kanan ataupun batas atas. Sensor yang digunakan adalah
limit switch.
3.2 Perancangan Perangkat Keras
3.2.1 Perancangan Rangkaian Mikrokontroler AT90S8515
Mikrokontroler AT90S8515 yang digunakan sebagai pengatur operasional alat
dan tampilan pada layar lcd ini menyediakan sebanyak 40 port yang masing – masing
dapat digunakan sesuai dengan fungsinya. AT90S8515 ini mempunyai kapasitas
memori program sebesar 8 Kbytes dengan semua format instruksi berupa kata (word).
Format word yang biasa digunakan adalah 16 atau 32 bit. Pada AT90S8515 ini format
memori program yang digunakan adalah 16 bit sehingga format memori program
yang digunakan adalah 4Kx16bit. Memori Flash ini dirancang untuk dapat di hapus
dan tulis sebanyak seribu kali. Program Counter (PC)-nya sepanjang 12 bit sehingga
mampu mengakses hingga 4096 alamat program memori.
Mikrokontroler ini dirancang sebagai single chip (Gambar 3.2), sehingga
dalam perancangannya cukup dibutuhkan rangkaian pembangkit clock (crystal dan
kapasitor), rangkaian power supply. Mikrokontroler diberi oscilator kristal eksternal
sebagai pembangkit frekuensi internal.
24
Gambars 3.2 Rangkaian Pengontrol Mikrokontroler AT90S8515.
Pada rangkaian minimum diatas oscillator Kristal yang digunakan sebesar 8
Mhz. Masukan catu daya untuk menjalankan rangkaian sistem minimum AT90S8515
adalah sebesar 5 Volt yang terdapat pada pin 40. Sedangkan untuk ground terletak
pada kaki ke 19. Terdapat 4 buah port yaitu port A, port B, port C dan port D yang
akan digunakan pada tugas akhir ini. Pada port A semua pin yang ada digunakan
khusu untuk alokasi dari LCD. Penjelasan selanjutnya secara detail dari fungsi masing
– masing port adalah pada Tabel 3.1 yang merupakan tabel dari penggunaan port-port
pada rangkaian AT 90S8515 dalam tugas akhir ini sebagai berikut :
Tabel 3.1 Penggunaan port-port pada AT90S8515.
NO PORT/PIN FUNGSI INPUT FUNGSI OUTPUT
1 PA0-PA7 - Output LCD
2 PINB.0 Input sensor pendeteksian barang pada konveyer penyedia
-
3 PINB.1 Input sensor rendah pada konveyer penyedia barang
-
4 PINB.2 Input sensor tinggi pada konveyer penyedia barang
-
5 PINB.3 Input sensor pada konveyer penerima barang rendah
-
6 PINB.4 Input sensor pada konveyer penerima barang tinggi
-
7 PINB.5 Input sensor batas pada sisi kiri (barang rendah)
-
5V
25
8 PINB.6 Input sensor batas pada sisi tengah (barang rendah/tinggi)
-
9 PINB.7 Input sensor batas pada sisi kanan (barang tinggi)
-
10 PIND.0 Input sensor delay barang pada konveyor kiri (barang rendah)
11 PIND.1 Input sensor delay barang pada konveyor kanan (barang tinggi) -
12 PIND.2 Input sensor pada magnetic clutch -
13 PORTD.3 - Output motor dc bawah untuk penentuan arah
14 PORTD.4 - Output motor dc bawah untuk on/off gerakan
15 PORTC.0 - Output motor dc turun-naik untuk penentuan arah
16 PORTC.1 - Output motor dc turun-naik untuk on/off gerakan
17 PINC.2 Input sensor batas atas pada lenagan robot
-
18 PORTC.4 - Output motor dc pada konveyer penerima kiri (berjenis rendah)
20 PORTC.5 - Output motor dc pada konveyer penyedia tengah
21 PORTC.6 - Output motor dc pada konveyer penerima kanan (berjenis tinggi)
22 PORTC.7 - Output magnetic clutch pada lengan robot
Rangkaian mikrokontroler AT90S8515 ini menggunakan oscilator kristal
eksternal sebagai pembangkit frekuensi internal (on chip osilator) sebesar 8 MHz
yang dapat digunakan sebagai sumber detak bagi CPU. Untuk menggunakan osilator
internal diperlukan sebuah kristal atau resonator keramik antara kaki Xtal1 dan kaki
Xtal2 dan sebuah kapasitor ke ground. Pada port A pin 0-7 diperuntukkan untuk
tampilan LCD. Port B pin 0-7, Port C pin 2 dan Port D pin 0-2 mikrokontroler
AT90S8515 digunakan untuk sensor – sensor sebagai input dari mikrokontroler AT
90S8515 yang terdiri dari sensor infrared dan sensor batas (limit switch). Port C pin
0-1, Port C pin 3-7 dan Port D pin 3-4 digunakan untuk output yang berupa
penggerak dari motor dc gerak turun-naik dan kiri-kanan serta penggerak motor DC
pada konveyor yang terdiri dari 2 konveyor penerima dan 1 konveyor penyedia
barang.
26
3.2.2 Perancangan Rangkaian Penggerak Motor DC Satu Arah
Rangkaian penggerak motor dc satu arah digunakan untuk mengendalikan
motor konveyor penyedia dan konveyor penerima. Masukan dari rangkaian penggerak
motor dc satu arah ini adalah Mikrokontroler AT90S8515. Tegangan masukan ini
akan memberikan arus yang cukup untuk membuat transistor saturasi dan
mengaktifkan relai.
1N4002
12V
LOAD
12
+ 100uF RELAY SPDT
BD 139
4K7
PORTC.4
PORTC.5
PORTC.6
Gambar 3.3 Rangkaian penggerak motor dc satu arah.
Rangkaian penggerak motor ini berfungsi untuk menghubungkan dan
memutuskan motor dengan sumber tegangannya melalui sebuah relai. Rangkaian
penggerak motor dc yang digunakan untuk menggerakkan konveyor ini ditunjukkan
seperti pada Gambar 3.3. Dioda berfungsi untuk melindungi transistor dari tegangan
induksi yang timbul pada koil relai saat relai bergerak ke off, yaitu dengan
menghubung singkat tegangan induksi yang timbul. Pergerakan on dan off dari relai
inilah yang mengatur hidup dan matinya motor dc.
Tabel logika untuk motor dc satu arah adalah sebagai berikut: Tabel 3.2 Logika untuk motor dc satu arah.
Nama Port Keluaran Motor dc PORTC.4 0 Mati (off) PORTC.4 1 Hidup (on) PORTC.5 0 Mati (off) PORTC.5 1 Hidup (on) PORTC.6 0 Mati (off) PORTC.6 1 Hidup (on)
27
3.2.3 Perancangan Rangkaian Penggerak Motor DC Dua Arah
Untuk mengendalikan motor dua arah (motor naik-turun, motor putar kanan-
kiri) maka digunakan rangkaian penggerak motor dc dua arah. Gambar 3.4
menunjukkan rangkaian penggerak motor dc dua arah.
Rangkaian ini membutuhkan dua masukan dari ATMEL 90S8515, masukan
pertama sebagai pengatur hidup mati motor (on/off). Sedangkan yang ke dua sebagai
pengatur arah putaran motor. Tegangan masukan ini akan memberikan arus yang
cukup untuk membuat transistor saturasi dan mengaktifkan relai.
PORTC.1
PORTD.3
PORTD.4
PORTC.0
Gambar 3.4 Rangkaian penggerak motor dc dua arah.
1
2
28
Tabel logika untuk motor dc dua arah naik – turun adalah sebagai berikut : Tabel 3.3 Logika untuk motor dc dua arah naik - turun. PORTC.0 (sebagai arah) PORTC.1 (sebagai on/off) Motor dc
0 1 Turun 0 0 Off 1 1 Naik 1 0 Off
Tabel logika untuk motor dc dua arah kanan – kiri adalah sebagai berikut :
Tabel 3.4 Logika untuk motor dc dua arah kanan - kiri. PORTD.4 (sebagai arah) PORTD.3 (sebagai on/off) Motor dc
0 1 Kiri 0 0 Off 1 1 Kanan 1 0 Off
3.2.4 Perancangan Rangkaian Sensor Infrared
Sensor berguna untuk mendeteksi suatu keadaan tertentu. Sensor yang
digunakan di sini menggunakan prinsip kerja dari photodioda. Photodioda dapat
berfungsi sebagai sakelar dengan memanfaatkan infrared yang mengenainya.
Pemancar Infrared
Pemancar infrared merupakan komponen yang dapat memancarkan infrared.
Infrared dapat digunakan baik untuk memancarkan data maupun sinyal suara.
Keduanya membutuhkan sinyal carrier untuk membawa sinyal data maupun sinyal
suara tersebut hingga sampai pada penerima. LED infrared dapat digunakan sebagai
komponen pemancar.
Penerima Infrared
Penerima infrared merupakan komponen yang dapat menerima infrared.
Komponen ini peka terhadap cahaya dan berupa dioda (photodioda) atau transistor
(phototransistor).
Sebuah photodioda biasanya dikemas dengan plastik transparan yang juga
berfungsi sebagai lensa fresnel. Lensa ini merupakan lensa cembung yang
mempunyai sifat mengumpulkan cahaya. Lensa tersebut juga merupakan filter
cahaya, lebih dikenal sebagai ‘optical filter’, yang hanya melewatkan cahaya infrared
saja.
29
Pada pembuatan komponen yang dikhususkan untuk penerima infrared,
lubang untuk menerima cahaya (window) sudah dibuat khusus sehingga dapat
mengurangi interferensi dari cahaya non-infrared. Oleh sebab itu sensor infrared
yang baik biasanya jendelanya (pelapis yang terbuat dari silikon) berwarna biru tua
keungu-unguan. Sensor ini biasanya digunakan untuk aplikasi infrared yang
digunakan diluar rumah (outdoor).
Komponen ini akan merubah energi cahaya, dalam hal ini energi cahaya
infrared, menjadi pulsa-pulsa sinyal listrik. Komponen ini harus mampu
mengumpulkan sinyal infrared sebanyak mungkin sehingga pulsa-pulsa sinyal listrik
yang dihasilkan kualitasnya cukup baik.
Semakin besar intensitas infrared yang diterima maka sinyal pulsa listrik
yang dihasilkan akan baik jika sinyal infrared yang diterima intensitasnya lemah
maka infrared tersebut harus mempunyai pengumpul cahaya (light collector) yang
cukup baik dan sinyal pulsa yang dihasilkan oleh sensor infrared ini harus dikuatkan.
Pada prakteknya sinyal infrared yang diterima intensitasnya sangat kecil sehingga
perlu dikuatkan.
LED infrared dengan detektornya memang sangat banyak gunanya terutama
untuk alat-alat kontrol di beberapa tempat tanpa mengganggu dan terganggu oleh
sinar tampak. Misalnya saja dalam remote control untuk mematikan atau
menghidupkan Televisi, CD, DVD bahkan Air Conditioning menggunakan
gelombang infrared. Ternyata temperatur yang kita rasakan ada juga hubungannya
dengan gelombang infrared. Adapun penggunaan infrared antara lain sebagai berikut:
teropong malam, mouse komputer.
Seperti halnya sifat cahaya, infrared dapat dipantulkan. Intensitas sinar pantul
infrared bergantung pada permukaan pemantul, untuk permukaan pemantul putih
akan memantulkan sempurna, sedangkan untuk permukaan pemantul hitam tidak
memantulkan sama sekali.
Pemancar dan penerima infrared inilah yang digunakan sebagai indera untuk
mendeteksi keadaan tertentu, seperti sebagai sensor dimensi dan sebagainya.
Rangkaian sensor (pemancar dan penerima) yang digunakan seperti terlihat pada
Gambar 3.5.
30
Vcc +6V
-
+
1/4 LM324
1K10K
2K2
INFRALED
PHOTODIODA
BC547
10K 3V9
10
LED
Ke pin AT90S8515
Gambar 3.5 Rangkaian Pemancar dan Penerima infrared.
Dari Gambar 3.5, pada saat photodioda (RX) mendapat cahaya infrared dari
TX infrared, maka photodioda akan dalam keadaan saturasi (jenuh) demikian pula
dengan transistor BC547, sehingga kolektor secara ideal ditanahkan, dan pada
datasheet, VCE(Sat) sekitar 50 mV, maka tegangan pada masukan tak membalik lebih
kecil dari tegangan pada masukan membalik dan output dari Op-Amp sama dengan 0
Volt. Saat photodioda tidak mendapat sinar dari LED infrared maka photodioda mati
(cutoff), demikian pula transistor BC547, sehingga kolektor ter-pull up oleh Vcc,
maka tegangan pada masukan tak membalik lebih tinggi dari tegangan pada masukan
membalik dan tegangan output Op-Amp mendekati Vcc (6 V). Setelah dibatasi oleh
dioda Zener maka akan turun menjadi 3,9 Volt. Tegangan ini mampu dikenali sebagai
logika 1 pada rangkaian AT90S8515 melalui pin-pin masukan. Sedangkan LED yang
terpasang seri dengan resistor 10Ω pada keluaran Op-Amp hanya sebagai indikator
apakah keluaran Op-Amp berlogika 1 (LED nyala) atau 0 (LED padam).
Tabel logika untuk sensor infrared ini adalah sebagai berikut:
Tabel 3.5 Logika untuk sensor infrared. Sensor Infrared Logika
Terhalang 1 Tidak terhalang 0
3.2.5 Perancangan Rangkaian Sensor Limit Switch sebagai Sensor Batas
Sensor yang digunakan pada alat ini adalah limit switch push off / normally
closed (terputus jika ditekan). Prinsip kerja dari sensor ini adalah sebagai berikut;
saat saklar dalam kondisi tertutup (belum ditekan) keluaran rangkaian terhubung
langsung dengan ground dan akan diproses oleh PC dalam logika rendah. Saat saklar
31
tertekan akan membuat saklar terbuka dan keluaran rangkaian mendekati +5V yang
berarti dalam logika tinggi. Pada saat penekanan saklar akan timbul getaran mekanis
yang disebut efek bouncing sehingga timbul tegangan tak stabil pada keluaran. Untuk
menstabilkan tegangan tersebut dipasang kapasitor sebagai peredam (debouncing).
Resistor digunakan sebagai pembatas arus.
Ke Mikrokontroler
+ 5V
R10k
Limit Switch10 F
Gambar 3.6 Rangkaian sensor limit switch.
Limit switch ini digunakan untuk membatasi posisi lengan robot saat bergerak
kekanan, kekiri maupun ketengah serta batas atas posisi lengan robot pada saat naik.
Tabel logika untuk sensor limit switch ini adalah sebagai berikut : Tabel 3.6 Logika untuk sensor limit switch.
Sensor Limit Switch Logika Open (terbuka) 1 Close (tertutup) 0
3.3 Perancangan Perangkat Lunak
Pada Tugas Akhir ini bahasa pemrograman yang digunakan adalah bahasa C
yang sesuai dengan standar ANSI. Perancangan perangkat lunak pada mikrokontroler
ini mempunyai beberapa bagian dimana masing-masing bagian akan dijelaskan
sebagai berikut :
3.3.1 Deklarasi Variabel, Fungsi, dan File Judul (Header File) Program
Pada bagian ini berisi pendeklarasian fungsi, file judul (Header) dan juga definisi
tipe variabel yang digunakan dalam pemrograman. Berikut ini alur programnya : 1. #include <stdio.h>
2. #include <90s8515.h>
3. #include <delay.h>
32
4. #asm
5. .equ __lcd_port=0x1B
6. #endasm
7. #include <lcd.h>
8. void fungsi_rendah(void);
9. void fungsi_tinggi(void);
Pada pendeklarasian #include <90s8515.h> berfungsi untuk memanggil header
file 90s8515.h. Header file atau dengan nama lain file judul adalah suatu file yang
didalamnya berisi deklarasi fungsi dan definisi konstanta. Header file ini mempunyai
ciri-ciri khusus yaitu pada akhir nama filenya diakhiri dengan extensi .h. Pada
CodeVisionAVR versi 1.23.8c terdapat berbagai header file untuk keperluan
pemrograman AVR. Pengarah #include merupakan suatu jenis pengarah yang
digunakan untuk membaca suatu header file.
Pada pendeklarasian #asm adalah suatu awal dari pengarah program assembly
yang berfungsi untuk mengikut sertakan bahasa assembly dalam program C. Baris 4
- 6 berfungsi memberitahukan bahwa PORTA digunakan untuk tampilan LCD.
Setelah menginisialisasi PORT yang digunakan untuk LCD maka header file lcd.h
dipanggil. Baris 8-9 merupakan pendeklarasi awal fungsi.
3.3.2 Program Utama
Bagian ini merupakan bagian utama dimana compiler akan melakukan
inisialisasi. Seperti pada Bahasa C yang biasa digunakan, fungsi void main (void)
merupakan fungsi istimewa. Hal ini karena fungsi ini merupakan titik awal dan titik
akhir eksekusi program. Tanda { diawal fungsi merupakan awal tubuh fungsi.dan
sekaligus awal eksekusi program. Tanda } merupakan akhir tubuh fungsi dan juga
akhir dari eksekusi program. Diagram alir (flowchart) program utama ditunjukkan
pada Gambar 3.7.
33
Gambar 3.7 Diagram alir program utama.
34
Berikut ini program utamanya :
10. void main(void)
{
11. DDRB=0x00;
12. DDRC=0b11111011;
13. DDRD=0b11111000;
14. lcd_init(16);
15. lcd_gotoxy(0,0);
16. lcd_putsf(" TUGAS AKHIR ");
17. lcd_gotoxy(0,1);
18. lcd_putsf("ANDES INDRAYANTO");
19. delay_ms(2000);
20. while (1)
{
12. lcd_gotoxy(0,0);
13. lcd_putsf("SILAHKAN LETAKAN");
14. lcd_gotoxy(0,1);
15. lcd_putsf(" BARANG ");
16. delay_ms(500);
17. if (PINB.0==1)
{
18. lcd_gotoxy(0,0);
19. lcd_putsf(" ADA BARANG ");
20. lcd_gotoxy(0,1);
21. lcd_putsf(" PROSES DIMULAI ");
22. delay_ms(100);
23. while (PINB.2==0)
{
24. PORTC.5=1;
25. delay_ms(100);
}
26. PORTC.5=0;
27. if (PINB.1==1)
{
28. lcd_gotoxy(0,0);
29. lcd_putsf(" TINGGI BARANG ");
30. lcd_gotoxy(0,1);
35
31. lcd_putsf(" TINGGI ");
32. delay_ms(1000);
33. fungsi_tinggi();
}
34. else
{
35. lcd_gotoxy(0,0);
36. lcd_putsf(" TINGGI BARANG ");
37. lcd_gotoxy(0,1);
38. lcd_putsf(" RENDAH ");
39. delay_ms(1000);
40. fungsi_rendah();
}
41. delay_ms(1000);
}
42. else
{
;
}
}
}
Perintah DDRB=0x00; adalah perintah agar PORTB Semuanya sebagai input.
DDRC=0b11111011; menandakan PORTC.2 sebagai input, Selain itu sebagai output
dimana tanda b adalah sebagai bilangan biner. DDRD=0b11111000; menandakan
bahwa PORTD.0, PORTD.1, PORTD.2 sebagai input, Selain itu sebagai output.
Setelah itu program utama ini akan menginisialisasi LCD yang ditempatkan
pada port A agar pada saat mulai dijalankan muncul tampilan pada LCD berupa
“TUGAS AKHIR ANDES INDRAYANTO”. Kemudian proses selanjutnya akan
dimulai setelah mengalami tundaan 2000 ms. Pada bagian sebelum ini, program telah
mengikutkan file header yang bernama lcd.h. Setelah itu LCD akan menampilkan
tulisan “SILAHKAN LETAKAN BARANG” dengan tundaan sebesar 500 ms. Pada
baris 17 merupakan suatu syarat kondisi dimana ketika ada suatu input yaitu
IF (PINB.0==1) maka LCD akan menampilkan “ADA BARANG PROSES
DIMULAI”. Pada saat kondisi PINB.2=0 maka motor pada konveyor penyedia akan
hidup seperti pada baris 24. Jadi apabila PINB.2=1 maka akan membuat motor
36
konveyor penyedia mati. Selanjutnya pendeteksian barang dilakukan pada baris 27
– 41. Pada baris ke 27 dimana PINB.1=1 maka pada LCD akan ditampilkan
“TINGGI BARANG TINGGI”. Kemudian setelah terdeteksi jenis barang tinggi maka
akan memanggil fungsi tinggi seperti pada baris 33. Pada kondisi yang lain yaitu
PINB.1=0 maka LCD akan menampilkan ”TINGGI BARANG RENDAH”.
Kemudian setelah barang terdeteksi rendah maka akan dipanggil fungsi rendah seperti
pada baris 40.
3.3.3 Fungsi Untuk Barang Jenis Rendah
Gambar 3.8 Diagram alir proses penyeleksian dan pemindahan barang rendah.
Bagian ini merupakan bagian program dimana setelah terjadi proses
pendeteksian barang rendah yang telah dibahas pada bagian sebelumnya kemudian
akan diproses sesuai dengan masukan dan keluaran sampai akhirnya kembali lagi
37
pada posisi awal. Berikut diagram alir (flowchart) program fungsi untuk jenis barang
rendah yang ditunjukkan oleh Gambar 3.8.
Berikut ini program untuk fungsi barang jenis rendah:
43. void fungsi_rendah(void)
{
44. while (PIND.2==0)
{
45. lcd_gotoxy(0,0);
46. lcd_putsf(" LENGAN ROBOT ");
47. lcd_gotoxy(0,1);
48. lcd_putsf(" TURUN ");
49. delay_ms(300);
50. PORTC.0=0;
51. delay_ms(100);
52. PORTC.1=1;
}
53. PORTC.1=0;
54. lcd_gotoxy(0,0);
55. lcd_putsf(" BARANG DIAMBIL ");
56. lcd_gotoxy(0,1);
57. lcd_putsf(" LENGAN ROBOT ");
58. delay_ms(1000);
59. PORTC.7=1;
60. while (PINC.2==1)
{
61. lcd_gotoxy(0,0);
62. lcd_putsf(" LENGAN ROBOT ");
63. lcd_gotoxy(0,1);
64. lcd_putsf(" NAIK ");
65. delay_ms(300);
66. PORTC.0=1;
67. delay_ms(100);
68. PORTC.1=1;
38
}
69. delay_ms(100);
70. PORTC.1=0;
71. while (PINB.5==1)
{
72. lcd_gotoxy(0,0);
73. lcd_putsf(" LENGAN ROBOT ");
74. lcd_gotoxy(0,1);
75. lcd_putsf(" KEKIRI ");
76. delay_ms(100);
77. PORTD.4=0;
78. delay_ms(100);
79. PORTD.3=1;
}
80. delay_ms(150);
81. PORTD.3=0;
82. while (PINB.3==0)
{
83. lcd_putsf(" LENGAN ROBOT ");
84. lcd_gotoxy(0,1);
85. lcd_putsf(" TURUN ");
86. delay_ms(300);
87. PORTC.0=0;
88. delay_ms(100);
89. PORTC.1=1;
}
90. PORTC.1=0;
91. lcd_gotoxy(0,0);
92. lcd_putsf(" BARANG DILEPAS ");
93. lcd_gotoxy(0,1);
94. lcd_putsf(" LENGAN ROBOT ");
95. delay_ms(1500);
96. PORTC.7=0;
39
97. while (PINC.2==1)
{
98. lcd_putsf(" LENGAN ROBOT ");
99. lcd_gotoxy(0,1);
100. lcd_putsf(" NAIK ");
101. delay_ms(300);
102. PORTC.0=1;
103. delay_ms(100);
104. PORTC.1=1;
}
105. delay_ms(100);
106. PORTC.1=0;
107. while (PINB.6==1)
{
108. lcd_putsf(" LENGAN ROBOT ");
109. lcd_gotoxy(0,1);
110. lcd_putsf(" KETENGAH ");
111. delay_ms(100);
112. PORTD.4=1;
113. delay_ms(100);
114. PORTD.3=1;
}
115. delay_ms(0);
116. PORTD.3=0;
117. while (PIND.0==0)
{
118. PORTC.4=1;
}
119. delay_ms(2000);
120. PORTC.4=0;
121. lcd_putsf(" BARANG TELAH ");
122. lcd_gotoxy(0,1);
123. lcd_putsf(" SIAP ");
124. delay_ms(1500);
}
40
Setelah terdeteksi barang adalah jenis rendah maka langkah selanjutnya adalah
mengecek apakah sensor yang terdapat pada magnetic clutch (PIND.2) terhalang atau
tidak seperti terdapat pada baris 44. LCD akan menampilkan tulisan”LENGAN
ROBOT TURUN” seperti pada baris 45 - 49. Apabila kondisi PIND.2==0 atau tidak
terhalang maka PORTC.0 sebagai arah untuk motor dc akan turun (PORTC.0=0)dan
PORTC.1 sebagai penentu on/off motor dc akan hidup (PORTC.1=1) seperti pada
baris 50 dan 52. Proses ini akan terus berlanjut sampai kondisi dimana PIND.2
terhalang. Apabila PIND.2==1 maka gerak turun motor dc akan berhenti seperti pada
baris 53. LCD akan menampilkan pesan “BARANG DIAMBIL LENGAN ROBOT”
seperti pada baris 54 – 58. Setelah itu PORTC.7 sebagai keluaran dari magnetic clutch
akan hidup sehingga menimbulkan gaya magnetik yang akan menempelkan barang
seperti pada baris 59. Kondisi selanjutnya adalah pengecekan terhadap sensor letak
lengan yaitu PINC.2 dimana diberi kondisi awal PINC.2==1 yaitu posisi dimana limit
switch dalam posisi terbuka (open) seperti pada baris 60. Apabila memang bernilai 1
maka LCD akan menampilkan “LENGAN ROBOT NAIK” Seperti pada baris 61 –
65. Selanjutnya setelah mengalami penundaan 300ms maka motor dc akan naik sesuai
dengan perintah pada baris 66 - 68. Ketika PINC.2 sudah bernilai 0 yaitu pada saat
tertekan maka perintah selanjutnya adalah mematikan gerak naik dari motor dc yaitu
pada baris 70. Kondisi selanjutnya adalah pengecekan terhadap limit switch kiri yaitu
PINB.5 dimana kondisi awalnya adalah PINB.5==1 yang berarti dalam keadaan
terbuka seperti pada baris 71. Apabila bernilai 1 maka LCD akan
menampilkan”LENGAN ROBOT KEKIRI” seperti pada baris 72 – 76. Selanjutnya
setelah ada tundaan 100 ms maka motor dc akan bergerak kekiri seperti pada baris 77
– 79. Apabila kondisi telah bernilai 0 maka motor dc akan mati seperti pada baris 81
yaitu PORTD.3=0. Kondisi selanjutnya adalah pengecekan pada sensor infrared pada
sisi penerima jenis rendah yaitu PINB.3 dimana kondisi awalnya adalah 0 yaitu tidak
terhalang seperti pada baris 82. Apabila kondisi terpenuhi maka LCD menampilkan
“LENGAN ROBOT TURUN”. Kemudian setelah ada tundaan 300ms maka motor dc
akan bergerak turun seperti pada baris 87 – 89. Setelah kondisi PINB.3 bernilai 1
yaitu pada saat terhalang maka gerak turun motor dc terhenti yaitu pada perintah
PORTC.1=0 baris 90. Setelah itu LCD akan menampilkan “BARANG DILEPAS
LENGAN ROBOT” seperti baris 91 - 95. Setelah ada tundaan 1500ms kemudian
41
gaya magnetik akan hilang dengan perintah PORTC.7=0 pada baris 96 yang akan
melepas barang. Kondisi selanjutnya adalah pengecekan terhadap sensor letak lengan
PINC.2 dimana kondisi awalnya adalah 1. Apabila bernilai 1 maka LCD
menampilkan”LENGAN ROBOT NAIK” seperti pada baris 98 – 101. Setelah
mengalami penundaan sebesar 300ms maka motor dc akan naik sesuai dengan
perintah pada baris 102 – 104. Ketika kondisi awal PINC.2 tidak terpenuhi maka
proses selanjutnya adalah gerak motor dc naik akan berhenti yaitu pada saat limit
switch tertekan seperti pada baris 106. Kondisi selanjutnya adalah pengecekan
terhadap sensor limit switch tengah yaitu PINB.6 dengan kondisi awal adalah 1 seperti
pada baris 107. Apabila memang terpenuhi kondisi 1 maka LCD akan
menampilkan”LENGAN ROBOT KETENGAH” seperti pada baris 108 – 111.
Kemudian setelah ada tundaan 100ms maka motor dc akan bergerak kekanan seperti
pada perintah 112 – 114. Ketika kondisi awal PINB.6 tidak terpenuhi yaitu pada saat
bernilai 0 maka gerak kekanan ini akan berhenti seperti pada baris 116 yaitu
PORTD.3=0. Pengecekan selanjutnya adalah pada sensor infrared untuk delay barang
yaitu PIND.0 dimana kondisi awalnya adalah 0 yang artinya tidak terhalang. Apabila
kondisi ini terpenuhi maka motor dc pada konveyor penerima jenis barang rendah ini
akan hidup seperti pada baris 118 yaitu PORTC.4=1. Ketika kondisi awal sudah tidak
terpenuhi yaitu pada saat PIND.0 terhalang atau bernilai 1 maka gerak motor dc pada
PORTC.4 ini akan berhenti seperti pada baris 120. Selanjutnya LCD akan
menampilkan”BARANG TELAH SIAP” yang artinya proses akan dimulai lagi dari
awal yaitu proses peletakan barang pada konveyor penyedia seperti pada baris 121 –
124.
3.3.4 Fungsi Untuk Barang Jenis Tinggi Bagian ini merupakan bagian program dimana setelah terjadi proses
pendeteksian barang tinggi yang telah dibahas pada bagian sebelumnya kemudian
akan diproses sesuai dengan masukan dan keluaran sampai akhirnya kembali lagi
pada posisi awal. Berikut diagram alir (flowchart) program fungsi untuk jenis barang
tinggi yang ditunjukkan oleh Gambar 3.9.
42
Gambar 3.9 Diagram alir proses penyeleksian dan pemindahan barang tinggi.
Berikut ini program untuk fungsi barang jenis tinggi: 124. void fungsi_tinggi(void)
{
125. while (PIND.2==0)
{
126. lcd_gotoxy(0,0);
127. lcd_putsf(" LENGAN ROBOT ");
128. lcd_gotoxy(0,1);
129. lcd_putsf(" TURUN ");
130. delay_ms(300);
131. PORTC.0=0;
132. delay_ms(100);
133. PORTC.1=1;
}
43
134. PORTC.1=0;
135. lcd_gotoxy(0,0);
136. lcd_putsf(" BARANG DIAMBIL ");
137. lcd_gotoxy(0,1);
138. lcd_putsf(" LENGAN ROBOT ");
139. delay_ms(1500);
140. PORTC.7=1;
141. while (PINC.2==1)
{
142. lcd_gotoxy(0,0);
143. lcd_putsf(" LENGAN ROBOT ");
144. lcd_gotoxy(0,1);
145. lcd_putsf(" NAIK ");
146. delay_ms(300);
147. PORTC.0=1;
148. delay_ms(100);
149. PORTC.1=1;
}
150. delay_ms(100);
151. PORTC.1=0;
152. while (PINB.7==1)
{
153. lcd_putsf(" LENGAN ROBOT ");
154. lcd_gotoxy(0,1);
155. lcd_putsf(" KEKANAN ");
156. delay_ms(100);
157. PORTD.4=1;
158. delay_ms(100);
159. PORTD.3=1;
}
160. delay_ms(100);
161. PORTD.3=0;
162. while (PINB.4==0)
44
{
163. lcd_gotoxy(0,0);
164. lcd_putsf(" LENGAN ROBOT ");
165. lcd_gotoxy(0,1);
166. lcd_putsf(" TURUN ");
167. delay_ms(300);
168. PORTC.0=0;
169. delay_ms(100);
170. PORTC.1=1;
}
171. PORTC.1=0;
172. lcd_gotoxy(0,0);
173. lcd_putsf(" BARANG DILEPAS ");
174. lcd_gotoxy(0,1);
175. lcd_putsf(" LENGAN ROBOT ");
176. delay_ms(1500);
177. PORTC.7=0;
178. while (PINC.2==1)
{
179. lcd_gotoxy(0,0);
180. lcd_putsf(" LENGAN ROBOT ");
181. lcd_gotoxy(0,1);
182. lcd_putsf(" NAIK ");
183. delay_ms(300);
184. PORTC.0=1;
185. delay_ms(100);
186. PORTC.1=1;
}
187. delay_ms(100);
188. PORTC.1=0;
189. while (PINB.6==1)
{
190. lcd_putsf(" LENGAN ROBOT ");
191. lcd_gotoxy(0,1);
45
192. lcd_putsf(" KETENGAH ");
193. delay_ms(100);
194. PORTD.4=0;
195. delay_ms(100);
196. PORTD.3=1;
}
197. delay_ms(700);
198. PORTD.3=0;
199. while (PIND.1==0)
{
200. delay_ms(100);
201. PORTC.6=1;
}
202. delay_ms(2000);
203. PORTC.6=0;
204. lcd_putsf(" BARANG TELAH ");
205. lcd_gotoxy(0,1);
206. lcd_putsf(" SIAP ");
207. delay_ms(1500);
}
Setelah terdeteksi barang adalah jenis tinggi maka langkah selanjutnya adalah
mengecek apakah sensor yang terdapat pada magnetic clutch (PIND.2) terhalang atau
tidak seperti terdapat pada baris 125. LCD akan menampilkan tulisan”LENGAN
ROBOT TURUN”. Apabila kondisi PIND.2==0 atau tidak terhalang maka PORTC.0
sebagai arah untuk motor dc akan turun (PORTC.0=0)dan PORTC.1 sebagai penentu
on/off motor dc akan hidup (PORTC.1=1) seperti pada baris 131 dan 133. Proses ini
akan terus berlanjut sampai kondisi dimana PIND.2 terhalang. Apabila PIND.2==1
maka gerak turun motor dc akan berhenti seperti pada baris 134. LCD akan
menampilkan pesan “BARANG DIAMBIL LENGAN ROBOT” seperti pada baris
135 – 139. Setelah itu PORTC.7 sebagai keluaran dari magnetic clutch akan hidup
sehingga menimbulkan gaya magnetik yang akan menempelkan barang seperti pada
baris 140. Kondisi selanjutnya adalah pengecekan terhadap sensor letak lengan yaitu
PINC.2 dimana diberi kondisi awal PINC.2==1 yaitu posisi dimana limit switch
dalam posisi terbuka (open) seperti pada baris 141. Apabila memang bernilai 1 maka
LCD akan menampilkan “LENGAN ROBOT NAIK” Seperti pada baris 142 – 146.
46
Selanjutnya setelah mengalami penundaan 300ms maka motor dc akan naik sesuai
dengan perintah pada baris 147 - 149. Ketika PINC.2 sudah bernilai 0 yaitu pada saat
tertekan maka perintah selanjutnya adalah mematikan gerak naik dari motor dc yaitu
pada baris 151. Kondisi selanjutnya adalah pengecekan terhadap limit switch kanan
yaitu PINB.7 dimana kondisi awalnya adalah PINB.7==1 yang berarti dalam keadaan
terbuka seperti pada baris 152. Apabila bernilai 1 maka LCD akan
menampilkan”LENGAN ROBOT KEKANAN” seperti pada baris 153 – 156.
Selanjutnya setelah ada tundaan 100 ms maka motor dc akan bergerak kekiri seperti
pada baris 157 – 159. Apabila kondisi telah bernilai 0 maka motor dc akan mati
seperti pada baris 161 yaitu PORTD.3=0. Kondisi selanjutnya adalah pengecekan
pada sensor infrared pada sisi penerima jenis tinggi yaitu PINB.4 dimana kondisi
awalnya adalah 0 yaitu tidak terhalang seperti pada baris 162. Apabila kondisi
terpenuhi maka LCD menampilkan “LENGAN ROBOT TURUN” seperti pada baris
163 – 167. Kemudian setelah ada tundaan 300ms maka motor dc akan bergerak turun
seperti pada baris 168 – 170. Setelah kondisi PINB.4 bernilai 1 yaitu pada saat
terhalang maka gerak turun motor dc terhenti yaitu pada perintah PORTC.1=0 baris
171. Setelah itu LCD akan menampilkan “BARANG DILEPAS LENGAN ROBOT”
seperti baris 172 - 176. Setelah ada tundaan 1500ms kemudian gaya magnetik akan
hilang dengan perintah PORTC.7=0 pada baris 177 yang akan melepas barang.
Kondisi selanjutnya adalah pengecekan terhadap sensor letak lengan PINC.2 dimana
kondisi awalnya adalah 1. Apabila bernilai 1 maka LCD menampilkan”LENGAN
ROBOT NAIK” seperti pada baris 179 – 183. Setelah mengalami penundaan sebesar
300ms maka motor dc akan naik sesuai dengan perintah pada baris 184 – 187. Ketika
kondisi awal PINC.2 tidak terpenuhi maka proses selanjutnya adalah gerak motor dc
naik akan berhenti yaitu pada saat limit switch tertekan seperti pada baris 188. Kondisi
selanjutnya adalah pengecekan terhadap sensor limit switch tengah yaitu PINB.6
dengan kondisi awal adalah 1 seperti pada baris 189. Apabila memang terpenuhi
kondisi 1 maka LCD akan menampilkan”LENGAN ROBOT KETENGAH” seperti
pada baris 190 – 193. Kemudian setelah ada tundaan 100ms maka motor dc akan
bergerak kekanan seperti pada perintah 194 – 196. Ketika kondisi awal PINB.6 tidak
terpenuhi yaitu pada saat bernilai 0 maka gerak kekiri ini akan berhenti seperti pada
baris 198 yaitu PORTD.3=0. Pengecekan selanjutnya adalah pada sensor infrared
untuk delay barang yaitu PIND.1 dimana kondisi awalnya adalah 0 yang artinya tidak
terhalang. Apabila kondisi ini terpenuhi maka motor dc pada konveyor penerima jenis
47
barang tinggi ini akan hidup seperti pada baris 201 yaitu PORTC.6=1. Ketika kondisi
awal sudah tidak terpenuhi yaitu pada saat PIND.1 terhalang atau bernilai 1 maka
gerak motor dc pada PORTC.6 ini akan berhenti seperti pada baris 203. Selanjutnya
LCD akan menampilkan”BARANG TELAH SIAP” yang artinya proses akan dimulai
lagi dari awal yaitu proses peletakan barang pada konveyor penyedia seperti pada
baris 204 – 207.
61
BAB IV
PENGUJIAN DAN ANALISA ALAT
4. 1 Pengujian Hardware
Beberapa pengujian yang dilakukan terhadap hardware, diantaranya adalah
pengujian sistem minimum AT90S8515 untuk Lcd, pengujian rangkaian penggerak
motor dc satu arah, pengujian rangkaian penggerak motor dc dua arah, pengujian
sensor infrared, pengujian limit switch.
4.1.1 Pengujian Sistem Minimum AT90S8515 - LCD
Pengujian sistem minimum AT90S8515-LCD dilakukan untuk mengetahui
apakah AT90S8515 telah berfungsi dengan baik. Port yang digunakan untuk LCD ini
adalah port A. Pengujian dilakukan dengan cara menuliskan karakter “Andes
Indrayanto” pada LCD. Program ini diisikan pada memori internal mikrokontroller
AT90S8515. Rangkaian untuk menguji sistem minimum dapat dilihat pada Gambar
4.1.
Gambar 4.1 Rangkaian untuk menguji sistem minimum AT90S8515-LCD.
49
Berikut program yang digunakan untuk menguji Sistem minimum AT90S8515. /* Uji Mikro-LCD */ #include <90s8515.h> #asm .equ __lcd_port=0x1B #endasm #include <lcd.h> #include <stdio.h> #include <delay.h> void main(void) { lcd_init(16); while (1) { DDRB=0xff; DDRC=0xff; DDRD=0xff; PORTB=0xff; PORTC=0xff; PORTD=0xff; lcd_gotoxy(0,0); lcd_putsf("Andes"); lcd_gotoxy(0,1); lcd_putsf(" Indrayanto "); delay_ms(500); } }
Dari hasil pengujian pada LCD yang dihubungkan ke port A, terdapat tulisan
“Andes” pada baris pertama dan “Indrayanto” pada baris kedua dengan ini sistem
mikrokontroler-LCD dapat berfungsi dengan baik.
4.2.1. Pengujian Rangkaian Penggerak Motor DC Satu Arah
Untuk mengetahui apakah rangkaian penggerak motor dc satu arah telah
bekerja dengan baik maka dilakukan pengujian dengan memberikan logika input pada
rangkaian penggerak motor dc satu arah dan hasilnya dapat dilihat pada kondisi motor
dan LED indikator .
Hasil pengujian rangkaian penggerak motor dc satu arah terlihat pada Tabel 4.1. Tabel 4.1 Hasil pengujian rangkaian penggerak motor dc satu arah.
Logika masukan Motor LED
0 Diam Padam
1 Berputar Menyala
Dari hasil pengujian dapat diketahui bahwa pada saat rangkaian penggerak
motor dc satu arah mendapat masukan logika tinggi (1), motor berputar dan LED
50
menyala, sedangkan ketika mendapat masukan logika rendah (0), motor diam tidak
berputar dan LED padam. Hal ini disebabkan karena pada saat masukan dari
AT90S8515 berlogika tinggi menyebabkan transistor BD 139 on. Karena transistor on
maka relaipun akan on dan akan menghidupkan motor, sedangkan ketika rangkaian
ini mendapatkan masukan logika rendah (0), menyebabkan transistor off sehingga
relaipun off dan mematikan motor yang dihubungkan dengan relai ini. Jadi pergerakan
on dan off dari relai inilah yang mengatur hidup dan matinya motor.
4.1.3 Pengujian Rangkaian Penggerak Motor DC Dua Arah
Untuk mengetahui apakah rangkaian penggerak motor dc dua arah telah
bekerja dengan baik maka dilakukan pengujian dengan memberikan logika pada kaki
1 dan 2 pada rangkaian penggerak motor dc dua arah. Adapun rangkaian uji motor
DC dua arah ditunjukkan pada Gambar 4.2.
Gambar 4.2 Rangkaian uji penggerak motor DC dua arah.
Adapun hasil pengujian dari rangkaian penggerak motor dc dua arah terlihat
pada Tabel 4.2.
1
2
51
Tabel 4.2 Hasil pengujian rangkaian penggerak motor dc dua arah.
Dari hasil pengujian dapat diketahui bahwa pada saat kaki 1 mendapat logika
0 maka pergerakan motor akan bergerak ke kiri, sedangkan ketika kaki ini mendapat
logika 1 maka pergerakan motor akan bergerak kearah kanan hal ini karena kaki 1
digunakan untuk mengatur arah pergerakan motor. Ketika kaki 1 mendapat masukan
logika 1 transistor BD 139 on dan relai pertama pun akan on. Pergerakan on dan off
dari relai pertama inilah yang mengatur putaran motor ke kanan atau ke kiri.
Sedangkan ketika kaki 2 mendapat logika 0 maka motor tetap diam, dan ketika
mendapat logika 1 maka motor berputar. Hal ini disebabkan karena ketika kaki 1 yang
berfungsi sebagai saklar mendapat logika 1 yang akan menyebabkan transistor BD
139 on sehingga menyebabkan relai on. Dengan aktifnya transistor mengakibatkan
kolektor seolah–olah terhubung singkat terhadap ground dan membuat motor
mendapat catu 12 V yang menjadikan motor berputar.
Dan dari hasil pengujian dapat disimpulkan bahwa rangkaian penggerak motor
DC dua arah telah dapat berfungsi dengan baik. Hal ini karena ketika kaki 1 dan kaki
0 diberi logika sesuai dengan arah yang ditentukan maka pergerakan motor telah
sesuai dengan arah yang diinginkan
4.1.4 Pengujian Rangkaian Sensor infrared
Untuk mengetahui apakah rangkaian sensor infrared tersebut telah bekerja
sesuai dengan yang diinginkan maka dilakukan pengujian dengan menggunakan LCD
sebagai tampilannya apakah sensor infrared telah bekerja dengan baik pada saat
kondisi terhalang oleh barang. Sensor yang diambil sebagai contoh adalah pada
PINB.0, PINB.1 dan PINB.2
1 2 Motor
0 0 Berhenti
0 1 Berputar ke kiri
1 0 Berhenti
1 1 Berputar ke kanan
52
Program yang digunakan untuk pengujian sensor infrared adalah sebagai
berikut #include <stdio.h> #include <90s8515.h> #include <delay.h> #asm .equ __lcd_port=0x1B #endasm #include <lcd.h> void main(void) {
DDRB=0x00; DDRC=0b11111011; DDRD=0b11111000;
lcd_init(16); while (1) {
lcd_gotoxy(0,0); lcd_putsf(" ANDES "); lcd_gotoxy(0,1); lcd_putsf(" INDRAYANTO "); delay_ms(500);
if (PINB.0==1) {
lcd_gotoxy(0,0); lcd_putsf(" ADA BARANG "); lcd_gotoxy(0,1); lcd_putsf(" B0 "); delay_ms(500); } if (PINB.1==1) {
lcd_gotoxy(0,0); lcd_putsf(" ADA BARANG "); lcd_gotoxy(0,1); lcd_putsf(" B1 "); delay_ms(500); } if (PINB.2==1) {
lcd_gotoxy(0,0); lcd_putsf(" ADA BARANG "); lcd_gotoxy(0,1); lcd_putsf(" B2 "); delay_ms(500); } } }
53
Hasil pengujian rangkaian sensor infrared seperti terlihat pada Tabel 4.3.
Tabel 4.3 Hasil pengujian rangkaian sensor infrared.
Tampilan Lcd Kondisi infrared
PINB.0 PINB.1 PINB.2 Logika
Tidak terhalang barang - - - 0
Terhalang barang
“ADA BARANG
B0”
“ADA BARANG
B1”
“ADA BARANG
B2” 1
Dari hasil pengujian dapat diketahui bahwa pada saat sensor infrared tidak
terhalang barang maka PINB.0=0, PINB.1=0 dan PINB.2=0 pada Lcd tidak
ditampilkan tulisan apapun. Ketika terhalang barang yaitu pada saat PINB.0=1 maka
ditampilkan tulisan “ADA BARANG B0”, PINB.1=1 maka ditampilkan tulisan ”
ADA BARANG B1”, dan PINB.2=1 maka ditampilkan tulisan pada Lcd “ADA
BARANG B2”.
4.1.5 Pengujian Rangkaian Sensor Limit Switch
Untuk mengetahui apakah rangkaian sensor limit switch telah bekerja sesuai
dengan yang diinginkan maka dilakukan pengujian rangkaian sensor limit switch.
Pengujian dilakukan dengan menekan limit switch dan pada saat yang sama tegangan
keluaran yang akan menuju mikrokontroler diukur. Adapun rangkaian dari pengujian
limit switch ditunjukkan pada Gambar 4.3.
Gambar 4.3. Rangkaian uji limit switch.
54
Dari pengujian yang telah dilakukan, didapat hasil pengujian rangkaian sensor
limit switch seperti terlihat pada Tabel 4.4.
Tabel 4.4 Hasil pengujian sensor limit switch.
Dari hasil pengujian limit switch dapat diketahui bahwa pada saat limit switch
ketika tidak ditekan, tegangan keluarannya sebesar 5,02 volt. Hal ini disebabkan
karena masukan dari kaki mikrokontroler langsung terhubung Vcc sehingga logika
yang dideteksi mikrokontroler akan high. Sedangkan pada saat limit switch ditekan
maka tegangan keluaran rangkaian sensor limit switch sebesar 0,0974V, hal ini
disebabkan karena keluaran rangkaian sensor limit switch terhubung dengan ground,
sehingga logika keluaran yang dideteksi mikrokontroler adalah logika low. Dengan
hasil pengujian di atas dapat disimpulkan bahwa rangkaian limit switch telah bekerja
dengan baik.
4. 2 Pengujian Software
4.2.1 Pengujian Program Pada Konveyor Penyedia Barang #include <stdio.h> #include <90s8515.h> #include <delay.h> #asm .equ __lcd_port=0x1B #endasm #include <lcd.h> void turunnaik(void); void main(void) { DDRB=0x00; DDRC=0b11111011; DDRD=0b11111000; lcd_init(16); lcd_gotoxy(0,0); lcd_putsf(" TUGAS AKHIR "); lcd_gotoxy(0,1); lcd_putsf("ANDES INDRAYANTO"); delay_ms(2000); while (1) { lcd_gotoxy(0,0);
Tegangan keluaran (volt)
Limit Switch 1 2 3 4 5 6 7 8 Rata-
rata
Logika
Ditekan 0,104 0,095 0,094 0,097 0,099 0,099 0,096 0,095 0,097 Low
Tidak Ditekan 5,02 5,02 5,02 5,02 5,02 5,02 5,02 5,02 5,02 High
55
lcd_putsf("SILAHKAN LETAKAN"); lcd_gotoxy(0,1); lcd_putsf(" BARANG "); delay_ms(500); if (PINB.0==1) { lcd_gotoxy(0,0); lcd_putsf(" ADA BARANG "); lcd_gotoxy(0,1); lcd_putsf(" PROSES DIMULAI "); delay_ms(100); while (PINB.2==0) { PORTC.5=1; delay_ms(100); } PORTC.5=0; if (PINB.1==1) { lcd_gotoxy(0,0); lcd_putsf(" TINGGI BARANG "); lcd_gotoxy(0,1); lcd_putsf(" TINGGI "); delay_ms(1250); turunnaik(); } else { lcd_gotoxy(0,0); lcd_putsf(" TINGGI BARANG "); lcd_gotoxy(0,1); lcd_putsf(" RENDAH "); delay_ms(1250); turunnaik(); } delay_ms(1000); } else { ; } } } void turunnaik(void) { while (PIND.2==0) { lcd_gotoxy(0,0); lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" TURUN "); delay_ms(300); PORTC.0=0; delay_ms(100); PORTC.1=1; } PORTC.1=0; while (PINC.2==1) { lcd_gotoxy(0,0);
56
lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" NAIK "); delay_ms(300); PORTC.0=1; delay_ms(100); PORTC.1=1; } delay_ms(100); PORTC.1=0; }
Pengujian pada konveyor penyedia ini meliputi proses hidup matinya
motor dc pada konveyor penyedia, seleksi barang untuk menentukan jenis
barang dan proses naik turunnya lengan robot. Berdasarkan program pengujian
diatas maka pada saat PINB.0=1 dan PINB.2=0 maka motor dc pada konveyor
penyedia akan hidup. Kemudian pada saat PINB.2=1 yaitu ketika terhalang
oleh barang akan membuat motor dc menjadi mati. Setelah itu akan dimulai
proses pengambilan barang oleh lengan robot yang diawali dengan turunnya
lengan robot. Pada saat PIND.2=1 karena terhalang barang maka proses
turunnya lengan robot ini akan terhenti. Setelah itu naik lagi sampai PINC.2
=1 sebagai sensor batas atas akan membuat proses naiknya lengan robot ini
akan terhenti.
Hasil dari pengujian tampak seprti dalam tabel dibawah ini : Tabel 4.5 Hasil pengujian pada konveyor penyedia barang.
Percobaan Jenis Barang Proses
Pengujian
1 Tinggi Berhasil
2 Tinggi Berhasil
3 Tinggi Berhasil
4 Tinggi Berhasil
5 Rendah Berhasil
6 Rendah Berhasil
7 Rendah Berhasil
8 Rendah Berhasil
57
4.2.2 Pengujian Program Konveyor Penerima Barang Untuk Gerakan Kekanan,
Ketengah, Kekiri Dan Turun-Naik
#include <stdio.h> #include <90s8515.h> #include <delay.h> #asm .equ __lcd_port=0x1B #endasm #include <lcd.h> void kanan(void); void tengah1(void); void kiri(void); void tengah2(void); void turunnaik(void); void main(void) { DDRB=0x00; DDRC=0b11111011; DDRD=0b11111000; lcd_init(16); lcd_gotoxy(0,0); lcd_putsf(" TUGAS AKHIR "); lcd_gotoxy(0,1); lcd_putsf("ANDES INDRAYANTO"); delay_ms(2000); while (1) { lcd_gotoxy(0,0); lcd_putsf("SILAHKAN LETAKAN"); lcd_gotoxy(0,1); lcd_putsf(" BARANG "); delay_ms(500); if (PINB.0==1) { lcd_gotoxy(0,0); lcd_putsf(" ADA BARANG "); lcd_gotoxy(0,1); lcd_putsf(" PROSES DIMULAI "); delay_ms(100); while (PINB.2==0) { PORTC.5=1; delay_ms(100); } PORTC.5=0; if (PINB.1==1) { lcd_gotoxy(0,0); lcd_putsf(" TINGGI BARANG "); lcd_gotoxy(0,1); lcd_putsf(" TINGGI "); delay_ms(1000); turunnaik(); delay_ms(1000); kanan(); delay_ms(1000); tengah1();
58
} else { lcd_gotoxy(0,0); lcd_putsf(" TINGGI BARANG "); lcd_gotoxy(0,1); lcd_putsf(" RENDAH "); delay_ms(1000); turunnaik(); delay_ms(1000); kiri(); tengah2(); } delay_ms(1000); } else { ; } } } void turunnaik(void) { while (PIND.2==0) { lcd_gotoxy(0,0); lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" TURUN "); delay_ms(300); PORTC.0=0; delay_ms(100); PORTC.1=1; } PORTC.1=0; while (PINC.2==1) { lcd_gotoxy(0,0); lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" NAIK "); delay_ms(300); PORTC.0=1; delay_ms(100); PORTC.1=1; } delay_ms(100); PORTC.1=0; } void kanan(void) { while (PINB.7==1)
59
{ lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" KEKANAN "); delay_ms(100); PORTD.4=1; delay_ms(100); PORTD.3=1; } delay_ms(200); PORTD.3=0; } void tengah1(void) { while (PINB.6==1 { lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" KETENGAH "); delay_ms(100); PORTD.4=0; delay_ms(100); PORTD.3=1; } delay_ms(50); PORTD.3=0; } void kiri(void) { while (PINB.5==1) { lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" KEKIRI "); delay_ms(100); PORTD.4=0; delay_ms(100); PORTD.3=1; } delay_ms(100); PORTD.3=0; } void tengah2(void) { while (PINB.6==1) { lcd_putsf(" LENGAN ROBOT "); lcd_gotoxy(0,1); lcd_putsf(" KETENGAH "); delay_ms(100); PORTD.4=1; delay_ms(100); PORTD.3=1; } delay_ms(50);
60
PORTD.3=0; }
Hasil dari pengujian jenis barang pada konveyor penerima dapat dilihat pada
tabel dibawah ini:
Tabel 4.6 Hasil pengujian pada konveyor penerima barang.
Jenis Barang
Uji Turun Naik
Uji Gerak Kekanan
Uji Gerak Ketengah1
Uji Gerak Kekiri
Uji Gerak Ketengah2
Tinggi Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Tinggi Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Tinggi Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Tinggi Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Rendah Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Rendah Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Rendah Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Rendah Berhasil Berhasil Tidak Berhasil Berhasil Tidak Berhasil
Dari hasil pengujian tampak bahwa semua proses berlangsung secara berurutan.
Proses pada konveyor penerima ini dimulai dengan pendeteksian jenis barang lalu
gerakan turun naik lengan robot, penempelan barang oleh magnetic clutch kemudian
perpindahan lengan robot kekanan atau kekiri sesuai jenis barang dimana jika barang
jenis tinggi lengan bergerak kekanan dan jika barang jenis rendah lengan kekiri.
Digunakan limit switch sebagai sensor batasnya. PINB.5 sebagai batas kiri, PINB.6
sebagai batas tengah, PINB.7 sebagai batas kanan dan PINC.2 sebagai batas atas pada
gerakan naiknya lengan robot.
Proses perpindahan kekanan, kekiri, dan naik serta turun telah berhasil dilakukan
dengan baik sementara pada saat gerak kembali ketengah untuk jenis barang tinggi
dan barang rendah tidak bisa dilakukan dengan sempurna sehingga gerak ketengah ini
tidak berhasil dilakukan hal ini dikarenakan tidak akuratnya posisi lengan robot pada
saat berhenti di tengah
61
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil pengujian dan analisa Tugas Akhir yang telah
dilakukan, dapat diambil kesimpulan sebagai berikut :
1. Lengan robot penyeleksi dan pemindah barang berdasarkan ukuran tinggi
menggunakan mikrokontroler AT90S8515 dapat berfungsi dengan baik.
2. Tegangan keluaran sensor limit switch ketika ditekan adalah 0,097V karena
keluaran rangkaian langsung terhubung ground dan pada saat tidak ditekan
sebesar 5,02V.
3. Proses penyeleksian barang pada konveyor penyedia berhasil dilakukan dengan
tidak ada kesalahan.
4. Proses pemindahan barang pada gerak turun-naik, gerak kekanan dan gerak
kekiri oleh Lengan robot berhasil dilakukan dengan tidak ada kesalahan.
5. Proses pemindahan barang pada gerak ketengah tidak berhasil dilakukan
dilakukan dengan baik akibat kurang akuratnya posisi lengan robot pada saat
kembali ketengah.
5.2 Saran
Agar sistem yang didapat lebih baik, maka penulis memberikan saran-saran
sebagai berikut :
1. Untuk pengembangan lebih lanjut penggunaan komputer dapat digantikan
dengan sistem mikrokontroler.
2. Perbaikan pada sistem mekanik yang kurang presisi dan kurang sempurna
sehingga pengambilan dan penempatan barang semakin akurat.
3. Perbaikan pada sensor infrared yang rentan terhadap gangguan berupa
pergeseran yang mempengaruhi penerima dan pemancar infrared sehingga
diharapkan gangguan dapat ditekan seminimal mungkin.
62
DAFTAR PUSTAKA
[1]. Jogiyanto, H., Konsep Dasar Pemrograman Bahasa C, Edisi Kedua, ANDI,
Yogyakarta, 2000.
[2]. Khadiq, A., Aplikasi Mikrokontroler Atmel AT90S8515 Sebagai Pengatur Pada
Mesin Tetas Ayam, Tugas Akhir , Teknik Elektro Undip, Semarang, 2005.
[3]. Kadir, A., Pemrograman Dasar Turbo C untuk IBM PC, ANDI, Yogyakarta,
1997.
[4]. Kernighan, B.W. & Ritchie, D.M., The C Programming Language, Second
Edition, Prentice Hall, New Jersey, 1988.
[5]. K.S. Fu, R.C. Gonzalez & G.S.G. Lee, Robotics : Control, Sensing, Vision, and
Intelligence, McGraw-Hill Book Co., Singapore, 1988.
[6]. Mahadmadi, F., Embeded C Pada Mikrokontroler AVR AT90S8515, Tugas
Akhir, Teknik Elektro Undip, Semarang, 2003.
[7]. Malvino, P.A., Aproksimasi Rangkaian Semikonduktor, Edisi Keempat, Penerbit
Erlangga, Jakarta, 1986.
[8]. Malvino, P.A., Prinsip-prinsip Elektronika, Edisi Kedua, Penerbit Erlangga,
Jakarta, 1984.
[9]. Ogata, Katsuhiko, Teknik Kontrol Automatik, Jilid I, Edisi Kedua, Erlangga,
Jakarta, 1997.
[10]. Raharjo, S.B., Sutopo, B., Robot Pengikut Garis Berbasis Mikrokontroler
AT89C51 Menggunakan Sensor Infra Merah, Teknik Elektro UGM,
Yogyakarta, 2004.
[11]. Rusmadi, D., Digital & Rangkaian, PIONIR JAYA, Bandung, 2004.
[12]. Sutisna, U., Aplikasi Mikrokontroler AT89C51 Untuk Keamanan Ruangan Pada
Rumah Cerdas, Tugas Akhir , Teknik Elektro Undip, Semarang, 2004.
[13]. Wardoyo, R., Lengan Robot Penyeleksi dan Pemindah Barang Berdasarkan
Ukuran Panjang Berbasis PC, Tugas Akhir , Teknik Elektro Undip, Semarang,
2004.
[14]. Zuhal, Dasar Tenaga Listrik, ITB, Bandung, 1991.
[15]. _ _ _ _ _ _, 8-bit AVR Instruction Set, http://www.atmel.com, Februari 2003.
[16]. _ _ _ _ _ _, CodeVisionAVR Version1.0.1.7 User Manuat,
http://www.hpinfotech.ru, Maret 2003.