BERBASIS MIKROKONTROLER AVR ATMEGA8535
Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik
Program Studi Teknik Elektro Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh :
YUANSYAH
NIM : 055114011
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
ON ATMEGA8535 MICROCONTROLLER
In partial fulfillment of the requirements for the degree of Sarjana Teknik Electrical Engineering Study Program
Electrical Engineering Departement
Science and Technology Faculty Sanata Dharma University
by :
YUANSYAH
055114011
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
“DO SOMETHING FROM YOUR HEART”
LAKUKAN SEGALA SESUATU DARI DALAM HATIMU
KAMU AKAN SELALU DIKENANG KARENA
PERBUATANMU, BUKAN KARENA KATA-KATAMU
“BETTER LATE, DON’T NEVER”
Skripsi Ini ku persembahkan untuk :
Tuhan yang Maha Mulia
Ama, Papa dan Mama tercinta
Ie-ie dan Ku-ku yang selalu memberikan motivasi
Saudara-saudaraku yang terbaik
Dosen-dosen yang membimbingku
Dan teman-teman yang selalu mendukungku
dengan cepat, tepat dan efisien. Otomasi peralatan seringkali diperlukan untuk mempercepat proses pelaksanaan suatu pekerjaan sehingga dapat meningkatkan efisiensi kerja. Belum ada kepraktisan pelayanan dalam mengantar makanan di restoran khususnya kelas menengah ke atas. Pada penelitian ini, robot
linefollower diaplikasikan menjadi pelayan restoran yang bertugas memberikan
informasi menu makanan dan nomor meja yang tersedia dan mengantar makanan ke meja sesuai dengan pilihan pelanggan.
Dalam penelitian ini, robot mengikuti jalur dengan kecepatan yang diatur sesuai dengan track yang telah ditentukan (4 meja pelanggan, 1 meja reservasi dan 1 meja koki). Penggerak robot menggunakan motor DC dan mikrokontroler yang digunakan untuk mengendalikan sistem robot pengantar makanan adalah mikrokontroler AVR ATMega8535.
Kapasitas beban maksimal yang dapat dibawa robot 8 Ons. Keberhasilan robot mengantar makanan sampai ke meja tujuan sebesar 90%.
Kata kunci: AVR ATMega8535, aplikasi linefollower, robot pengantar.
automatism is often needed to speed up a process of a certain activity in order to improve work efficiency. There has not been a service practice in food delivery in restaurant especially high class restaurant. In this study, the linefollower robot is applied as a restaurant waitress that duty is to give information of the food menu and available table in restaurant and to deliver food to the table that has been chosen by the customer.
This study is examining, the robot follows the line with the speed that has been adjusted to the certain track (four costumer tables, 1 reserved table and 1 chef’s table). Robot’s control is using motor DC and using the AVR ATMega8535 microcontroller to control food deliverer robot system.
The maximal weight’s capacity thet the robot can carry is 8 ounces. The success percentage of the robot to deliver the food to the table is about 90%. Keyword: AVR ATMega8535, linefollower application, deliver robot.
berkat dan rahmat-Nya sehingga penulis dapat menyelesaikan karya tulis berjudul “Robot Pengantar Makanan di Restoran Berbasis Mikrokontroler AVR ATMega8535 ”.
Karya tulis ini merupakan salah satu syarat untuk memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro Universitas Sanata Dharma. Penulisan skripsi ini didasarkan pada hasil-hasil yang penulis dapatkan selama tahap perancangan, pembuatan dan pengujian alat.
Penulisan skripsi ini tidak terlepas dari bantuan berbagai pihak. Untuk itu, penulis mengucapkan terima kasih kepada:
1. Orang tua saya Liem Khiok Kia dan Tio Hui Cin yang telah memberi dukungan moral, spiritual dan finansial dalam penyusunan skripsi.
2. Bapak Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
3. Ibu Bernadeta Wuri Harini, S.T., M.T., selaku kepala program studi teknik elektro dan selaku dosen pembimbing karya tulis yang telah meluangkan waktu, tenaga, dan pikirannya untuk membimbing penulis.
4. Bapak Ir. Tjendro dan bapak Martanto, S.T., M.T. yang telah membantu dan memberikan ide-idenya kepada penulis dalam mengerjakan karya tulis ini.
5. Ibu Ir. Th. Prima Ari Setiyani, M.T., selaku wakil kepala program studi teknik elektro.
7. Paman, bibi dan keluarga besar yang terus memberikan semangat dan motivasi kepada penulis.
8. Rekan-rekan yang telah memberikan bantuan kepada penulis dalam pengerjaan karya tulis ini: Hendri Paulus, Yohan Kuncoro, G.W.Mantri, Thomas Supriadi, Adi Saputra, Christian N, Jofines Wijaya, dan Livie.
9. Teman-teman Ketapang yang terus memberi semangat dan dukungan kepada penulis: Andy, Urbanusius, Welly A, Edy S, Hendrik, Ari M, Boike J.A, Yanti C, Yanti, Cita, Lise, Merry P, Erni Y, Candra, Heriyanto, Agus E, Victor, Ferry S, dan Feriyanto.
10. Segenap dosen dan laboran Teknik Elektro Universitas Sanata Dharma. 11. Segenap karyawan sekretariat Fakultas Sains dan Teknologi.
12. Teman-teman kontrakan “Sun Rise” : Vicimus B, Roland, Y. Taufan S, Hengky S dan Mantok terima kasih atas dukungan dan bantuannya selama ini.
13. Teman-teman Teknik Elektro angkatan 2005 : Albert, Sadiman, Abineri, Pandu, Roy, Wayan dan teman-teman lain yang tidak dapat disebutkan satu-persatu. Terima kasih atas persahabatannya selama ini.
HALAMAN PERSETUJUAN...iii
HALAMAN PENGESAHAN...iv
LEMBARAN PERNYATAAN KEASLIAN KARYA...v
MOTO DAN PERSEMBAHAN ... vi
LEMBARAN PERNYAAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH...vii
INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xiii
DAFTAR GAMBAR ... xvi
DAFTAR GAMBAR ... xvii
DAFTAR TABEL ... xviii
BAB I PENDAHULUAN ... 1
1.1 Judul ... 1
1.2 Latar Belakang ... 1
1.3 Tujuan dan Manfaat ... 2
1.4 Batasan Masalah ... 3
1.5 Metodologi Penelitian ... 4
BAB II DASAR TEORI ... 5
2.1 Mikrokontroller ATMega8535 ... 5
2.1.1 Fitur Yang Dimiliki ATMEGA8535 ... 6
2.1.2 Asitektur ATmega8535 ... 15
2.1.3 Konfigurasi Pin ... 18
2.1.4 Peta Memori ... 19
2.1.5 Stack Pointer ... 21
2.1.6 Timer ATMega8535 ... 21
2.2 Fotodioda (Photodiode) ... 24
2.5 IC Driver L293D ... 27
2.6 LCD (Liquid Crystal Display) ... 28
2.6.1 Gambaran Umum. ... 28
2.6.2 Register ... 30
BAB III PERANCANGAN ... 35
3.1 Model Sistem ... 37
3.2 Sensor Jalur ... 38
3.3 Perancangan Jalur/Track ... 42
3.4 Tombol Pushbutton ... 43
3.5 Driver L293D Sebagai Penggerak Motor ... 44
3.6 LCD ... 46
3.7 Perancangan Rangkaian Keseluruhan ... 47
3.8 Perancangan Perangkat Lunak ... 50
3.8.1 Diagram Alir Program Utama ... 50
3.8.2 Proses Pemesanan Makanan dan Nomor Meja ... 52
3.8.3 Diagram Alir Subrutin Cuplik Sensor ... 53
BAB IV HASIL DAN PEMBAHASAN ... 54
4.1 Hasil Implementasi Robot Pengantar Makanan di Restoran ... 54
4.2 Pengujian Waktu Tempuh dan Kecepatan Rata-Rata ... 57
4.3 Hasil Pengujian Keberhasilan Mengantar Makanan ... 59
4.4 Hasil Pengujian Kecepatan Putar Roda dengan PWM Motor ... 60
4.5 Pengujian Beban ... 63
4.6 Pembahasan Software ... 64
4.6.1 Proses Pemesanan Makanan dan Nomor Meja ... 64
4.6.1.1 Proses Pemesanan Makanan...64
4.6.1.2 Proses Pemesanan Nomor Meja... 66
4.6.2 Proses Program Utama ... 68
4.6.2.1 Proses Menentukan Nilai PWM...69
4.6.3 Proses Subrutin Cuplik Sensor ... 75
BAB V KESIMPULAN DAN SARAN ... 77
5.1 Kesimpulan ... 77
5.2 Saran ... 78
DAFTAR PUSTAKA
LAMPIRAN
Gambar 2.2. Gambar. Register ADMUX 8
Gambar 2.3. Register OCR1H/L dan OCR1H/L 11
Gambar 2.4. Register ICR1H/L 12
Gambar 2.5. Fast Pulse Width Modulation 13
Gambar 2.6. Arsitektur ATMega8535 17
Gambar 2.7. Konfigurasi pin ATMega8535 18
Gambar 2.8. Peta Memori Program 20
Gambar 2.9. Peta Memori Data 20
Gambar 2.10 Simbol Rangkaian Fotodioda 24
Gambar 2.10. Rangkaian LED 25
Gambar 2.11 kondisi limit switch NO dan kondisi limit switch NC 26
Gambar 2.21. IC L293D 27
Gambar 2.22 Konstruksi LCD 28
Gambar 2.23 LCD 4 x 16 29
Gambar 2.24 Diagram Pewaktuan Penulisan Data ke Register Perintah
Mode 4-bit 31
Gambar 2.25 Diagram Pewaktuan Pembacaan Data ke Register Perintah
Mode 4-bit 32
Gambar 2.26 Diagram Pewaktuan Penulisan Data ke Register Data Mode
4-bit 34
Gambar 2.27 Diagram Pewaktuan Pembacaan Data dari Register Data
Mode 4-bit 34
Gambar 3.1. Blok Rangkaian Robot Pengantar Makanan Di Restoran 36
Gambar 3.2. Desain Robot Pengantar Makanan 38
Gambar 3.3. Kondisi Kaki Anoda Photodioda Terhadap Permukaan Hitam
dan Putih 38
Gambar 3.4 Rangkaian Utama Sensor Jalur 41
Gambar 3.5 Posisi Sensor pada Robot dan Jarak Antar Tiap Sensor 42 Gambar 3.6 Bentuk Desain Jalur yang Akan Dilewati Oleh Robot dan
Posisi Meja 42
Gambar3.7 Pussbutton Sebagai Masukan Mikrokontroler 43
Gambar 3.8 Rangkaian driver L293D 45
Gambar 3.9 Interface LCD Mode 4 Bit 47
Gambar 3.10 Ilustrasi Rangkaian Keseluruhan dan Fungsi-fungsi Tiap Port 48 Gambar 3.11 Diagram Alir Program Utama dari Robot Pengantar
Makanan 49
Gambar 3.13 Diagram Alir Subrutin Cuplik Sensor 52
Gambar 3.14 Keadaan Posisi Sensor 53
Gambar 4.1 Sensor Jalur 54
Gambar 4.2 Minimum Sistem ATMega8535 55
Gambar 4.3 Rangkaian Driver 55
Gambar 4.4 Rangkaian LCD 55
Gambar 4.5 Rangkaian Tombol-tombol (PushButton) 56
Gambar 4.6 Model Sistem Robot Pengantar Makanan di Restoran Berbasis
ATMega8535 56
Gambar 4.7 Bentuk Lintasan 58
Gambar 4.8 Proses Pemesanan Meja 64
Gambar 4.9 Tampilan Awal 65
Gambar 4.10 Tampilan Saat Tombol Kanan Ditekan 66
Gambar 4.11 Tampilan Pemilihan Nomor Meja 66
Gambar 4.12 Proses Pemesanan Nomor Meja 67
Gambar 4.13 Program Utama 68
Gambar 4.14 Proses Menampilkan Posisi Sensor ke LCD 70 Gambar 4.15 Instruksi Merekam Posisi Terakhir Sensor Saat Kehilangan
Jalur 71
Gambar 4.16 Instruksi Meletakan Makanan 72
Gambar 4.17 Proses Menentukan Meja Tujuan 73
Gambar 4.18 Instruksi Menentukan Meja yang Akan Dituju 73 Gambar 4.19 Instruksi Pengecekkan Pengambilan Makanan 74
Gambar 4.20 Proses Kembali Ke Meja Reservasi 74
Gambar 4.21 Instruksi Kembali Ke Meja Reservasi 75
Gambar 4.22 Instruksi Cuplik Sensor 75
Tabel 2.2. Konfigurasi Bit-bit ADPS 9
Tabel 2.3. Konfigurasi Bit-bit CS12:0 14
Tabel 2.4. Deskripsi Pin 19
Tabel 2.5. Pengaturan Bit Clock Select 23
Tabel 2.6 Konfigurasi Pin LCD 30
Tabel 2.7 Perintah-perintah LCD Jenis HD44780 32
Tabel 3.1. Kondisi Kaki Anoda Fotodioda Terhadap Permukaan Hitam dan
Putih 39
Tabael 3.2 Karakteristik Fotodioda Hasil Pra Penelitian 40
Tabel 3.3 Level ADC Terhadap Tanggapan Fotodioda 40
Tabel 3.4. Tabel Arah Putaran Motor 45
Tabel 3.5 Spesifikasi dan Kapasitas Catu Daya Untuk Rangkaian Utama 48 Tabel 3.6 Spesifikasi dan Kapasitas Catu Daya Untuk Motor 48 Tabel 3.7 Persentase Dutycycle dan Arah Putaran Motor 53 Tabel 4.1 Data Waktu Tempuh Robot Mengantar Makanan 57
Tabel 4.2 Data Kecepatan Rata-rata 59
Tabel 4.3 Data Keberhasilan Robot Mengantar Makanan 59 Tabel 4.4 Data Total Persentase Keberhasilan dan Kegagalan Mengantar
Makanan 60
Tabel 4.5 Data Perbandingan Nilai Dutycycle Antara Perancangan dan
Pengaplikasian 61
Tabel 4.6 Data PWM dan Persentase Error 62
Tabel 4.7 Data Pengujian Beban 63
Tabel 4.8 Nilai PWM Rspeed dan Lspeed 70
1.1 Judul
Robot Pengantar Makanan di Restoran Berbasis Mikrokontroler AVR ATMega8535.
1.2 Latar Belakang
Perkembangan ilmu pengetahuan dan teknologi untuk saat ini semakin pesat khususnya di bidang elektronika. Manusia menginginkan pemecahan masalah-masalah yang berkaitan dengan kebutuhan hidupnya dengan cepat, tepat dan efisien. Teknologi elektronika dapat menghasilkan peralatan, baik besar maupun kecil untuk pemenuhan kebutuhan manusia hampir di setiap bidang.
Pada berbagai bidang pekerjaan, otomasi peralatan seringkali diperlukan untuk mempercepat proses pelaksanaan suatu pekerjaan sehingga dapat meningkatkan efisiensi kerja. Berawal dari permasalahan tersebut, penulis melihat belum adanya kepraktisan pelayanan dalam mengantar makanan di restoran khususnya kelas menengah ke atas. Yang ada saat ini hanyalah restoran-restoran Jepang yang menyajikan segala jenis makanan pada meja konveyor yang berputar terus-menerus dan juga ada mesin penerima pesanan yang biasanya diaplikasikan atau dipakai pada tempat makan fastfood karena lebih praktis. Namun masih jarang sekali ditemui/dipakai di Indonesia.
Dari permasalahan tidak adanya kepraktisan dalam mengantarkan makanan, maka penulis mengangkat judul "Robot Pengantar Makanan di Restoran Berbasis Mikrokontroler AVR ATMega8535". Robot yang akan dibuat menggunakan mikrokontroler karena dengan mikrokontroler, memungkinkan untuk dibuat sebuah piranti elektronik yang dimensi fisiknya jauh lebih ringkas. Penerapan mikrokontroler saat ini pun sudah sangat luas dan telah memberi sumbangan yang besar bagi teknologi yang menunjang kehidupan manusia terbukti dari banyaknya berbagai temuan yang terus dikembangkan untuk menyelesaikan masalah kehidupan. Robot ini dapat memudahkan pelayanan pada restoran-restoran ataupun rumah makan, serta meningkatkan efisiensi karyawan. Robot ini dibuat untuk mengganti tenaga manusia yang dapat dipekerjakan terus-menerus tanpa mengenal rasa lelah dan letih.
1.3 Tujuan dan Manfaat
Dengan tujuan: menghasilkan robot yang dapat mengantar makanan dengan cepat, tepat dan efisien, diharapkan dapat memberikan manfaat sebagai berikut:
a. Sebagai acuan pengaplikasian mikrokontroler untuk membantu dan mempermudah kerja manusia.
c. Sebagai acuan agar pemahaman fungsi dan karakteristik komponen - komponen elektronik maupun mekanik yang digunakan dalam perancangan sehingga memperdalam ilmu pengetahuan.
1.4 Batasan Masalah
Agar perancangan sistem dan pembahasan laporan tentang ”Robot Pengantar Makanan di Restoran” berdasarkan line follower berbasis mikrokontroller ini menjadi lebih spesifik maka diberikan beberapa batasan sebagai berikut:
a. Menggunakan mikrokontroler AVR ATMega8535 untuk mengendalikan semua proses robot.
b. Untuk track/jalur, robot mendeteksi jalur warna putih di atas hitam, dengan lebar 3 cm.
c. Robot mengantar makanan untuk satu meja dan satu jenis makanan (1 porsi) dalam satu kali pemesanan.
d. Garis lintasan dibuat 4 percabangan, satu untuk reservasi dan satu meja koki sehingga hanya ada 6 meja (4 meja yang dapat dipesan).
e. Untuk berat beban robot maksimal 8 Ons. Dengan spesifik mangkuk dan piring yang digunakan :
2. Diameter mangkuk 19 cm dan tinggi 5,5 cm.
3. Diameter piring 23 cm dan tinggi 3 cm.
f. Untuk jenis makanan berkuah, batas maksimal tinggi kuah kurang 2 cm dari tinggi maksimal mangkuk
g. Spesifik ukuran dan robot panjang 32 cm, lebar 25 cm dan tinggi 23 cm.
1.5 Metodologi Penelitian
Penulisan skripsi ini menggunakan metode :
1. Studi pustaka, menggunakan buku – buku referensi dan jurnal – jurnal.
2. Perhitungan dan analisa dalam menentukan tegangan referensi untuk kepekaan sensor jalur berdasarkan program dan pengukuran, untuk menentukan kecepatan putar roda (motor DC) dengan PWM (Pulse Width Modulation), untuk menentukan ketepatan robot mengantar makanan dan kepresisian robot mengikuti jalur/track yang telah ditentukan.
3. Perancangan alat yang didasari oleh dasar teori.
4. Implementasi hasil perancangan ke bentuk perangkat keras (hardware).
5. Pengujian alat dan mengambil data hasil pengujian dengan menggunakan alat ukur.
6. Analisis data yang didapat dari pengujian alat.
2.1 Mikrokontroller ATMega8535
Mikrokontroler merupakam chip cerdas yang menjadi tren dalam pengendalian dan otomatisasi, terutama dikalangan mahasiswa. Dengan banyak jenis keluarga, kapasitas memori, dan berbagai fitur, mikrokontroler menjadi pilihan dalam aplikasi prosesor mini untuk pengendaliaan skala kecil.
Mikrokontroler AVR (Alf and vegard’s Risc processor) dari Atmel ini menggunakan arsitektur RISC (Reduced Instruction Set Computer) yang artinya prosesor tersebut memiliki set instruksi program yang lebih sedikit dibandingkan dengan MCS-51 yang menerapkan arsitektur CISC (Complex Instruction Set
Computer).
Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum tentu sederhana), sehinggga instruksi-instruksi ini umumnya hanya memerlukan 1 siklus mesin untuk menjalankannya. Kecuali instruksi percabangan membutuhkan 2 siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard, karena arsitektur ini yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam satu atau dua siklus mesin, sehingga semakin cepat dan handal. Proses
downloading programnya relatif lebih mudah karena dapat dilakukan langsung
pada sistemnya.
Sekarang ini, AVR dapat dikelompokkan menjadi 6 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATmega, keluarga AT90CAN, keluarga AT90PWM dan AT86RFxx. Pada dasarnya membedakan masing-masing kelas dala, peripheral, dan fungsinya, sedangkan dari segi arsitektur dan instruksi yang digunakan, mereka hampir sama. Sebagai pengendali utama dalam pembuatan robot ini digunakan salah satu produk ATMEL dari keluarga ATMega yaitu ATMega8535.[1]
2.1.1 Fitur Yang Dimiliki ATMEGA8535
2.1.1.1 Analog To Digital Converter (ADC)
ADC pada ATMega8535 merupakan ADC 10-bit tipe Successisve
Approximation, yang terhubung ke sebuah multiplekser analog yang akan
memilih satu dari delapan kanal. Untuk menjaga validasi data, terdapat untai
Sampel and Hold. Tegangan suplai ADC terpisah dari tegangan mikrokontroler,
tetapi selisihnya tidak boleh lebih dari 0,3 V. Untuk mengatasinya, digunakan untai filter LC seperti ditunjukkan Gambar 2.1.
Terdapat 8 kanal ADC masing-masing selebar 10 bit, ADC dapat digunakan dengan memberikan masukkan tegangan pada port ADC, yaitu portA.0 sampai portA.7.
Ada dua mode ADC yang dapat digunakan, yaitu single conversion dan
kali ADC akan digunakan. Sedangkan pada mode free running, pengguna cukup sekali mengaktifkan, sehingga ADC akan terus mengkonversi tanpa henti.
Dalam kemasan TQFP (Thin Quad Flat Package) terdapat fasilitas tambahan, yaitu kanal diferensial dan kanal diferensial dengan penguatan, yang memungkinkan dua kanal ADC digunakan sekaligus. Kemasan PDIP tidak menyediakan fasilitas ini.
Gambar 2.1. Koneksi dengan filter RC pada suplai ADC
Gambar 2.2. Gambar. Register ADMUX
Dalam akses ADC, terdapat proses pengaturan register-register I/O yang terlibat dalam ADC. Proses pengaturan tersebut meliputi:
a. Menetukan sumber tegangan referensi
Referensi pada ADC merupakan batas rentang representasi nilai digital hasil konversi. Hasil konversi pada mode single ended cenversion
dirumuskan sebagai berikut:
REF IN
V
V
ADC
=
⋅
1024
...(2.1)dengan VIN = tegangan masukkan analog pada kanal ADC yang
aktif
VREF = tegangan referansi yang dipilih
b. Memilih kanal yang aktif (satu dari delapan)
Kanal yang aktif ditentukan oleh bit-bit MUX4:0 (Analog Channel
and Gain Selection Bits) pada register ADMUX. Tabel 2.1
Tabel 2.1. Konfigurasi Bit-bit ADMUX4:0
c. Menetukan prescaler (clockADC)
Prescaler merupakan factor pembagi yang diterapkan pada clock
mikrokontroler menerima clock yang cukup sehingga data hasil konversi cukup valid. Untuk ketelitian ADC 10 bit, rentang frekuensi
clock yang diperbolehkan adalah 50kHz hingga 200kHz. Frekuensi
clockyang lebih tinggi dapat digunakan jika resolusi lebih rendah dari
10bit. Nilai prescaler ditentukan oleh bi-bit ADPS2:0 (ADCPrescaler
Select Bits2:0). Tabel 2.2 menunjukan konfigurasi bit-bit tersebut.
Tabel 2.2. Konfigurasi Bit-bit ADPS
d. Inisialisasi ADC
terletak pada register ADCSRA. Waktu yang diperlukan untuk satu konversi adalah 25 siklus clock ADC pada konversi pertama, dan 13 siklus clock ADC untuk konversi berikutnya.
Idealnya, ADC dapat melakukan konversi secara linear antara GND dan VREF dalam 2n langkah. Sehingga factor pengali hasil konversi terndah adalah 0,
dan tertinggi 2n-1. indeks n menunjukkan resolusi ADC (8,9, atau 10 bit). Tetapi
terdapat beberapa hal yang menyebabkan ADC tidak mencapai kondisi ideal, yaitu galat yang terjadi saat konversi, antara lain:
a. Offset error
b. Gain error
c. Integral non-linearity
d. Differential non- linearity
e. Quantization error
Dengan adanya galat-galat tersebut, pada akhirnya fasilitas ADC memiliki akurasi
absolute sebesar ± 2 LSB. [1]
2.1.1.2 Pulse Width Modulation (PWM)
Mikrokontroler ATMega8535 menyediakan fitur Timer/Counter1 yang dapat diatur sebagai timer, pencacah (counter), perekam waktu kejadian (even
occurance time capture), pembangkit isyarat PWM (Pulse Width Modulation),
Timer/Counter1 dapat digunakan secara fleksibel untuk berbagai tujuan yang berkaitan dengan waktu dan pembangkit gelombang.
a. OCR1AH/L (Output Compare Register 1 A High-byte/Low-byte) dan OCR1BH/L (Output Compare Register 1 B High-byte/Low-byte)
Register OCR1AH/L dan register OCR1BH/L berisi data yang terus-menerus dibandingkan dengan isi register TCNT1H/L. Hasilnya dapat digunakan untuk membangkitkan gelombang pada pin OC1A/B. Gambar 2.3 menunjukan isi register-register tersebut.
Gambar 2.3. Register OCR1H/L dan OCR1H/L
b. ICR1H/L (Input Capture Register 1 High-byte/Low-byte)
Gambar 2.4. Register ICR1H/L
Isyarat PWM merupakan hasil modulasi isyarat segitiga oleh isyarat konstan. Pengubahan amplitudo isyarat konstan akan mengubah lebar pulsa hasil modulasi. Sementara pengubahan amplitudo isyarat segitiga (dengan bentuk segitiga sebangun dengan segitiga awal) akan mengubah frekuensi PWM.
Terjadi dua register OCR1A/B (Output Compare Register1A/B) yang isinya secara kontinyu dibandingkan dengan isi register Timer/Counter1. Register-register ini dapat diisi oleh pengguna, selebar masing-masing bit. Dalam mode PWM, nilai register OCR1A/B ini menjadi isyarat pemodulasi.
Lebar register data Timer/Counter1 adalah 16 bit, sehingga dapat mencacah nilai dari $0000 hingga $FFFF. Dalam operasi PWM, nilai
Timer/Counter1 ini yang menjadi isyarat segitiga. Sebagai catatan, istilah segitiga
disini tidak berarti segitiga dalam bidang geometri, tetapi isyarat yang meningkat amplitudonya secara berlangkah sehingga bentuknya menyerupai segitiga.
Fasilitas PWM yang disediakan memiliki resolusi 8 hingga 10 bit. Mode operasinya meliputi Fast PWM (FPWM), Phase Correct PWM(PCPWM), dan
Phase and Frequency Correct PWM (PFCPWM). Pada mode Fast PWM, Timer/
Counter1 akan mencacah ulang dari nol (BOTTOM) setiap kali terjadi limpahan
(overflow). Segitiga yang terjadi adalah segitiga siku-siku. Sedangkan pada dua
sehingga segitiga berbentuk sama kaki dengan puncak pada nilai TOP. Perbedaan utama pada mode PCPWM da PFCPWM adalah waktu perbaruan nilai OCR1A/B. Mode PCPWM memperbarui OCR1A/B saat nilai TOP, sedangkan pada PFCPWM saat nilai BOTTOM.
Gambar 2.5 menunjukkan modulasi nilai TCNT1 oleh OCR1A pada mode FPWM. Perubahan nilai OCR1A menjadi lebih kecil menunjukkan pulsa yang menyempit pula. Durasi pulsa saat nilai OCR1A lebih besar daripada nilai TCNT1 disebut waktu ON (tON). Sebaliknya, ketika nilai OCR1A lebih kecil, disebut
waktu OFF (tOFF). Perbandingan tON erhadap periode PWM disebut duty cycle,
yang nilainya maksimal 100%.
Gambar 2.5. Fast Pulse Width Modulation
Dalam mengakses PWM, terdapat prose pengaturan register-register I/O yang terlibat. Proses pengaturan tersebut meliputi:
a. Menetukan sumber dan frekuensi clock yang digunakkan Timer/Counter1
untuk sumber clock eksternal. Sumber dan frekuensi clock ini ditentukan oleh bit-bit CS12:0 (Clock Select) pada register TCCR1B. Tabel 2.3 menunjukkan pilihan frekuensi yang tersedia dan bit-bit yang menentukkannya.
Tabel 2.3. Konfigurasi Bit-bit CS12:0
b. Menentukan nilai OCR1A/B sebagai pemodulasi
Untuk memperoleh duty cycle yang diinginkan, penggunaan harus menentukkan nila OCR1A/B. Dalam mode non-inverting, semakin besar nilai OCR1A/B, semakin besar lebar waktu nyala (tON), sehingga semakin
besar duty cycle. Dan sebaliknya. Sebagai contoh, untuk memperoleh duty
cycle sebesar 50%, maka OCR1A/B harus diisi dengan nilai setengah dari
nilai maksimum Timer/Counter1.
c. Menentukan nilai prescaler
Nilai prescaler merupakan pembagi langsung frekuensi sistem, yang bersama-sama dengan nilai TOP akan menentukan frekuensi PWM. Persamaan (2.2) menunjukkan perhitungan untuk menentukan frekuensi PWM pada mode FPWM.[1]
))
1
(
(
N
TOP
f
f
FPWM XTAL+
=
………..(2.2)
2.1.2 Asitektur ATmega8535
Mikrokontroler ATmega8535 memiliki fitur-fitur utama, seperti berikut.
1. Saluran I/O sebanyak 32 buah yaitu PortA, PortB, PortC dan PortD.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga unit Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kbyte dengan kemampuan Read While
8. Unit interupsi internal dan eksternal.
9. Port antarmuka ISP.
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi,
11. Antarmuka komparator analog.
12. Port USART untuk komunikasi serial
Mikrokontroler AVR ATMega8535 merupakan mikrokontroler produksi Atmel dengan 8 Kbyte In-System Programmable-Flash, 512 Byte
EEPROM dan 512 Byte Internal SRAM. AVR ATMega8535 memiliki seluruh fitur yang dimiliki oleh AT90S8535. Selain itu, konfigurasi pin AVR ATMega8535 juga kompatibel dengan AT90S8535.
Diagram blok arsitektur ATMega8535 ditunjukkan oleh gambar 2.6. Terdapat sebuah inti prosesor (processor core) yaitu Central
Processing Unit, di mana terjadi proses pengumpanan instruksi (fetching)
dan komputasi data. Seluruh register umum sebanyak 32 buah terhubung langsung dengan unit ALU (Arithmatic and Logic Unit). Terdapat empat buah port masing-masing delapan bit dapat difungsikan sebagai masukkan maupun keluaran.
USART (Universal Synchronous and Asychronous Serial Receiver and
Transmitter), serta TWI (Two-wire Serial Interface).
Gambar 2.6. Arsitektur ATMega8535
Di samping itu terdapat fitur tambahan, antara lain AC (Analog
Comparator), 8 kanal 10-bit ADC (Analog to Digital Converter), 3 buah
(Sleep Mode), serta osilator internal 8 MHz. seluruh fitur terhubung ke bus 8 bit. Unit interupsi menyediakan sumber interupsi hingga 21 macam. Sebuah stack pointer selebar 16 bit dapat digunakan untuk menyimpan data sementara saat interupsi. Mikrokontroler ATMega8535 dapat dipasang pada frekuensi kerja hingga 16 MHz (maksimal 8 MHz untuk versi ATMega8535L). Sumber frekuensi bias dari luar berupa osilator kristal, atau menggunakan osilator internal.
Keluarga AVR dapat mengakses instruksi dengan cepat karena menggunakan teknik ”memegang sambil mengerjakan” (fecth during
execution). Dalam satu siklus clock, terdapat dua register independen yang
dapat diakses oleh satu instruksi.[1]
2.1.3 Konfigurasi Pin
ATMega8535 terdiri atas 40 pin dengan konfigurasi dapat dilihat pada table 2.4. [1]
Tabel 2.4. Deskripsi Pin
2.1.4 Peta Memori
Arsitektur AVR terdiri atas dua memori utama, yaitu Data Memori dan Program Memori. Sebagai tambahan fitur dari ATMega8535, terdapat EEPROM 512 byte sebagai memori data dan dapat diprogram saat operasi.
ATMega8535 terdiri atas 8 Kbyte On-chip In-System Reprogrammable
Flash Memory untuk menyimpan program. Karena seluruh instruksi AVR dalam
mendukung keamanan software atau program, Flash Program memori dibagi menjadi dua bagian yaitu bagian Boot Program dan bagian Application Program. Gambar 2.8 mengilustrasikan susunan Memori Program Flash ATMega8535
Gambar 2.8. Peta Memori Program
Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM Internal. Konfigurasi memori data ditunjukkan oleh gambar 2.9. [1]
2.1.5 Stack Pointer
Stack pointer merupakan suatu bagian dari AVR yang berguna untuk
menyimpan data sementara, variabel lokal, dan alamat kembali dari suatu interupsi ataupun subrutin. Stack pointer diwujudkan sebagai dua unit register, yaitu SPH dan SPL.
Saat awal, SPH dan SPL akan bernilai 0, sehingga perlu diinisialisasi terlebih dahulu. SPH merupakan byte atas (MSB), sedangkan SPL merupakan
byte bawah (LSB). Hal ini hanya berlaku untuk AVR dengan kapasitas SRAM lebih dari 256 byte. Bila tidak, maka SPH tidak didefinisikan dan tidak dapat digunakan.[1]
2.1.6 Timer ATMega8535
AVR ATMega8535 memiliki 3 buah timer, yaitu Timer/Counter0 (8 bit),
Timer/Counter1 (16 bit),dan Timer/Counter2 (8 bit).[1]
2.1.6.1 Timer/Counter0
Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari
Timer/Counter0 pada ATMega8535 adalah sebagai berikut.
a. Counter 1 kanal.
b. Timer di-nol-kan saat proses pembanding tercapai (compare match).
d. Sebagai pembangkit frekuensi.
e. Clock prescaler 10 bit.
f. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0). [1]
2.1.6.2 Timer/Counter1
Timer/Counter1 adalah Timer/Counter 16 bit yang memungkinkan program
pewaktu lebih akurat. Fitur-fitur dari Timer/Counter1 ini adalah sebagai berikut.
a. Desain 16 bit, sehingga memungkinkan untuk menghasilkan PWM 16 bit.
b. Dua buah unit pembanding.
c. Dua buah register pembanding.
d. Satu buah input capture unit.
e. Timer di-nol-kan saat proses pembanding tercapai (match compare).
f. Dapat menghasilkan gelombang PWM.
g. Periode PWM yang dapat diubah-ubah.
h. Sebagai pembangkit frekuensi.
2.1.6.3 Timer/Counter2
Timer/Counter2 adalah Timer/Counter 8 bit yang fungsi. Fitur-fitur untuk
Timer/Counter2 pada ATMega8535 adalah sebagai berikut.
a. Sebagai counter 1 kanal.
b. Timer di-nol-kan saat proses pembandingan tercapai (match compare).
c. Dapat menghasilkan gelombang PWM.
d. Sebagai pembangkit frekuensi.
e. Clock prescaler 10 bit.
f. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).
Untuk memilih sumber clock yang akan digunakan oleh Timer/Counter2
dengan mengatur Bit 2,1,0-CS22, CS21, CS20: Clock Select. Pengaturan dari bit-bit ini dapat dilihat pada Tabel 2.5. [1]
2.2 Fotodioda (
Photodiode
)
Fotodioda adalah salah satu alat yang dibuat untuk berfungsi paling baik berdasarkan kepekaannya terhadap cahaya. Pada dioda ini, sebuah jendela memungkinkan cahaya masuk melalui pembungkus dan mengenai persambungan
pn. Silikon, yaitu bahan material di mana transistor dan rangkaian terintegrasi dibuat, akan mengalami perubahan resistansi listrik saat dikenai cahaya. Fotodioda sebenarnya tidak berbeda dari dioda biasa yang ditempatkan di dalam material transparan, sehingga memungkinkan cahaya mengenainya (sedangkan pada dioda biasa, kotaknya berupa logam atau plastik). Pada saat dihubungkan dengan rangkaian listrik, fotodioda dapat digunakan untuk menghasilkan sinyal listrik yang besarnya tergantung pada jumlah cahaya yang mengenainya. [2]
Gambar 2.10 menunjukan lambang skematis fotodioda. Panah yang mengarah ke dalam melambangkan cahaya yang datang. Sumber dan tahanan seri memberikan prategangan balik pada fotodioda. Bila cahaya makin cerah, arus balik naik. Dalam fotodioda yang lazim, arus balik tersebut besarnya sedikit puluhan mikroamper.[2]
2.3 Light Emiting Diode (LED)
Pada LED dengan bias tegangan maju, electron bebas melintasi sambungan dan jatuh ke dalam hole. Ketika electron jatuh dari tingkat energi tinggi ke rendah, electron akan mengeluarkan energi. Pada dioda biasa, energi dikeluarkan dalam bentuk panas. Tetapi pada LED, energi dikeluarkan dalam bentuk sinar. Dengan menggunakan elemen seperti gallium, arsenik, dan fosfor,
pabrik dapat memproduksi LED berwarna merah, hijau, kuning, biru, orange / jingga, dan inframerah / infrared (tak terlihat).[2]
2.3.1 Tegangan dan Arus LED
LED mempunyai penurunan tegangan lazimnya dari 1,5 V sampai 2,5 V untuk arus di antara 10 dan 50 mA. Penurunan tegangan yang tepat tergantung dari arus LED, warna, kelonggaran, dan sebagainya. Kecermelangan LED tergantung dari arusnya. Idealnya, cara terbaik untuk mengendalikan kecermelangan ialah dengan menjalankan LED dengan sumber arus. Berikut rangkaian LED [2][3]
Gambar 2.10. Rangkaian LED
S LED S
R V V
Dimana : VLED = penurunan tegangan LED (Volt)
Vs = Tegangan sumber (volt)
Rs = Resistor yang tersusun seri dengan LED (Ohm)
I = Arus (Ampere)
Makin besar tegangan sumber, makin kecil pengaruh VLED. Dengan kata lain Vs
yang besar menghilangkan pengaruh perubahan tegangan VLED. Biasanya, arus
LED ada diantara 10 mA sampai 50 mA karena daerah ini memberikan cahaya yang cukup untuk banyak pemakai.[2][3]
2.4 Saklar Batas (
Limit Switch
)
Saklar batas atau lebih dikenal dengan Limit switch merupakan salah satu jenis kontak yaitu komponen yang berfungsi untuk menghubungkan dan memutuskan arus. Sifat dari limit switch ini yaitu kontak yang terputus atau tersambung saat ditekan dan akan kembali ke keadaan semula saat tidak ditekan
(momentary contact). Pada limit switch terdapat tiga terminal yaitu common
(COM), terminal normally open (NO) dan terminal normally closed (NC).
Terminal NO merupakan terminal yang pada kondisi normal berupa kontak terputus atau tidak tersambung dengan COM sedangkan terminal NC berupa kontak pada kondisi normal tersambung dengan COM. Setiap titik sambungan pada limit switch terbuat dari bahan yang tahan busur api (arc) yang disebabkan saat arus terputus atau tersambung. Simbol keadaan limit switch ada pada gambar 2.11. [6]
2.5 IC Driver L293D
IC ini merupakan IC tegangan tinggi (high voltage), keempat saluran driver
berarus tinggi (600mA per-saluran dan 1,2A puncak arus keluaran (non repetitive) persaluran) dirancang untuk level logika TTL atau DTL dan men-drive beban induktif (seperti relay, solenoid, motor DC dan motor stepper) dan switching
transistor daya.
Gambar 2.21. IC L293D
Agar mudah digunakan sebagai dua jembatan (bridge), setiap pasang saluran
dioda pengaman yang terdiri dari 4 buah. Alat ini bisa digunakan untuk aplikasi
switching pada frekuensi sampai 5kHz. Masukan untuk supply terpisah agar
mudah digunakan untuk bekerja pada tegangan yang rendah. Gambar 2.21 merupakan gambar blok diagram dan pin connections dari IC L293D.[8]
2.6 LCD (Liquid Crystal Display)
2.6.1 Gambaran Umum.
Banyak sekali kegunaan LCD dalam perancangan suatu sistem yang menggunakan mikrokontroler. LCD (Liquid Crystal Display) adalah komponen yang berfungsi untuk menampilkan suatu karakter pada suatu tampilan (display) dengan bahan utama yang digunakan berupa Liquid Crystal. Apabila diberi arus listrik sesuai dengan jalur yang telah dirancang pada konstruksi LCD, Liquid
Crystal akan berpendar menghasilkan suatu cahaya dan cahaya tersebut akan
membentuk suatu karakter tertentu. Gambar konstruksi LCD[9]dapat dilihat pada gambar 2.22.
Untuk LCD [11] 016M002A merupakan modul LCD dengan tampilan 4 x 16 (4 baris, 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD memiliki CGROM (Character General Read Only Memory), CGRAM
(Character General Random Access Memory) , dan DDRAM (Display Data
Random Access Memory).
Gambar 2.23 LCD 4 x 16
LCD bertipe ini memungkinkan pemrogram untuk mengoperasikan komunikasi data secara 8 bit atau 4 bit. Jika menggunakan jalur data 4 bit akan ada 7 jalur data (3 untuk jalur kontrol dan 4 untuk jalur data). Jika menggunakan jalur data 8 bit maka akan ada 11 jalur data (3 untuk jalur kontrol dan 8 untuk jalur data). Tiga jalur kontrol ke LCD ini adalah EN (Enable), RS (Register
Select) dan R/W (Read/Write). Gambar 2.23 adalah contoh LCD (4 x 16) yang
digunakan.
Tabel 2.6 Konfigurasi Pin LCD
2.6.2 Register
016M002A memiliki dua buah register yang aksesnya diatur menggunakan kaki RS. Pada saat RS berlogika 0, register yang diakses adalah register perintah, dan pada saat RS berlogika 1, register yang diakses adalah register data.
2.6.2.1 Register Perintah
Register tersebut adalah register di mana perintah-perintah dari mikrokontroler ke 016M002A pada saat proses penulisan data atau tempat status dari 016M002A dapat dibaca pada saat pembacaan data.
a. Penulisan Data ke Register Perintah
menggunakan mode 4-bit interface. Kondisi RS berlogika 0 menunjukkan akses data ke register perintah. RW berlogika 0 menunjukkan proses penulisan data akan dilakukan. Nibble tinggi (bit-7 sampai bit-4) terlebih dahulu dikirimkan diawali pulsa logika 1 pada E clock. Selanjutnya Nibble rendah (bit-3 sampai bit-0) dikirimkan diawali pulsa logika 1 pada E clock lagi. Untuk mode 8-bit interface, proses penulisan dapat dilakukan langsung 8-bit (bit-7...bit-0) diawali pulsa logika 1 pada E clock.
Gambar 2.24 Diagram Pewaktuan Penulisan Data ke Register Perintah Mode 4-bit 13
b. Pembacaan Data dari Register Perintah
(nibble tinggi dan rendah) dilakukan sekaligus diawali sebuah pulsa logika 1 pada E clock.
Gambar 2.25 Diagram Pewaktuan Pembacaan Data ke Register Perintah Mode 4-bit
Variasi perintah-perintah yang dapat diakses pada LCD jenis 016M002A dapat dilihat pada tabel 2.7.
Keterangan:
2.6.2.2 Register Data
Register data adalah register di mana mikrokontroler dapat menuliskan atau membaca data dari atau ke dalam DDRAM. Penulisan data pada register akan menempatkan data tersebut ke DDRAM sesuai dengan alamat yang telah diatur sebelumnya.
a. Penulisan Data ke Register Data
Gambar 2.26 Diagram Pewaktuan Penulisan Data ke Register Data Mode 4-bit
b. Pembacaan Data dari Register Data
Pembacaan data dari register data dilakukan untuk membaca kembali data yang tampil pada LCD. Proses dilakukan dengan mengatur RS pada logika 1 yang menunjukkan adanya proses pembacaan data. Data 4-bit Nibble
tinggi (bit-7 hingga bit-4) dibaca dengan diawali adanya pulsa logika 1 pada E
clock dan dilanjutkan dengan data 4-bit Nibble rendah (bit-3 hingga bit-0)
yang juga diawali dengan pulsa logika 1 pada E clock.
Secara singkat kerja dari robot ini adalah sebagai berikut: setelah konsumen memesan jenis makanan serta nomor meja pada meja reservasi, robot diberi perintah untuk mengantar makanan tersebut melalui masukan dari tombol-tombol (pushbutton) sesuai dengan nomor meja yang dipesan. Dengan sendirinya robot akan mengantar makanan ke meja tujuan sesuai dengan tombol yang telah ditekan oleh operator. Berjalannya robot ini berdasarkan line follower (pengikut garis) artinya robot akan mengantarkan pesanan makanan ke meja tujuan yang telah ditetapkan dengan mengikuti track/jalur berupa garis putih yang dideteksi oleh sensor yang berada di bagian bawah robot. Pertama robot akan menuju ke meja koki dan buzzer berbunyi menandakan adanya pesanan. Robot akan menunggu sampai koki sudah meletakkan pesanan di robot dengan benar (limit
switchon), jika sudah benar maka robot menunggu sampai koki menekan tombol
”OK”, untuk menandakan robot siap jalan. Setelah sampai pada meja tujuan maka
buzzer berbunyi dan makanan siap disajikan oleh pelanggan itu sendiri (self
service). Robot akan kembali ke meja reservasi setelah makanan disajikan (limit
switch off), dan robot akan menunggu perintah selanjutnya.
Pada tugas akhir ini robot dibuat berbasis mikrokontroler ATMega8535 sebagai komponen kontrol semua sistem. Sensor pendeteksi garis berupa inframerah sebagai pemancar dan fotodioda sebagai penerima. Garis lintasan
dibuat 4 percabangan dan satu untuk reservasi. Motor penggerak roda kanan dan kiri menggunakan motor DC 12 Volt, dan untuk driver menggunakan IC driver
L293D. Komponen pendukung lainnya berupa tombot-tombol (pushbutton) sebagai masukan nomor meja tujuan dan menu makanan yang dipesan. Sebuah
buzzer sebagai penanda bunyi bahwa robot telah sampai tujuan dan LCD sebagai
penampil menu makanan dan nomor meja-meja Keuntungan dari robot ini selain praktis dan ekonomis juga dapat mengefisienkan tenaga kerja manusia. Selain sebagai pengantar makanan secara otomatis, prototipe robot ini dapat pula digunakan sebagai acuan dalam mengikuti kontes robot Indonesia yang diadakan setahun sekali.
Diagram blok dari rangkaian robot pengantar makanan di restoran dapat dilihat pada gambar 3.1.
Gambar 3.1. Blok Rangkaian Robot Pengantar Makanan Di Restoran
a. Tombol-tombol (menentukan nomor meja dan menu yang dipesan)
dan limitswitch (menentukan posisi makanan apakah sudah diletakkan
atau belum pada robot) akan memberi masukan pada mikrokontroler dan akan menjalankan motor DC sesuai meja yang telah dipesan.
b. Sensor akan mendeteksi garis (line) yang akan menentukan kecepatan gerak roda kiri dan kanan berdasarkan pengaturan PWM (Pulse Width
Modulation).
c. Sebelum ke motor, karena keluaran dari mikrokontroler sangat kecil maka keluaran yang dihasilkan oleh mikrokontroler dilewatkan terlebih dahulu ke rangkaian driver motor.
d. Jika makanan telah diantar ke tempat tujuan, buzzer akan berbunyi dan makanan siap disajikan. Robot akan kembali ke meja reservasi setelah mengantar makanan sesuai meja yang telah dipesan (limit switch telah off).
e. LCD berfungsi menampilkan nomor-nomor meja dan menu-menu makanan yang tersedia.
3.1 Model Sistem
Gambar 3.2. Desain Robot Pengantar Makanan
3.2 Sensor Jalur
Sensor jalur akan memberikan masukkan tegangan pada port ADC (portA) dan akan dikonversi oleh ADC sehingga menjadi data digital (dalam bit). Untuk ketelitian ADC dari mikrokontroler ATMega8535 yaitu 10 bit.
Gambar 3.3. Kondisi Kaki Anoda Photodioda Terhadap Permukaan Hitam dan Putih
perbedaan tanggapan fotodioda terhadap permukaan hitam dan putih yang menjadi dasar dari rangkaian yang akan dirancang.
Tabel 3.1. Kondisi Kaki Anoda Fotodioda Terhadap Permukaan Hitam dan Putih
Permukaan Kondisi Kaki Anoda
Hitam 0 (LOW)
Putih 1 (HIGH)
Berdasarkan dasar teori LED, dengan menentukan arus LED sebesar 15 mA dan VLED adalah 1,5 Volt. Dengan Vcc (catu daya) 5 Volt, maka dapat
dicari Rs dengan persamaan 2.3 sebagai berikut :
Ω = − = − = − 33 , 233 10 15 5 , 1 5 3 S S LED S S R x R I V V R
Resistor yang digunakan adalah 270Ω karena nilainya mendekati 233,33Ω dan ada dipasaran. Besarnya nilai resistor yang digunakan untuk LED juga digunakan LED inframerah.
Tabael 3.2 Karakteristik Fotodioda Hasil Pra Penelitian
VCC(Volt) RD (KΩ )
VD Deteksi Hitam(Volt) VD Deteksi Putih(Volt) Beda Tegangan (Volt) 4,5
100 3,96 3,9 0,06
200 3,88 3,78 0,1
300 3,84 3,68 0,16
400 3,77 3,55 0,22
470 3,74 3,46 0,28
500 3,72 3,43 0,29
560 3,68 3,36 0,32
680 3,62 3,24 0,38
700 3,58 3,23 0,35
800 3,57 3,23 0,34
* NB: jarak sensor dengan jalur 1,5 cm
kondisi ruangan lampu menyala dan sinar matahari masuk
Besar nilai ADC dapat diketahui dengan persamaan 2.1 yaitu:
REF IN
V V
ADC= ⋅1024
Dapat dilihat pada tabel 3.3 hasil perhitungan ADC berdasarkan nilai yang didapat dari pra penelitian dengan ketelitian ADC yang digunakan yaitu 10 bit.
Tabel 3.3 Level ADC Terhadap Tanggapan Fotodioda
RD(KΩ ) ADCHitam ADCPutih Level ADC (ADCPutih-ADCHitam)
100 902 888 14
200 883 861 22
300 874 838 36
400 858 808 50
470 852 788 64
500 847 781 66
560 838 765 73
680 824 738 86
700 815 736 79
Dari tabel 3.2 dan 3.3 dapat dilihat beda tegangan dan level ADC saat RD 680KΩ
lebih besar dibandingkan saat nilai RD yang lain, sehingga RD yang digunakan
sebesar 680KΩ .
Dari nilai ADC yang telah diketahui akan diproses oleh mikrokontoler sehingga memberikan logika high (1) atau low (0) yang sebelumnya telah ditentukan melalui program. Dari logika yang diberikan akan menentukan besarnya kecepatan putaran dan arah putar motor.
Gambar 3.4 Rangkaian Utama Sensor Jalur
Pada robot pengantar makanan ini digunakan sensor pendeteksi jalur sebanyak delapan buah yang berada di bawah bagian robot. Penggunaan delapan buah sensor ini agar semakin akurat mendeteksi jalur dan semakin kecil error
yang terjadi. Rangkaian utama dari sensor jalur dapat dilihat paga gambar 3.4. Kedelapan sensor dibuat identik/sama.
Posisi sensor dan jarak tiap sensor sangat berpengaruh dengan pergerakkan robot. Oleh karena itu harus benar-benar diperhatikan.
Gambar 3.5 Posisi Sensor pada Robot dan Jarak Antar Tiap Sensor
3.3 Perancangan Jalur/
Track
Gambar 3.6 merupakan bentuk desain jalur yang akan dilewati oleh robot dan posisi meja yang akan dituju. Meja yang dapat dipesan sebanyak 4 meja. Robot akan stand by di meja reservasi menunggu pelanggan memesan makanan dan nomor meja. Jalur yang dideteksi (jalur putih) selebar 3 cm dengan sisi luar berwarna hitam. Jarak antar tiap meja yaitu 70 cm. Total jarak dari meja 1 ke meja 4 adalah 315 cm. Untuk jarak meja reservasi ke meja koki 200 cm.
3.4 Tombol Pushbutton
Gambar 3.7 merupakan gambar rangkaian untuk pushbutton sebagai masukan mikrokontroler pada portB.
Cancel OK Tombol4 Tombol3 Tombol2 Tombol1 Tombol6 Tombol5 Port Mikro
1 2 3 4 5 6 7 8 9 10
OK Tombol1 Tombol3 Tombol5
Tombol6 Tombol4 Tombol_Cancel
330 Tombol2 10nF 10nF 10nF 10nF 10nF 10nF 10nF 10nF
Pelanggan dapat memesan makanan dan nomor meja melalui penekanan tombol pushbutton yang telah disediakan. Pushbutton digunakan sebagai masukan untuk mikrokontroler yang dihubungkan di portB. Ada 2 jenis tombol yang dapat digunakan pada mikrokontroler yaitu tombol dengan aktif logika rendah dan tombol dengan aktif logika tinggi. Pada robot pengantar makanan ini pushbutton
dirancang aktif saat logika rendah. Jika pushbutton berlogika rendah maka mikrokontroler akan menjalankan instruksi yang telah diprogram sesuai
pushbutton yang ditekan atau dipilih.
Kapasitor yang ada pada rangkaian digunakan untuk mengantisipasi terjadinya bounching tegangan saat saklar pushbutton ditekan atau dilepas.
3.5 Driver L293D Sebagai Penggerak Motor
Pada robot pengantar makanan ini driver motor yang digunakan adalah IC driver L293D. Driver ini berfungsi sebagai penggerak motor DC 12 volt. Sebelum keluaran dari mikrokontroler ke motor, dilewatkan terlebih dahulu ke rangkaian
driver motor karena keluaran dari mikrokontroler sangat kecil (arus berkisaran
U1 L293D 2 7 10 15 1 9 3 6 11 14 1 6 8
4 5 13 12
1A 2A 3A 4A 1,2EN 3,4EN 1Y 2Y 3Y 4Y V C C 1 V C C 2 G N D G N D G N D G N D PortD 0-3 1 2 3 4 Motor1 1 2 Motor2 1 2 Enable 1 2 VCC 1 2 VS 1 2
Gambar 3.8 Rangkaian driver L293D
Arah putar motor dapat diatur dengan mengatur masukan driver melalui mikrokontroler yaitu menggunakan program dengan memberi logika 1 (aktif) atau logika 0 (tidak aktif) dengan mengaktifkan pin enable terlebih dahulu. Dapat dilihat pada tabel 3.4.
Tabel 3.4. Tabel Arah Putaran Motor
A B Arah Putaran
0 0 Diam
0 1 Berlawanan arah putaran jarum jam
1 0 Searah putaran jarum jam
1 1 Diam
Untuk pengaturan kecepatan menggunakan prinsip PWM (Pulse Width
modulation) yang diatur melalui program dengan masukan yang diperoleh dari
3.6 LCD
LCD ini digunakan sebagai penampil keluaran mikrokontroler khusus untuk mode tampilan pesan. LCD yang digunakan adalah LCD yang menggunakan chip kontroler Hitachi HD44780, misalnya 016M002A. LCD bertipe ini memungkinkan pemrogram untuk mengoperasikan komunikasi data secara 8 bit atau 4 bit. Jika menggunakan jalur data 4 bit akan ada 7 jalur data (3 untuk jalur kontrol dan 4 untuk jalur data). Jika menggunakan jalur data 8 bit maka akan ada 11 jalur data (3 untuk jalur kontrol dan 8 untuk jalur data). Tiga jalur kontrol ke LCD ini adalah EN (Enable), RS (Register Select) dan R/W (Read/Write).
Interface LCD[7] merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8 bit dikirim ke LCD secara 4 atau 8 bit pada satu waktu. Jika mode 4 bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8 bit (pertama dikirim 4 bit MSB lalu 4 bit LSB dengan pulsa clock EN setiap nibblenya). Mengirim data secara paralel baik 4 atau 8 bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi
interface LCD. Penentuan mode operasi merupakan hal yang paling penting.
diutamakan, maka dipilih mode 4 bit. Interface LCD dengan mode 4 bit dapat dilihat pada gambar 3.9.
Gambar 3.9 Interface LCD Mode 4 Bit
3.7 Perancangan Rangkaian Keseluruhan
Gambar 3.10 menggambarkan ilustrasi rangkaian keseluruhan dari robot pengantar makanan dan dapat dilihat fungsi-fungsi tiap port mikrokontroler. Tiap komponen dihubungkan dengan mikrokontroler ATMega8535 sebagai pengendali sistem. Sistem akan dikendalikan melalui program, dengan kapasitas
memori flash ATMega8535 sebesar 8 kbyte dengan kemampuan read while write.
Gambar 3.10 Ilustrasi Rangkaian Keseluruhan dan Fungsi-fungsi Tiap Port
Untuk mengetahui kapasitas catu daya/baterai yang digunakan maka dilakukan pra penelitian untuk mendapatkan arus total maksimum yang digunakan/konsumsi oleh rangkaian utama dan motor (beban dan tanpa beban). Untuk spesifikasi dan kapasitas catu daya yang digunakan dapat dilihat pada tabel 3.5 dan 3.6.
Tabel3.5 Spesifikasi dan Kapasitas Catu Daya Untuk Rangkaian Utama
3.8 Perancangan Perangkat Lunak
3.8.1 Diagram Alir Program Utama
Start
Proses Pemesanan Makanan dan Nomor Meja
A
Inisialisasi
PortA untuk Sensor Jalur
PortC untuk LCD
PortD(0-5) untuk Driver Motor
PortD(6) Untuk Buzzer
PortD(7) untuk Limit Switch
PortB PushButton
Sudah Berhenti?
Tidak
Putar 360 Derajat
Buzzer Berbunyi Ya
Makanan Sudah diletakkan pada Robot ?
Tidak
Tekan “OK” ?
Ya Buzzer off Ya B A Makanan Sudah Disajikan ? Buzzer Berbunyi Buzzer off
Tunggu 2 detik Sudah Berhenti? Tidak B Ya C C
Putar 360 Derajat
Ya Tidak Tidak Subrutin Cuplik Sensor Subrutin Cuplik Sensor
Alamat-alamat memori untuk register yang akan digunakan harus diinisialisasi terlebih dahulu, misalnya port I/O atau timer bila diperlukan. Setelah tahapan inisialisasi, program akan mengambil data dari register penyimpan data. Pada awal eksekusi program, data yang diambil adalah data inisialisasi awal. Kemudian masukan data baru tersebut akan diproses dan setelah diproses, maka instruksi selanjutnya akan dijalankan. Instruksi-instruksi ini dapat berupa looping
sampai masukan data baru diberikan. Secara umum diagram alir program utama dari robot pengantar makanan dapat dilihat pada gambar 3.11.
Setiap pelanggan harus memesan makanan dan nomor meja melalui robot yang berada di meja reservasi. Pelanggan akan memilih makanan dan nomor meja melalui tombol-tombol yang telah disediakan pada robot. Setelah memesan, pelanggan hanya menunggu di meja yang telah dipesan sampai robot mengantar makanan. Proses pemesanan dapat dilihat pada gambar diagram alir 3.12.
Saat robot telah sampai ke meja koki buzzer akan berbunyi menandakan adanya pesanan. Setelah makanan yang dipesan telah diletakkan dengan benar
(limit switch on) dan koki telah menekan tombol ”OK” maka robot akan
mengantar makanan sesuai dengan nomor meja yang dipesan. Setiap pergerakan atau posisi sensor dihitung agar ketepatan dalam mengantar makanan sesuai dengan yang diharapkan.
Setelah robot sampai di meja tujuan (meja yang dipesan) maka buzzer
makanan telah diambil dan keadaan limit switch off, diberikan jeda 2 detik agar pada saat makanan diangkat robot tidak langsung bergerak ataupun pada saat pengambilan makanan, posisi piring atau mangkuk yang dipegangan belum benar sehingga ada masih ada waktu untuk mengambilnya.
3.8.2 Proses Pemesanan Makanan dan Nomor Meja
Untuk proses pemesanan makanan dan nomor meja dapat dilihat pada gambar diagram alir 3.12.
Start
Tampilkan Menu Makanan dan Nomor Meja
Pesan Makanan dan Nomor Meja?
Tampilkan Makanan yang Dipesan dan Nomor Meja
Ya
End
Tidak
Benar yang Anda Pesan?
Tidak
Ya
3.8.3 Diagram Alir Subrutin Cuplik Sensor
Start
Meja= Nomor Meja+1
Belok Kiri Agak Cepat1
C
Kiri = Kiri + 1
Posisi Sensor = 01111000 01000000
?
B
Belok Kiri Agak Ceapat
Ya
Posisi Sensor = 11100000 11000000 ? Tidak B Ya
Posisi Sensor = 10000000
?
B
Belok Kiri Cepat
Ya Tidak
Posisi Sensor = 11110000 11111000
? Tidak
Ya
Kiri > 1?
Maju Cepat Ya
B
Belok Kiri
Posisi Sensor = 11111111 11111110 01111111 ? Tidak Berhenti Ya B
Antar = Antar + 1
D Ya Ya Ya Tidak Tidak
Posisi Sensor = 00000011
?
Belok Kanan Agak Cepat1
Posisi Sensor = 00000010
?
Belok Kanan Agak Cepat Posisi Sensor =
00000001
?
Belok Kanan Cepat
Tidak
B
B
B
Posisi Sensor = 00001110 00000110
?
Belok Kanan Sedang1
Ya Posisi Sensor =00000100 ? Tidak
Belok Kanan Sedang
Ya
B B
Posisi Sensor = 00011100 00001100 ? Ya Tidak A Tidak
Belok Kanan Lambat1
B Posisi Sensor =
00001111 00011111
?
Itung = Itung + 1
Itung = Meja? Ya
A
Ya
Posisi Sensor = 00011000
?
Maju Cepat Posisi Sensor =
00001000
?
Posisi Sensor = 00010000
?
Belok Kiri Lambat
Ya
B
Belok Kanan Lambat
Ya
Tidak
Tidak
Posisi Sensor = 00111000 00110000
? Tidak
Belok Kiri Lambat1
Ya
Posisi Sensor = 00100000
? Tidak
Belok Kiri Sedang
Ya B B B B B
Belok Kiri Sedang1 Posisi Sensor =
01110000 01100000 ? Ya Tidak C Tidak B B Tidak
Belok Kanan Sedang
Ya B B Belok Kiri D Antar=3? Ya End Tidak B
Tabel 3.7 Persentase Dutycycle dan Arah Putaran Motor
Sensor Mo_Ki Mo_Ka Dutycycle Mo_Ki(%) Dutycycle Mo_Ka(%)
00000001 Maju Mundur 80 35
00000011 00000111
Maju Mundur 50 35
00000010 00011110
Maju Mundur 50 35
00001110
00000110 Maju Mundur 40 30
00000100 Maju Mundur 40 30
00011100
00001100 Maju Mundur 35 30
00001000 Maju Mundur 35 30
00011000 Maju Maju 100 100
00010000 Mundur Maju 30 35
00111000
00110000 Mundur Maju 30 35
00100000 Mundur Maju 30 40
01110000
01100000 Mundur Maju
30 40
01111000
01000000 Mundur Maju
35 50
11100000
11000000 Mundur Maju
35 50
10000000 Mundur Maju 35 80
*NB : Mo_Ka = Motor Kanan
Mo_Ki = Motor Kiri
Posisi Sensor bit yang paling kanan LSB (portA 0) dan yang paling kiri
MSB (portA 7).
Untuk menjelaskan posisi sensor yang dimaksud dari tabel 3.7 dapat dilihat pada gambar 3.12.
Untuk mengetahui suatu alat atau program dapat bekerja dengan baik diperlukan pengujian terhadap kinerja alat atau program tersebut. Melalui pengujian-pengujian tersebut, maka akan diperoleh data-data yang dapat memperlihatkan bahwa perangkat keras dan lunak yang dirancang telah bekerja dengan baik atau tidak. Dari data-data tersebut dapat dilakukan analisis terhadap proses kerja alat yang kemudian dapat digunakan untuk menarik kesimpulan dari apa yang disajikan dalam tugas akhir ini.
4.1 Hasil Implementasi
Robot Pengantar Makanan di Restoran
Hasil implementasi pada alat yang dirancang ini menggunakan 8 buah sensor jalur yang dapat dilihat pada gambar 4.1.
Gambar 4.1 Sensor Jalur
Mikrokontroler yang digunakan sebagai otak dari perangkat ini adalah ATMega8535 yang minimum system-nya dapat dilihat pada gambar 4.2.
melalui pin enable dari rangkaian driver (gambar 4.3), mengkonversi keluaran dari sensor jalur (mendeteksi permukaan putih atau hitam), mengatur tampilan-tampilan huruf pada LCD (gambar 4.4) dan mengolah hasil penekanan tombol-tombol (gambar 4.5) yang menjadi masukan data-data untuk menu dan nomor meja yang dipesan.
Gambar 4.2 Minimum Sistem ATMega8535
Gambar 4.3 Rangkaian Driver
Gambar 4.5 Rangkaian Tombol-tombol (PushButton)
Hasil implementasi secara keseluruhan model sistem untuk robot pengantar makanan di restoran berbasis ATMega8535 dapat dilihat pada gambar 4.6.
Gambar 4.6 Model Sistem Robot Pengantar Makanan di Restoran Berbasis ATMega8535
Untuk mengetahui waktu tempuh robot maka dilakukan pengujian menuju ke meja koki dan selanjutnya mengantar makanan ke meja yang dipesan dan kembali ke meja reservasi. Untuk proses peletakan makanan dan pengambilan makanan dilakukan dengan cepat tanpa ada delay sehingga dapat diketahui rata-rata waktu tempuh untuk tiap meja. Tabel 4.1 merupakan data pengujian waktu yang dibutuhkan robot mengantar makanan (beban dan tanpa beban). Gambar 4.7 menunjukkan bentuk lintasan yang digunakan.
Tabel 4.1 Data Waktu Tempuh Robot Mengantar Makanan
Tujuan Jarak (cm) Waktu Tempuh (s) (tanpa beban) Waktu Tempuh (s) (beban) Rata-Rata Waktu (s) (tanpa beban) Rata-Rata Waktu (s) (beban) Selisih Waktu (s)
Meja 1 320
36 37,8
35,75 37,44 1,69
35,34 37,12
35,75 37,03
35,89 37,82
Meja 2 370
40 41,21
39,87 41,43 1,56
40,03 41,56
39,45 40,96
39,98 42
Meja 3 420
45,95 48,39
45,71 48,15 2,44
45,51 47,88
45,90 48,04
45,46 48,3
Meja 4 470
49,6 51,86
49,72 51,65 1,9
49,4 52,06
50 51,44
49,87 51,23
Rata-Rata 1,9
* NB : Tanpa beban hanya menggunakan piring.
: Beban menggunakan beban maksimum (8 Ons).
Gambar 4.7 Bentuk Lintasan
Untuk lintasan mengalami perubahan panjang lintasan dan warna jalur yang dideteksi sensor, yang awalnya sensor mendeteksi jalur putih berubah mendetaksi jalur hitam. Hal ini dikarenakan untuk mempermudah dalam mengimplementasikan karena lantai restoran menggunakan porselen (keramik) yang berwarna cerah dan dianggap permukaan putih oleh sensor sehingga hanya membuat jalur hitamnya saja dan untuk ukuran dibuat lebih minimalis. Saat pengujian jalur hitam menggunakan selotip dengan lebarnya 2,5 cm (mengikuti lebar dari selotip yang tersedia).
Dari tabel 4.1 dapat diketahui kecepatan robot mengantar makanan untuk tiap meja dengan menggunakan rumus kecepatan yaitu:
) ( ) (
s h WaktuTempu
cm Jarak
V =
Tujuan Jarak (cm) Rata-Rata Waktu (s) (tanpa beban) Rata-Rata Waktu (s) (beban) Kecepatan Rata-Rata (cm/s) (tanpa beban) Kecepatan Rata-Rata (cm/s) (beban)
Meja 1 320 35,75 37,44 8,95 8,55
Meja 2 370 39,87 41,43 9,28 8,93
Meja 3 420 45,71 48,15 9,19 8,72
Meja 4 470 49,72 51,65 9,45 9,1
Dari tabel 4.2 dapat dinyatakan bahwa robot dapat mengantarkan makanan lebih cepat jika berjalan saat robot tidak berbeban. Hal ini dibuktikan dengan data-data hasil pengujian kecepatan rata-rata robot berbeban dan tanpa beban, pada pengujian meja 1 kecepatan rata-rata robot saat tanpa beban lebih cepat daripada kecepatan rata-rata robot saat berbeban begitu juga untuk meja 2, meja 3 dan meja 4.
Pengujian dilakukan untuk mengetahui kecepatan robot mengantar makanan dan kembali ke meja reservasi. Karena semakain cepat robot mengantar dan kembali ke meja reservasi maka semakin kecil motor mengkonsumsi arus dari baterai, dengan spesifikasi dan kapasitas catu daya motor dapat dilihat pada tabel 3.6.
4.3 Hasil Pengujian Keberhasilan Mengantar Makanan
Untuk mengetahui tingkat keberhasilan robot mengantar makanan maka dilakukan pengujian sebanyak 5 kali untuk masing-masing meja.
Tabel 4.3 Data Keberhasilan Robot Mengantar Makanan
Total Pengujian
Meja1 Meja2 Meja3 Meja4
Berhasil Gagal Berhasil Gagal Berhasil Gagal Berhasil Gagal
5 4 1 4 1 5 0 5 0
dapat diketahui dari tabel 4.4 berikut ini.
Tabel 4.4 Data Total Persentase Keberhasilan dan Kegagalan Mengantar Makanan
Total Pengujian (kali) Total Keberhasilan (kali) Total Kegagalan (kali) Persentase Keberhasilan (%) Persentase Kegagalan (%)
20 18 2 90 10
Dari tabel 4.4 secara keseluruhan dapat dinyatakan bahwa robot dapat mengantar makanan meskipun keberhasilannya tidak mencapai 100%. Adanya kegagalan mengantar untuk meja 1 dan meja 2 lebih dikarenakan:
1. Kurang tepatnya pembacaan posisi sensor sehingga proses perhitungan menjadi salah dan ketika dibandingkan maka terjadi perbedaan yang seharusnya instruksi robot berbelok tetapi karena perbandingannya salah maka robot tetap lurus.
2. Proses perhitungannya sudah benar tetapi pada saat berbelok, kondisi sensor yang seharusnya terjadi namun sebaliknya. Posisi sensor kehilangan jalur (loss) s