5
BAB 2
LANDASAN TEORI
2.1 Pengertian Sistem Berdasarkan kutipan buku yang berjudul Analisis dan Desain Sistem Informasi karangan Jogiyanto HM (2005,1) : ”Suatu
sistem
adalah
suatu
jaringan kerja dari prosedur-prosedur yang saling berhubungan,berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu”. Sebuah sistem dapat terdiri dari sistem-sistem bagian (subsistem) masing-masing dapat terdiri dari subsistem-subsistem yang lebih kecil lagi atau terdiri dari komponen-komponen yang saling berinteraksi dan saling berhubungan membentuk suatu ksesatuan sehingga tujuan atau sasaran sistem dapat tercapai.
2.2 Locker Locker atau lemari barang barang adalah benda. Lemari adalah perkakas rumah, tempat menyimpan pakaian dan sebagainya
(Hamzah
Ahmad, Nanda Santoso:1996:44, 222). Merujuk dari referensi tersebut, maka penulis menyimpulkan bahwa lemari barang adalah perkakas rumah
yang
memiliki fungsi untuk menyimpan benda.
2.3 Android
Gambar 2.1 Logo Android
Universitas Sumatera Utara
6
Android adalah sistem operasi untuk handphone yang berbasis linux. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Android merupakan salah satu sistem operasi yang banyak digunakan saat ini. Hal ini didukung dengan support-nya beberapa vendor besar, seperti Samsung, HTC, LG yang menggunkan system opersai ini. Sehingga menjadikan andoid lebih cepat popular dibandingkan system operasi smartphone lainnya. “(Winarno, Edy & Zaki, Ali :2012) Android adalah sistem operasi untuk telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang buat menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat 8 peranti lunak untuk ponsel. Kemudian untuk
mengembangkan
Android, dibentuklah Open Handset Alliance,
konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola,Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Services (GMS) dan kedua adalah yang benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open Handset Distribution (OHD).
2.3.1 Karakteristik Android Andorid merupakan subset perangkat lunak untuk perangkat mobile yang meliputi sistem operasi, middleware, dan aplikasi unit yang di-release oleh Google.
Pada
tulisan
sebelumnya,
kita
mengenal
SDK
(Software
Development Kit). SDK adalah suatu tools dan API yang diperlukan untuk mengembangkan aplikasi pada platform atau linkungan Android. Pengembangan aplikasi Android menggunakan ketahui,
SDK
bahasa
pemrograman
Java.
Seperti
kita
ini dikembangkan oleh OHA (Open Handsate Alliance).
Organisasi OHA ini terdiri atas Googl, Intel, Motorola, Qualcomm, T-Mobile, dan NVIDIA. SDK dapat kita gunakan
pada
beberapa
IDE
(Integrated
Development and Environment) – software untuk membuat suatu program –
Universitas Sumatera Utara
7
akan tetapi, pada tulisan selanjutnya, penulis akan menggunakan Eclipse karena OHA secara resmi membuat plugin untuk IDE Eclipse.
2.4 Buzzer Buzzer adalah suatu alat yang dapat mengubah sinyal listrik menjadi sinyal suara.
Pada
umumnya
buzzer
digunakan
untuk
alarm,
karena
penggunaannya cukup mudah yaitu dengan memberikan tegangan input maka buzzer akan mengeluarkan bunyi. Frekuensi suara yang di keluarkan oleh buzzer yaitu antara 1-5 KHz. (Albert Paul, Prinsip-prinsip Elektronika, 1989 hal: 134).
Gambar 2.2 Simbol dan Fisik Buzzer
Rangkaian Buzzer atau yang biasa disebut sebagai rangkaian alarm pengingat pesan dan tanda pastinya sudah sering ditemukan di beberapa perangkat elektronik di pasar. Pada era teknologi modern ini, pastinya alarm sudah tersedia di beberapa perangkat elektronik seperti ponsel dan juga jam memiliki alarm sebagai tanda peringatan. Rangkaian alarm atau tanda pengingat ini sudah menjadi salah satu penunjang penting dan tidak dapat dipisahkan di beberapa perangkat elektronik tersebut. Rangkaian tanda pengingat ini berfungsi untuk mendeteksi gerakan dan juga cahaya yang bisa membantu Anda mencegah kasus pencurian.
Universitas Sumatera Utara
8
2.5 Mikrokontroler Atmega8
Gambar 2.3 Bentuk Fisik ATmega 8
AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam fungsi. Perbedaannya pada mikro yang pada umumnya digunakan seperti MCS51 adalah pada AVR tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan 512 byte. AVR ATmega8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR RISC yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler dengan konsumsi daya rendah ini mampu mengeksekusi instruksi dengan kecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika dibandingkan dengan ATmega8L perbedaannya hanya terletak pada besarnya tegangan yang diperlukan untuk bekerja. Untuk ATmega8 tipe L, mikrokontroler ini dapat bekerja dengan tegangan antara 2,7 - 5,5 V sedangkan untuk ATmega8 hanya dapat bekerja pada tegangan antara 4,5 – 5,5 V.
Universitas Sumatera Utara
9
2.6 Bluetooth Module HC-05
Gambar 2.4 Bentuk Fisik Bluetooth HC-05
Bluetooth Module HC-05 merupakan module komunikasi nirkabel pada frekuensi 2.4 GHz dengan pilihan koneksi bisa sebagai slave, ataupun sebagai master. Sangat mudah digunakan dengan mikrokontroler untuk membuat aplikasi wireless. Interface yang digunakan adalah serial RXD, TXD, VCC dan GND. Built in LED sebagai indikator koneksi bluetooth. Modul BT ini terdiri dari dua jenis yaitu Master dan Slave. Seri modul BT HC bisa dikenali dari nomor serinya, jika nomer serinya genap maka modul BT tersebut sudah diset oleh pabrik, bekerja sebagai slave atau master dan tidak dapat diubah mode kerjanya, contoh adalah HC-06-S. Modul BT ini akan bekerja sebagai BT Slave dan tidak bisa diubah menjadi Master, demikian juga sebaliknya misalnya HC-04M. Default mode kerja untuk modul BT HC dengan seri genap adalah sebagai Slave. Sedangkan modul BT HC dengan nomer seri ganjil, misalkan HC-05, kondisi default biasanya diset sebagai Slave mode, tetapi pengguna bisa mengubahnya menjadi mode Master dengan AT Command tertentu. Penggunaan utama dari modul BT ini adalah menggantikan komunikasi serial via kabel, sebagai contoh: 1. Jika akan menghubungkan dua sistem mikrokontroler agar bisa berkomunikasi via serial port maka dipasang sebuah modul BT Master pada satu sistem dan modul BT Slave pada sistem lainnya. Komunikasi dapat langsung dilakukan setelah kedua modul melakukan pairing.
Universitas Sumatera Utara
10
Koneksi via bluetooth ini menyerupai komunikasi serial biasa, yaitu adanya pin TXD dan RXD. 2. Jika sistem mikrokontroler dipasangi modul BT Slave maka ia dapat berkomunikasi dengan perangkat lain semisal PC yang dilengkapi adapter BT ataupun dengan perangkat ponsel, smartphone dan lain-lain 3. Saat ini banyak perangkat seperti printer, GPS modul dan lain-lain yang bekerja menggunakan media bluetooth, tentunya sistem mikrokontroler yang dilengkapi dengan BT Master dapat bekerja mengakses devicedevice tersebut Pemakaian module BT pada sistem komunikasi baik antar dua sistem mikrokontrol maupun antara suatu sistem ke device lain tidak perlu menggunakan driver, tetapi komunikasi dapat terjadi dengan dua syarat yaitu : 1. Komunikasi terjadi antara modul BT Master dan BT Slave, komunikasi tidak akan pernah terjadi jika kedua modul sama-sama Master atau samasama Slave, karena tidak akan pernah pairing diantara keduanya 2. Password yang dimasukkan cocok Modul BT yang banyak beredar di sini adalah modul HC-06 atau sejenisnya dan modul HC-05 dan sejenisnya. Perbedaan utama adalah modul HC-06 tidak bisa mengganti mode karena sudah diset oleh pabrik, selain itu tidak banyak AT Command dan fungsi yang bisa dilakukan pada modul tersebut. Diantaranya hanya bisa mengganti nama, baud rate dan password saja. Sedangkan untuk modul HC-05 memiliki kemampuan lebih yaitu bisa diubah mode kerjanya menjadi Master atau Slave serta diakses dengan lebih banyak AT Command, modul ini sangat direkomendasikan, terutama dengan flexibilitasnya dalam pemilihan mode kerjanya.
Universitas Sumatera Utara
11
2.7 Motor Stepper Unipolar
Gambar 2.5 Bentuk Fisik Motor Stepper Unipolar
Motor stepper adalah motor yang digunakan sebagai penggerak/pemutar. Prinsip kerja motor stepper mirip dengan motor DC, sama-sama dicatu dengan tegangan DC untuk memperoleh medan magnet. Bila motor DC memiliki magnet tetap pada stator, motor stepper mempunyai magnet tetap pada rotor. Motor stepper dinyatakan dengan spesifikasi : “berapa phasa “, “berapa derajat perstep”, “berapa volt tegangan catu untuk tiap lilitan” dan ”berapa ampere/miliampere arus yang dibutuhkan untuk tiap lilitan”. Motor stepper tidak dapat bergerak sendirinya, tetapi bergerak secara per-step sesuai dengan spesifikasinya, dan bergerak dari satu step ke step berikutnya memerlukan waktu, serta menghasilkan torsi yang besar pada kecepatan rendah. Motor stepper juga memiliki karakteristik yang lain yaitu torsi penahan, yang memungkinkan menahan posisinya. Hal ini sangat berguna untuk aplikasi dimana suatu sistem memerlukan keadaan start dan stop (Syarkawi, 2007). Motor stepper tidak merespon sinyal clock dan mempunyai beberapa lilitan dimana lilitan-lilitan tersebut harus dicatu (tegangan) dahulu dengan suatu urutan tertentu agar dapat berotasi. Membalik urutan pemberian tegangan tersebut akan menyebabkan putaran motor stepper yang berbalik arah. Jika sinyal kontrol tidak terkirim sesuai dengan perintah maka motor stepper tidak akan berputar secara tepat, mungkin hanya akan bergetar dan tidak bergerak. Untuk mengontrol motor stepper digunakan suatu rangkaian driver yang menangani kebutuhan arus dan tegangan (Syarkawi, 2007).
Universitas Sumatera Utara
12
Karakteristik dari motor stepper menurut Trianto adalah sebagai berikut: 1. Tegangan Tiap motor stepper mempunyai tegangan rata-rata yang tertulis pada tiap unitnya atau tercantum pada datasheet masing-masing motor stepper. Tegangan rata-rata ini harus diperhatikan dengan seksama karena bila melebihi dari tegangan rata-rata ini akan menimbulkan panas yang menyebabkan kinerja putarannya tidak maksimal atau bahkan motor stepper akan rusak dengan sendirinya. 2. Resistansi Resistansi per lilitan adalah karakteristik yang lain dari motor stepper. Resistansi ini akan menentukan arus yang mengalir, selain itu juga akan mempengaruhi torsi dan kecepatan maksimum dan motor stepper. 3. Derajat per step Derajat per step adalah faktor terpenting dalam pemilihan motor stepper sesuai dengan aplikasinya. Tiap-tiap motor stepper mempunyai spesifikasi masing-masing, antara lain: 0.72° per step, 1.8° per step, 3.6° per step, 7.5° per step, 15° per step, dan bahkan ada yang 90° per step. Dalam pengoperasiannya kita dapat menggunakan 2 prinsip yaitu full step atau half step. Dengan full step berarti motor stepper berputar sesuai dengan spesifikasi derajat per stepnya, sedangkan half step berarti motor stepper berputar setengah derajat per step dari spesifikasi motor stepper tersebut. Motor stepper dibedakan menjadi dua kategori besar yaitu: magnet permanen dan reluktansi variabel. Tipe magnet permanen terbagi menjadi dua motor stepper yaitu motor stepper unipolar dan bipolar. Motor
stepper
unipolar
sangat
mudah
untuk
dikontrol
dengan
menggunakan rangkaian counter „-n‟. Motor stepper unipolar mempunyai karakteristik khusus yaitu berupa lilitan center-tapped dan 1 lilitan sebagai common. Lilitan common akan mencatu tegangan pada center-tapped dan sebagai ground adalah rangkaian drivernya. Motor stepper unipolar dapat dikenali dengan mengetahui adanya lilitan center-tapped. Jumlah phase dan motor stepper adalah dua kali dan jumlah
Universitas Sumatera Utara
13
koilnya. Umumnya pada motor stepper unipolar terdapat dua buah koil (Syarkawi, 2007).
Gambar 2.6 Susunan Koil Motor Stepper Unipolar
Tabel 2.1 Pola 1-Phase Putaran Motor Stepper Unipolar
Pada prinsipnya ada dua macam cara kerja motor stepper unipolar, yaitu full-step dan half-step. Terlihat pada Tabel 2.2 dan Tabel 2.3
Tabel 2.2 Pemberian Tegangan Untuk Operasi Full-Step FULLSTEP Tegangan yang diberikan pada lilitan Arah putar searah jarum jam
Arah putar melawan jarum jam
L3
L2
L1
L0
L3
L2
L1
L0
1
1
0
0
0
0
0
0
1
2
0
1
0
0
0
0
1
0
3
0
0
1
0
0
1
0
0
4
0
0
0
1
1
0
0
0
Universitas Sumatera Utara
14
Pada full step, suatu titik pada sebuah kutub magnet di rotor akan kembali mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke 4, dan berikutnya dapat diberikan lagi mulai dari step 1. Setiap step, rotor bergerak searah atau berlawanan dengan jarum jam sebesar spesifikasi derajat per step dan motor stepper. Setiap step hanya menarik sebuah kutub saja. Tegangan „1‟ adalah menunjukkan logika dalam level Transistor Transistor Logic (TTL). Besar tegangan sesungguhnya diatur dengan spesifikasi motor stepper yang dipakai, misalnya dengan menggunakan buffer.
Tabel 2.3 Pemberian Tegangan Untuk Operasi Half-Step HALFSTEP Tegangan yang diberikan pada lilitan Arah putar searah jarum jam
Arah putar melawan jarum jam
L3
L2
L1
L0
L3
L2
L1
L0
1
1
0
0
0
0
0
0
1
2
1
1
0
0
0
0
1
1
3
0
1
0
0
0
0
1
0
4
0
1
1
0
1
1
1
0
5
0
0
1
0
1
1
0
0
6
0
0
1
1
1
1
0
0
7
0
0
0
1
0
0
0
0
8
1
0
0
1
0
0
0
1
Untuk half step, setiap kutub magnet pada rotor akan kembali mendapatkan tarikan dan medan magnet lilitan yang sama setelah step ke 8. berikutnya kembali mulai step 1. Setiap step posisi rotor berubah sebesar setengah derajat dan spesifikasi derajat per step motor stepper. Berbeda dengan motor stepper unipolar, motor stepper bipolar sangat sulit dalam pengontrolannya. Motor stepper jenis ini memerlukan rangkaian driver yang kompleks. Keuntungan motor stepper bipolar adalah ukurannya yang besar dan dapat menghasilkan torsi yang besar daripada motor stepper unipolar. Motor
Universitas Sumatera Utara
15
stepper bipolar di desain dengan koil yang terpisah yang akan di catu dan dua arah (polaritas harus dibalik selama pencatuan). Motor stepper bipolar menggunakan logika yang sama seperti motor stepper unipolar yaitu hanya „0‟ dan „1‟ untuk merespon koilnya.
2.7.1 Prinsip Kerja Motor Stepper Prinsip kerja motor stepper adalah mengubah pulsa-pulsa input menjadi gerakan mekanis diskrit. Oleh karena itu untuk menggerakkan motor stepper diperlukan pengendali motor stepper yang membangkitkan pulsa-pulsa periodik. Berikut ini adalah ilustrasi struktur motor stepper sederhana dan pulasa yang dibutuhkan untuk menggerakkannya :
Gambar 2.7 Prinsip Kerja Motor Stepper Unipolar
Gambar diatas memberikan ilustrasi dari pulsa keluaran pengendali motor stepper dan penerpan pulsa tersebut pada motor stepper untuk menghasilkan arah putaran yang bersesuaian dengan pulsa kendali.
2.7.2 Driver Motor Stepper Unipolar Secara teoritis, sebuah motor stepper dapat digerakkan langsung oleh mikrokontroller (Syarkawi, 2007). Dalam kenyataannya, arus dan tegangan yang dikeluarkan oleh mikrokontroller terlalu kecil untuk menggerakkan sebuah motor stepper. Gerbang-gerbang Transistor Transistor Logic (TTL) mikrokontroller hanya mampu mengeluarkan arus dalam orde mili-ampere dan tegangan antara 2 sampai 2,5 Volt. Sementara itu untuk menggerakkan motor stepper diperlukan arus yang lebih besar (dalam orde ampere) dan tegangan berkisar 5 sampai 24
Universitas Sumatera Utara
16
Volt. Untuk mengatasi masalah tersebut, diperlukan sebuah piranti tambahan yang memenuhi kebutuhan arus dan tegangan yang cukup besar. Rangkaian driver motor stepper merupakan rangkaian “open collector”, dimana output rangkaian ini terhubung dengan ground untuk mencatu lilitan-lilitan motor stepper.
Gambar 2.8 Skema Rangkaian Driver Motor Stepper
Arus keluaran mikrokontroler tidak dapat menggerakkan motor stepper. Maka diperlukan driver untuk mencatu arus motor stepper. Motor stepper terdiri rotor dan stator yang bekerja berdasar sifat magnet, dimana magnet sejenis tolak menolak dan yang berlawanan tarik menarik. Kumparan pada stator membentuk medan magnet saat diberi arus, sehingga motor yang menggunakan magnet akan bergerak untuk mencari kestabilan agar kutub magnet bersesuaian dengan medan magnet yang terjadi. Arah puran motor stepper ditentukan oleh arah urutan arus yang diberikan pada input motor stepper. Motor stepper mempunyai 4 input dan satu input tegangan. Motor stepper dapat berputar kekiri maupun kekanan sesuai dengan input yang diberikan. Untuk perputaran kearah kiri dengan memberikan input ring counter dengan arah kekiri dan untuk berputar kekanan dengan memberikan input ring counter dengan arah kekanan. Motor stepper bergerak setiap satu langkah dengan besar sudut 1,8º jadi untuk berputar satu putaran penuh membutuhkan 200 step. Dengan motor stepper kita dapat memutar motor sesuai dengan yang diinginkan. Kecepatan motor stepper juga dapat diubah sesuai dengan kebutuhan. Dengan mengubah waktu perpindahan dari suatu input ke input lain pada motor stepper.
Universitas Sumatera Utara
17
2.8 Bahasa Pemograman C Struktur bahasa pemograman C (Andrian, 2013):
1. Header File Header File adalah berkas yang berisi prototype fungsi, definisi konstanta dan definisi variable. Fungsi adalah kumpulan kode C yang diberi nama dan ketika nama tersebut dipanggil maka kumpulan kode tersebut dijalankan. Contoh : stdio.h, math.h, conio.h 2. Preprosesor Directive Preprosesor directive adalah bagian yang berisi pengikutsertaan file atau berkas-berkas fungsi maupun pendefinisian konstanta. Contoh: #include <stdio.h>, #include phi 3.14 3. Void Void artinya fungsi yang mengikutinya tidak memiliki nilai kembalian (return). 4. Main ( ) Fungsi main ( ) adalah fungsi yang pertama kali dijalankan ketika program dieksekusi tanpa fungsi main suatu program tidak d apat dieksekusi namun dapat dikompilasi. 5. Statement Statement adalah instruksi atau perintah kepada suatu program ketika program itu dieksekusi untuk menjalankan suatu aksi. Setiap statement diakhiri dengan titik-koma (;)
2.9 Code Vision AVR Code
Vision
AVR
pada
dasarnya
merupakan
perangkat
lunak
pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga
Universitas Sumatera Utara
18
komponen
penting
yang telah diintegrasikan dalam perangkat lunak ini:
Compiler C, IDE dan Program generator.
Berdasarkan spesifikasi yang
dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk microcontroller ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded). Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya. Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, Code Vision AVR ini telah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang deprogram. Code Vision AVR 1.2.4.9 adalah suatu kompiler berbasis bahasa C, yang terintegrasi untuk memprogram dan sekaligus compiler aplikasi AVR (Alf and Vegard‟s Risc processor) terhadap mikrokontroler dengan sistem berbasis window. Code Vision AVR ini dapat mengimplematasikan hampir semua interuksi bahasa C yang sesuai dengan arsitektur AVR, bahkan terdapat beberapa keunggulan tambahan untuk memenuhi keunggulan spesifikasi dari Code Vision AVR yaitu hasil kompilasi studio debugger dari ATMEL. Integrated Development Environtment (IDE) telah diadaptasikan pada chip AVR yaitu In-System Programmer software, memungkinkan programmer untuk mentransfer program ke chip mikrokontroler secara otomatis setelah proses
Universitas Sumatera Utara
19
assembly/kompilasi berhasil. In-System Programmer software didesign untuk bekerja dan dapat berjalan dengan perangkat lunak lain seperti AVR Dragon, AVRISP, Atmel STK500, dan lain sebagainya. Disamping library standar C, Code Vision AVR C compiler memiliki librari lain untuk:
Modul LCD Alpanumerik
Delays
Protokol semikonduktor Maxim/Dallas
Dan lainnya
Code Vision AVR juga memiliki Code Wizard AVR sebagaki generator program otomatis, yang memungkinkan kita untuk menulis, segala bentuk pengaturan Chip dalam
waktu
singkat,
dan
semua
kode
yang
dibutuhkan
untuk
mengimplementasikan fungsi-fungsi seperti: 1. Pengaturan akses External Memory Untuk chip-chip AVR yang memungkinkan koneksi memori eksternal SRAM, dapat juga mengatur ukuran memori dan wait state (tahap tunggu) dari memori ketika memori tersebut diakses.
2. Identifikasi chip reset source Adalah suatu layanan dimana kita dapat membuat kode secara otomatis yang dapat mengidentifikasi kondisi yang menyebabkan chip di reset. 3. Inisialisasi port input/output Pengaturan port-port yang kan dijadikan gerbang masukan dan keluaran dapat secara otomatis digenerate codenya. Yang kita lakukan hanya memilih portport yang akan digunakan sebagai input atau output. 4. Inisialisasi Interupsi external Pengaturan interupsi eksternal yang nantinya akan digunakan untuk menginterupsi program utama 5. Inisialisasi timers/counters Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya digunakan pada interupsi.
Universitas Sumatera Utara
20
6. Inisialisasi timer watchdog Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya digunakan pada interupsi, sehingga interupsi akan dilayani oleh suatu fungsi wdt_timeout_isr. 7. Inisialisasi UART(USART) dan komunuikasi serial Pengaturan komunikasi serial sebagai penerima atau pengirim data. 8. Inisialisasi komparasi analog Pengaturan yang berkaitan dengan masukan data yang digunakan dalam aplikasi yang membutuhkan komparasi pada ADC nya. 9. Inisialisasi ADC Pengaturan ADC(Analog-Digital Converter) yang berfungsi untuk merubah format analog menjadi format digital untuk diolah lebih lanjut. 10. Inisialisasi antarmuka SPI Pengaturan chip yang berkaitan dengan Clock rate, Clock Phase, dan lainnya. 11. Inisialisasi antarmuka Two Wire BUS Pengaturan Chip yang berhubungan dengan pola jalur komunikasi antara register yang terdapat pada chip AVR.
12. Inisialisasi antarmuka CAN Pengaturan chip yang lebih kompleks, yang dapat mengatur interupsi, transmisi data, timers, dan lainnya. 13. Inisialisasi sensor temperatur, thermometer, dan lainnya Pengaturan yang berhubungan dengan sensor temperatur one wire bus, memiliki fungsi-fungsi yang ada pada librari CodeVisionAVR. 14. Inisialisasi one wire bus Pengaturan yang berhubungan dengan sensor temperatur yang memiliki fungsi-fungsi yang ada pada librari CodeVisionAVR. Seperti Maxim/Dallas Semiconductor. 15. Inisialisasi modul LCD Pengaturan port-port yang kan digunakan sebagai penghubung dengan LCD alpha numerik.
Universitas Sumatera Utara
21
Contoh cara kerja sebelum melakukan pemograman di AVR, dimana contoh disini
adalah
contoh
pengaturan
program
agar
mikrokontroler
dapat
berkomunikasi dengan komputer: a. Memilih project baru dan melakukan penyetingan komponen yang digunakan pada board. b. Pengaturan IC/Chip, pada chip yang kita harus dilakukan adalah IC apa yang kita gunakan, dalam hal ini ATMEGA8535l dengan Clock 16 MHz. Clock ini harus di atur dengan ukuran 16 MHz, karena pada komponen oksilator yang digunakan sebesar 16 MHz. c. Pengaturan ADC, pada ADC ini ada beberapa pilihan yang harus dipilih. diantaranya ADC Enable di check list(v), Use 8 bit di check list(v), high speed di check list (v) dan Volt Ref dipilih „AVCC PIN‟. AVCC PIN berguna sebagai referensi tegangan pada ADC untuk nilainya sebesar 5 volt. d. Pengaturan USART, usart ini yang nantinya menghubungkan rangkaian mikrokontroler dengan PC (komputer). Langkahlangkah yang dilakukan dengan adanya pilihan Receiver di check list(v) dan Transmitter di check list(v). Pengaturan receiver berfungsi apakah serial itu sebagai penerima data, sedangkan transmitter berfungsi serial bisa digunakan sebagai pengiriman data. Untuk lebih jelas tampilan pengaturan yang disediakan oleh AVR dapat dilihat pada gambar dibawah ini :
Gambar 2.9 Form Pegaturan Code Vision AVR
Universitas Sumatera Utara
22
Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan membentuk sebuah instruksi layaknya perintah program ke IC/Chip, adapula perintah program yang kita ketik sendiri. Selain itu, Code Vision AVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau Code Wizard AVR. Secara praktis, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela Code Wizard AVR selesai dilakukan. Secara teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya). Disamping versi yang komersil, Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR versi Demo yang dapat didownload dari internet secara gratis. Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain itu tidak semua fungsi library yang tersedia dapat dipanggil secara bebas. Seperti halnya belajar pemrograman komputer, agar mendapatkan pemahaman yang kuat dalam pemrograman microcontroller AVR, anda sebaiknya mencoba langsung membuat aplikasi program pada microcontroller tersebut. Untuk tujuan latihan, perangkat lunak Code vision AVR versi demo pada dasarnya adalah sarana yang cocok dan telah cukup memenuhi kebutuhan minimal anda. Gambar 2.15 berikut memperlihatkan diagram blok yang mengilustrasikan alur pemrograman microcontroller AVR dengan Code vision AVR yang dapat anda lakukan :
Gambar 2.10 Alur pemrograman microcontroller AVR
Universitas Sumatera Utara
23
Seperti terlihat pada gambar 2.10, Code vision AVR pada dasarnya telah mengintegrasikan
komponen-komponen
penting
dalam
pemrograman
microcontroller AVR: Editor,Compiler C, assembler dan ISP (In System Programmer). Khusus dengan ISP, ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh perangkat lunak Code vision AVR ini, salah satu diantaranya adalah Kanda System STK 200/300 produk Perusahaan Kanda yang terhubung pada saluran antarmuka port Paralel Komputer.
2.10 Mikrokontroler AVR Dan Bahasa C Tidak dapat disangkal, dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C, Basic, Pascal dan sebagainya) semakin populer dan banyak digunakan untuk memprogram sistem microcontroller. Berdasarkan sifatnya yang sangat fleksibel dalam hal keleluasaan pemrogram untuk mengakses perangkat keras, Bahasa C merupakan bahasa pemrograman yang paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya. Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson pada tahun 1972, Bahasa C merupakan salah satu bahasa pemrograman yang paling populer untuk pengembangan program-program aplikasi yang berjalan pada sistem microprocessor (komputer). Karena kepopulerannya, vendor-vendor perangkat lunak kemudian mengembangkan compiler C sehingga menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C dan lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) sebagai standar bakunya. Perbedaan antara compiler-compiler tersebut umumnya hanya terletak pada pengembangan fungsi-fungsi library serta fasilitas IDE (Integrated Development Environment)–nya saja. Relatif dibandingkan dengan bahasa aras tinggi lain, bahasa C merupakan bahasa pemrograman yang sangat fleksibel dan tidak terlalu terikat dengan berbagai aturan yang sifatnya kaku. Satu-satunya hal yang membatasi penggunaan bahasa C dalam sebuah aplikasi adalah semata-mata kemampuan imaginasi programmer-nya saja. Sebagai ilustrasi, dalam program C kita dapat saja secara bebas menjumlahkan karakter huruf (misal „A‟) dengan
Universitas Sumatera Utara
24
sebuah bilangan bulat (misal „2‟), dimana hal yang sama tidak mungkin dapat dilakukan dengan menggunakan bahasa aras tinggi lainnya. Karena sifatnya ini, seringkali bahasa C dikatagorikan sebagai bahasa aras menengah (mid level language). Dalam kaitannya dengan pemrograman microcontroller, Tak pelak lagi bahasa C saat ini mulai menggeser penggunaan bahasa aras rendah assembler. Penggunaan bahasa C akan sangat efisien terutama untuk program microcontroller yang berukuran relatif besar. Dibandingkan dengan bahasa assembler, penggunaan bahasa C dalam pemrograman memiliki beberapa kelebihan berikut: Mempercepat waktu pengembangan, bersifat modular dan terstruktur, sedangkan kelemahannya adalah kode program hasil kompilasi akan relative lebih besar (dan sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi). Khusus pada microcontroller AVR, untuk mereduksi konsekuensi negative diatas, Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien dalam
mendekode
serta
mengeksekusi
instruksi-instruksi
yang
umum
dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan Atmel tetapi ada kerja sama dengan salah satu vendor pemasok compiler C untuk microcontroller tersebut, yaituI ARC). Seperti halnya compiler C untuk sistem microprocessor, di pasaran ada beberapa varian compiler C untuk memprogram sistem microcontroller AVR. Dengan beberapa kelebihan yang dimilikinya, saat ini Code Vision AVR produk Perusahaan Pavel Haiduc merupakan compiler C yang relative banyak digunakan dibandingkan compiler-compiler C lainnya. Bahasa C telah dikritisi secara meluas, dan banyak orang dengan cepat menemukan masalahnya. Tapi sebagai bahasa yang telah hadir, C tetap tak tersentuh. Code Vision AVR adalah salah satu yang memanfaatkan keunggulan C dalam hal pemrograman mikrokontroler. Salah satu ungkapan menyatakan bahwa “jika kamu membuat perangkat lunak yang akan tetap layak suatu hari nanti, jangan belajar bahasa yang popular saat ini, pelajarilah C”. C tidak membatasi pandangan orang mengenai sebuah bahasa pemrograman. C tidak object oriented, tetapi kita dapat menerapkan konsep objek oriented padanya. Bukan juga bahasa fungsional, tetapi kita dapat dapat menerapkan pemrograman fungsional menggunakannya. Kebanyakan interpreter
Universitas Sumatera Utara
25
LISP dan skema interpreters-interpreters/kompiler-kompiler ditulis dengan menggunakan C. kita dapat memproses list menggunakan C, meski tak semudah menggunakan LISP. C juga memiliki fitur-fitur tambahan seperti rekursi, prosedur sebagai tipe data kelas pertama, dan banyak lagi. Banyak orang yang merasakan C kekurangan akan kemudahan seperti JAVA, atau C++. Padahal C adalah bahasa yang sederhana. Tapi karena kesederhanaan ini dianggap kurang memadai sehingga membuat C diadaptasi sebagai perkenalan pertama ke tahap bahasa tingkat tinggi yang kompleks yang memungkinkan kita mengontrol dengan baik apa yang kita program tanpa fitur yang disembunyikan. Compiler tidak akan melakukan apapun sampai kita memerintahkan untuk melakukan sesuatu. Bahasa yang ada adalah transparan, bahkan jika beberapa fitur dari JAVA seperti garbage collection diikutsertakan pada implementasi C yang akan digunakan. Sebagai bahasa pemrograman, C tetap ada. Ini adalah inti dari development dilingkungan system operasi UNIX. Dan juga inti dari revolusi mikrokomputer, diantara C++, Delphi, JAVA dan lainnya, C masih tetap bertahan,dengan karakteristiknya sendiri.
Universitas Sumatera Utara