5 2.1 Klasifikasi Kadar Gula Darah
Dalam ilmu kedokteran, gula darah adalah istilah yang mengacu kepada tingkat glukosa didalam darah. Konsentrasi gula darah atau tingkat glukosa serum, diatur dengan ketat didalam tubuh. Glukosa yang dialirkan melalui darah adalah sumber utama energi untuk sel-sel tubuh.
Umumnya tingkat gula darah bertahan pada batas-batas yang sempit sepanjang hari, yaitu 4-8 mmol/l (70-150 mg/dl). Tingkat ini meningkat setelah makan dan biasanya berada pada level terendah pada pagi hari, sebelum seseorang makan. Diabetes mellitus adalah penyakit yang paling menonjol yang disebabkan oleh gagalnya pengaturan gula darah.
Meskipun disebut "gula darah", selain glukosa, kita juga menemukan jenis-jenis gula lainnya, seperti fruktosa dan galaktosa. Namun, hanya tingkatan glukosa yang diatur melalui insulin dan leptin.
Tabel 2.1 Kadar Gula Dalam Dalam Darah Menurut Ilmu Kedokteran
Situasi Normal Pre Diabetes Diabetes
Gula Darah Puasa < 100 mg/dl 100 – 128 mg/dl > 128 mg/dl Gula Darah Sesaat < 140 mg/dl 140 – 200 mg/dl > 200 mg/dl
(Sumber : Konimex Pharmaceutical, 2009)
2.2 Mikrokontroler
2.2.1 Pengertian Mikrokontroller
menggunakan mikrokontroler, mulai dari untuk kehidupan sehari-hari hingga skala industri.
Mikrokontroler adalah komputer mikro dalam satu chip tunggal. Mikrokontroler memadukan CPU, ROM, RWM, I/O paralel, I/O seri, counter-timer, dan rangkaian clock dalam satu chip. Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus. Cara kerja mikrokontroler sebenarnya membaca dan menulis data. (Eiwan, 2015)
Sama halnya dengan mikroprocessor, mikrokontroler adalah piranti yang dirancang untuk kebutuhan umum. Fungsi utama dari mikrokontroler adalah mengontrol kerja mesin atau sistem menggunakan program yang disimpan pada sebuah ROM. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiah dapat disebut sebagai ―pengendali kecil‖ dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini.
Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote control, mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan desain menggunakan mikroprocessor memori dan alat input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler ini maka :
1. Sistem elektronik akan menjadi lebih ringkas,
2. Rancang bangun sistem elektronik dapat dilakukan lebih cepat karena sebagian besar sistem merupakan perangkat lunak yang mudah dimodifikasi,
Mikrokontroler tidak sepenuhnya dapat mereduksi komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler telah mengandung beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum yang sederhana.
Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat sistem minimum paling tidak dibutuhkan sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler dapat beroperasi. Untuk merancang sebuah sistem berbasis mikrokontroler, kita memerlukan perangkat keras dan perangkat lunak, yaitu sistem minimum mikrokontroler, software pemrograman dan compiler, serta downloader.
Gambar 2.1 Blok Diagram Mikrokontroler Secara Umum (Sumber : Eiwan, 2015)
pada umumnya terdiri dari 3 macam bus yaitu address bus, data busdan control bus.Masing-masing bagian memiliki fungsi-fungsi sebagai berikut:
1. Register
Register merupakan suatu tempat penyimpanan (variabel) bilangan bulat yang terdiri dari 8 atau 16 bit. Pada umumnya register memiliki jumlah yang banyak, masing-masing ada yang memiliki fungsi khusus dan ada pula yang memiliki fungsi atau kegunaan secara umum. Register yang memiliki fungsi secara khusus misalnyaregister timer yang berisi data penghitungan pulsa untuk timer, atau register pengatur mode operasi counter(penghitung pulsa). Sedangkan register yang memiliki fungsi umum digunakan untuk menyimpan data sementara yang diperlukan untuk proses penghitungan dan proses operasi mikrokontroller. Register dengan fungsi umum sangat dibutuhkan dalam sistem mikrokontroller karena mikrokontroller hanya mampu melakukan operasi aritmetik atau logika hanya pada satu atau dua operasi saja, sehingga untuk operasi-operasi yang melibatkan banyak variabel harus dimanipulasi dengan menggunakan variabel-variabel register umum.
2. Accumulator
Accumulatormerupakan salah satu register khusus yang berfungsi sebagai operasi umum proses aritmetika dan logika.
3. Program Counter
Program countermerupakan salah satu register khusus yang berfungsi sebagai pencacah atau penghitung eksekusi program mikrokontroller.
4. ALU (Arithmetic and Logic Unit)
5. Clock Circuits
Mikrokontroler merupakan rangkaian logika sekuensial, dimana proses kerjanya berjalan melalui sinkronisasi clock. Oleh karena itu, diperlukan clock circuits yang menyediakan clock untuk seluruh bagian rangkaian.
6. Internal ROM (Read Only Memory)
Internal ROM (Read Only Memory) merupakan memori penyimpan data dimana data tersebut tidak dapat diubah atau dihapus (hanya dapat dibaca). ROM biasanya diisi dengan program untuk dijalankan oleh mikrokontroler segera setelah power dihidupkan. Data dalam ROM tidak dapat hilang meskipun power dimatikan.
7. Stack Pointer
Stack pointer merupakan bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data secara khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan cara acak karena data yang dituliskan ke dalam stack yang berada pada urutan yang terakhir merupakan data yang pertama kali dibaca kembali. Stack pointer berisi offset dimana posisi data stack yang terakhir masuk atau yang pertama kali dapat diambil.
8. I/O (Input/Output) Ports
I/O (Input/Output) ports merupakan sarana yang digunakan oleh mikrokontroler untuk mengakses peralatan-peralatan lain di luar sistem. I/O port berupa pin-pin yang dapat berfungsi untuk mengeluarkan data digital ataupun sebagai masukan data eksternal.
9. Interrupt Circuits
Diagram blok di atas tidak selalu sama untuk setiap jenis mikrokontroler. Beberapa mikrokontroler menyertakan rangkaian ADC (Analog to Digital Converter) di dalamnya, ada pula yang menyertakan port I/O serial disamping port I/O paralel yang sudah ada.
10. Internal RAM (Random Acces Memory)
Internal RAM (Random Acces Memory) merupakan memori penyimpan data dimana data tersebut dapat diubah atau dihapus. RAM biasanya berisi data-data variabel dan register. Data yang tersimpan pada RAM bersifat volatile yaitu akan hilang bila catu daya yang terhubung padanya dimatikan.
2.2.2 Sistem Mikrokontroler
Mikroprosesor dan mikrokontroler berasal dari ide dasar yang sama. Mikroprosesor adalah istilah yang merujuk pada central processing unit (CPU) computer digital untuk tujuan umum. Untuk membuat simtem komputer, CPU harus ditambahkan memori, umumnya read only memory (ROM) dan random access memory (RAM), dekoder memori, osilator dan sejumlah input/output device seperti port data paralel dan serial. (Syeptianda, 2011).
Mikrokontroler umumnya dikelompokkan dalam satu keluarga besar, contoh-contoh keluarga mikrokontroler yaitu :
1. Keluarga MCS-51 2. Keluarga MC68HC05 3. Keluarga MC68HC11 4. Keluarga AVR
5. Keluarga PIC8
2.3 Mikrokontroler ATMEGA 32
2.3.1 Pengertian Mikrokontroler ATMEGA 32
terkemuka yaitu ATMEL. Nama AVR sendiri konon merupakan singkatan dari Alfand Vegard's Risc Processor. Nama Alf dan Vegard diambil dari nama perancang arsitekturnya Alf-Egil Bogen dan Vegard Wollan. Sedangkan kata Risc Processor menandakan mikrokontroler ini termasuk jenis mikrokontroler dengan instruksi set terbatas atau Reduced Instruction Set Computer (RISC). (Sumardi, 2013)
Mikrokontroler AVR dikelompokkan menjadi beberapa jenis, yaitu TinyAVR, MegaAVR, XMEGAAVR, AVR32 UC3 dan AVR32 AP7. Pengelompokan ini didasarkan pada ukuran fisik, jumlah memori, peripheral dan fiturnya. TinyAVR merupakan kelompok terendah sedangkan AVR32 AP7 merupakan jenis tertinggi. Kelompok MegaAVR merupakan yang paling populer dikalangan komunitas mikrokontroler di Indonesia. Sebuah contoh mikrokontroler yang termasuk kedalam MegaAVR adalah ATMEGA8, ATMEGA8515, ATMEGA8535, ATMEGA16, ATMEGA32 dan ATMEGA328P.
Gambar 2.2 Bentuk Fisik ATMEGA 32 (Sumber : Sumardi, 2013)
2.3.2 Fitur Mikrokontroler ATMEGA 32
Berikut ini adalah fitur mikrokontrollerATMEGA 32 :
1. High-performance, Low-power Atmel®AVR® 8-bit Microcontroller 2. Advanced RISC Architecture
131 Powerful Instructions – Most Single-clock Cycle Execution
32 × 8 General Purpose Working Registers
Up to 16 MIPS Throughput at 16MHz
On-chip 2-cycle Multiplier
3. High Endurance Non-volatile Memory segments
32Kbytes of In-System Self-programmable Flash program memory
1024Bytes EEPROM
2Kbytes Internal SRAM
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
Data retention : 20 years at 85°C/100 years at 25°C(1)
Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program
True Read-While-Write Operation
Programming Lock for Software Security 4. JTAG (IEEE std. 1149.1 Compliant) Interface
Boundary-scan Capabilities According to the JTAG Standard
Extensive On-chip Debug Support
Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface
5. Peripheral Features
Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
Real Time Counter with Separate Oscillator
Four PWM Channels
8-channel, 10-bit ADC
8 Single-ended Channels
7 Differential Channels in TQFP Package Only
2 Differential Channels with Programmable Gain at 1x, 10x, or
200x
Programmable Serial USART
Master/Slave SPI Serial Interface
Programmable Watchdog Timer with Separate On-chip Oscillator
On-chip Analog Comparator 6. Special Microcontroller Features
Power-on Reset and Programmable Brown-out Detection
Internal Calibrated RC Oscillator
External and Internal Interrupt Sources
Six Sleep Modes: Idle, ADC Noise Reduction, save, Power-down, Standby and Extended Standby
7. I/O and Packages
32 Programmable I/O Lines
40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF
8. Operating Voltages
2.7V - 5.5V for ATmega32L
4.5V - 5.5V for ATmega32
9. Speed Grades
0 - 8MHz for ATmega32L
0 - 16MHz for ATmega32
10. Power Consumption at 1MHz, 3V, 25°C
Active: 1.1mA
Idle Mode: 0.35mA
2.3.3 Konfigurasi Pin-Pin Mikrokontroller ATMega 32
Gambar 2.4 Susunan Kaki Mikrokontroler ATMega 32 (Sumber : Sumardi, 2013)
Berikut ini adalah penjelasan dari fungsi pin-pin mikrokontroler ATMEGA 32 adalah :
1. VCC merupakan pin masukan positif catu daya. Setiap peralatan elektronika digital tentunya butuh sumber catu daya yang umumnya sebesar 5V, itulah sebabnya di PCB kit mikrokontroler selalu ada IC regulator 7805.
2. GND sebagai pin Ground.
3. Port A (PAO..PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin masukan ADC.
4. Port B (PBO..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Tirner/Counter, Komparator analog, dan SPI.
6. Port D (PDO..PD7) merupakan pin I/O dua arah dan pin fungsi khusus,yaitu komparator analog, interupsi eksternal dan komunikasi serial. 7. Reset merupakan pin yang digunakan untuk mereset mikrokontroller. 8. XTAL 1 dan XTAL 2 sebagai pin masukan clock ekstemal.
Suatumikrokontroller membutuhkan sumber detak (clock) agar dapatmengeksekusi instruksi yang ada di memori. Semakin tinggi nilaikristalnya, maka semakin cepat mikrokontroller tersebut.
9. AVCC sebagai pin masukan tegangan untuk ADC. 10. AREF sebagai pin masukan tegangan referensi.
2.4 Logika Fuzzy
Logika fuzzy adalah salah satu komponen pembentuk soft computing. Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A. Zadeh pada tahun 1965. Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau membership function menjadi ciri utama dalam penalaran dengan logika fuzzy tersebut (Kusuma Dewi, 2003).
Logika fuzzy dapat dianggap sebagai kotak hitam yang berhubungan antara ruang input menuju ruang output (Kusuma Dewi, 2003). Kotak hitam tersebut berisi cara atau metode yang dapat digunakan untuk mengolah data input menjadi output dalam bentuk informasi yang baik.
Adapun beberapa alasan digunakannya logika fuzzy (Kusuma Dewi, 2003), adalah :
1. Konsep logika fuzzy mudah dimengerti., karena logika fuzzy menggunakan dasar teori himpunan, maka konsep matematis yang mendasari
penalaran fuzzy tersebut cukup mudah untuk dimengerti.
3. Logika fuzzy memiliki toleransi terhadap data yang cukup homogeny dan kemudian ada beberapa data ―eksklusif‖, maka logika fuzzy memiliki kemampuan untuk menangani data eksklusif tersebut.
4. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. Dalam hal ini, sering dikenal dengan istilah fuzzy expert system menjadi bagian terpenting.
5. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional. Hal ini umumnya terjadi pada aplikasi di bidang teknik mesin maupun teknik elektro.
6. Logika fuzzy didasari pada bahasa alami. Logika fuzzy menggunakan bahasa sehari-hari sehingga mudah dimengerti.
Himpunan Fuzzy
Pada himpunan tegas (crisp), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan (X), memiliki dua kemungkinan, yaitu :
1. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau
2. Nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan.
Himpunan fuzzy memiliki 2 atribut (Kusuma Dewi, 2003), yaitu:
1. Linguistik, yaitu penamaan suatu grup yang mewakili suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami, seperti : NORMAL, PRA DIABETES, DIABETES MELLITUS.
2. Numeris, yaitu suatu nilai (angka) yang menunjukkan ukuran dari suatu variabel seperti: 40, 25, 50, dsb.
Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy (Kusuma Dewi, 2003), yaitu :
2. Himpunan fuzzy, yaitu suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy. Contohnya: variabel kadar gula darah, terbagi menjadi 3 himpuan fuzzy, yaitu : NORMAL, PRA DIABETES, DIABETES MELLITUS.
3. Semesta Pembicaraan, yaitu keseluruhan nilai yang diperoleh untuk dioperasikan dalam suatu variabel fuzzy, semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri kekanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negatif. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya. Contohnya, semesta pembicaraan untuk variabel kadar gula darah : [0 +∞].
2.5 Software(CodeVision AVR)
2.5.1 Pengertian CodeVision AVR
Interface) dan lain sebagainya. Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat bersahabat dengan pengguna. Selain menu-menu pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR 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 di program. Gambar tampilan awal dari CodeVision AVR dapat dilihat pada gambar dibawah ini :
Tabel 2.2 Keterangan Lengkap Ikon-Ikon Dari CodeVision AVR
Sub-menu Fungsi
New membuat file baru
Open membuka file yang sudah ada
Reopen membuka kembali file yang sudah ditutup Save menyimpan yang yang sudah dibuat
Save-as menyimpan kembali file yang aktif dan sudah disimpan dengan nama yang berbeda Save All menyimpan beberapa file yang sudah dibuat
Close
menutup tab file yang sedang dibuka (sama seperti excel, di CodeVisionAVR juga kita dapat membuat beberapa sheet dalam jendela yang sama)
Close Multiple menutup sebagian tab yang sedang dibuka
Close All menutup semua tab
Convert to Library menyimpan file yang sudah dibuat ke dalam library
Page Setup mengatur tata letak kertas
Print Preview menampilkan file yang akan dicetak
Print mencetak file
Exit keluar dari CodeVisionAVR
Tabel 2.3 Menu Edit
Sub-menu Fungsi
Undo mengulang aksi yang terakhir kali dilakukan Redo mengembalikan proses undo yang terakhir
kali dilakukan
Cut memindahkan teks yang sudah di-blok ke tempat lain
Copy menyalin teks yang sudah di-blok Copy to Code
Templates
menyalin teks yang sudah di-blok untuk dijadikan template
Paste menduplikasi teks yang sudah di-cut atau copy
Delete menghapus teks
Select All mem-blok semua teks yang ada dalam satu file
Print Selection mencetak sebagian teks yang sudah diseleksi
Indent Selection Memberi spasi pada bagian yang dipilih Unindent Selection Menghilangkan spasi pada bagian yang
Comment Selection mengubah teks yang dipilih menjadi komentar
Uncomment Selection mengembalikan teks komentar menjadi teks semula (kebalikan dari comment selection) Insert Special
Character
memasukkan karakter spesial seperti tanda panah, simbol mata uang, huruf latin, dll Toggle Bookmark menandai baris tertentu
Jump Bookmark pergi ke baris yang sudah ditandai Jump to Next
Bookmark
pergi ke baris selanjutnya yang sudah ditandai
Jump to Previous Bookmark
pergi ke baris sebelumnya yang sudah ditandai
Go Back
kembali ke baris yang sudah dijelajahi sebelumnya (setelah melakukan proses go to line)
Go Forward kembali ke baris yang sudah dijelajahi setelahnya
Go to
Definition/Declaration
pergi ke bagian definisi atau deklarasi Go to Line pergi ke baris yang diinginkan
Go to Matching Brace
pergi ke baris yang memiliki pasangan tanda kurung ()
Tabel 2.4 Menu Search
Sub-menu Fungsi
Find mencari teks tertentu Find Next mencari teks selanjutnya Find Previous mencari teks sebelumnya
Find in Files mencari teks string yang ada pada file Replace mengganti suatu teks dengan teks lainnya Replace in Files mengganti teks string dengan teks string
lainnya
Tabel 2.5 Menu View
Sub-menu Fungsi
Toggle Fold
menyusutkan atau memperluas satu blok kode tempat kursor berada yang dihimpit oleh {}
Expand All Folds memperluas satu blok kode tempat kursor berada yang dihimpit oleh {}
Visible
Non-Printable Characters
menampilkan karakter yang tidak akan ikut dicetak, karena karakter ini hanya digunakan untuk formatting, misalnya karakter ¶
Code Navigator
menampilkan atau membuka file yang sudah dibuat dalam bentuk diagram pohon (seperti di windows explorer) beserta keterangan apakah terdapat error atau warning pada file tersebut
Code Information
menampilkan deklarasi atau definisi yang terdapat pada file yang sedang di-edit atau dibuka
Function Call Tree
menampilkan fungsi panggil yang menggunakan data stack terbanyak selama eksekusi program
Code Templates
menampilkan kode yang sering digunakan, untuk menggunakannya cukup klik kode yang akan digunakan dan drag ke window editing
Clipboard History menampilkan sebagian teks yang baru saja digandakan (copy) ke clipboard
Messages menampilkan pesan error atau warning Find in Files menampilkan jendela yang berisi tentang
pencarian teks string Information Window
after Compile/Build
menampilkan jendela informasi ketika program selesai di-compile atau di-build Toolbars menampilkan toolbar
File Panes
menampilkan window editing dalam bentuk single pane, dual pane vertical, dan dual pane horizontal.
Tabel 2.6 Menu Project
Sub-menu Fungsi
Check Syntax mengecek sintaks yang digunakan
Compile meng-compile program yang sudah dibuat Build mem-build program yang sudah dibuat Build All mem-build program yang sudah dibuat Stop compilation menghentikan kompilasi
Clean Up menghapus file yang dihasilkan dari proses build
Information menampilkan jendela informasi yang berisi compiler dan assembler
Go to Next Warning pergi menuju warning selanjutnya Go to Previous
Warning pergi menuju warning sebelumnya Notes menampilkan jendela catatan Configure
melakukan konfigurasi program, biasanya dilakukan sebelum program diinjeksikan ke mikrokontroler
Tabel 2.7 Menu Tools
Sub-menu Fungsi
CodeWizardAVR membuat program secara otomatis sehingga mempermudah penulisan kode inisialisasi Debugger memilih file debugger
Chip Programmer pengaturan untuk memasukkan program yang sudah di-compile ke mikrokontroler Terminal pengaturan terminal komunikasi serial Configure menambah atau menghilangkan program ke
dalam tools menu
Tabel 2.8 Menu Settings
Sub-menu Fungsi
IDE
pengaturan tampilan IDE, meliputi load last used project at startup, show hint for the code navigator window, show hint for the code information window, dan show hint for the function call tree window.
Editor pengaturan ukuran huruf, warna huruf, menampilkan jumlah baris, dan lain-lain Debugger mengatur debugger sebelum dihubungkan
ke AVR Studio
Programmer pengaturan jenis mikrokontroler yang digunakan dan terminal komunikasi
Tabel 2.9 MenuHelp
Sub-menu Fungsi
Help Topics berisi panduan mengenai penggunaan CodeVisionAVR
Getting Started with CodeVisionAVR
berisi panduan memulai CodeVisionAVR (butuh koneksi internet)
AVR Data Sheets berisi data sheet mikrokontroler (butuh koneksi internet)
HP Info Tech on the Web
link ke HP Info Tech untuk meminta bantuan dan lainnya
About
CodeVisionAVR
berisi penjelasan software CodeVisionAVR, seperti produsen dan versinya
(Sumber : Wida Lidiawati, 2015)
2.5.2 Compiler
Salah satu software pemrograman AVR mikrokontroller adalah CodevisionAVR C Compiler versi 1. 253 yang selanjutnya dalam pembahasan disebut cvAVR. Pada cvAVR terdapar code wizard yang sangat membantu dalam proses inisaialisasi register dalam mikrokontroller dan untuk membentuk fungsi-fungsi interupt. Pada code wizard uintuk membuat inisialisasi cukup dengan mengklik atau memberi tanda check sesuai properti dari desain yang dikehendaki, setelah itu register yang ter inisislisasi dapat dilihat melalui program preview atau melalui generate and save. Dengan menggunakan pemrograman bahasa C diharapkan waktu desain akan menjadi lebih singkat. Setelah program dalam bahasa C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Mikrokontroller AVR mendukung sistem download secara ISP (In-System Programming).
Untuk memulai bekerja dengan CodeVisionAVR, yaitu :
Gambar 2.6 Tampilan Project Baru (Sumber : Musbikhin, 2012)
2. Pilih Project kemudian tekan OK, maka akan muncul kotak dialog berikut.
Gambar 2.7 Tampilan Code Wizard AVR (Sumber : Musbikhin, 2012)
3. Pilih Yes untuk menggunakan CodeWizardAVR. Code WizardAVR digunakan untuk membantu dalam men-generate program, terutama dalam konfigurasi chip mikrokontroller, baik itu konfigurasi Port, Timer, penggunaan fasilitas-fasilitas seperti LCD, interrupt, dan sebagainya. Code WizardAVR ini sangat membantu programmer untuk setting chip sesuai keinginan.
2.5.2.1Pemilihan Chip dan Frekuensi Xtall
dan frekuensi xtall yang digunakan. Pemilihan chip dan frekuensi xtall dapat dilihat seperti pada gambar berikut :
Gambar 2.8 Tampilan Pemilihan Chip dan Frekuensi Xtall (Sumber : Musbikhin, 2012)
2.5.2.2 Inisialisasi Port I/O
Inisialisasi Port berfungsi untuk memilih fungsi port sebagai input atau sebagai output. Pada konfigurasi port sebagai output dapat dipilih pada saat awal setelah reset kondisi port berlogika 1 atau 0, sedangkan pada konfigurasi port sebagai input terdapat dua pilihan, yaitu kondisi pin input toggle state atau pull-up, maka sebaiknya dipilih pull up untuk memberi default pada input selalu
Gambar 2.9 Tampilan Pemilihan Port I/O (Sumber : Musbikhin, 2012)
2.5.2.3Inisialisasi Serial untuk mode RX interrupt
Gambar 2.10 Tampilan Inisialisasi Serial (Sumber : Musbikhin, 2012)
menu File, pilih Generate, Save and Exit dan simpan pada direktori yang diinginkan.
Pada proses penyimpanan (save) file akan diminta menyimpan tiga jenis file dengan ekstensi yang berbeda. Beri nama file source(*.c), file project (*.prj), dan file code wizard (*cwp) dengan nama yang sesuai, disarankan, beri nama ketiga file tersebut dengan nama yang sama, hal ini untuk memudahkan dalam mencari file dalam folder tempat kita menyimpan file tersebut apabila kita sudah banyak menyimpan file-file project menggunakan software codeVisionAVR.
Gambar 2.11 Jendela ‘save’ File Source(*.c) (Sumber : Musbikhin, 2012)
Gambar 2.13 Jendela ‘save’ File Codewizard (*cwp) (Sumber : Musbikhin, 2012)
Setelah selesai maka akan muncul jendela text-editor program seperti gambar berikut :
Gambar 2.14 Jendela Text-Editor Program Lengkap Dengan Hasil Pengaturan CodeWizardAVR
Setelah itu melengkapi kode/program dengan mengkofigurasi project pada langkah sebelumnya, maka kita tinggal melengkapi dengan kode-kode (syntax) program yang akan kita perlukan.
Gambar 2.15 Program Yang Telah Dilengkapi Atau Diedit (Sumber : Musbikhin, 2012)
Gambar 2.16 Jendela Cara Melakukan Kompilasi Program *.c ke *.hex (Sumber : Musbikhin, 2012)
Gambar 2.18 Jendela Informasi Assembly Program (Sumber : Musbikhin, 2012)
Gambar 2.19 File Hexadecimal (*.hex) Hasil Kompilasi Program (Sumber : Musbikhin, 2012)
2.5.3 Dasar Pemrograman CodeVision AVR 2.5.3.1 Tipe Data
Tabel 2.10 Tipe Data CodeVision AVR
Type Size (Bits) Range
Bit 1 0,1
Char 8 -128 s/d 127
unsigned char 8 0 s/d 255
signed char 8 -128 s/d 127
Int 16 -32768 s/d 32767
unsigned int 16 -32768 s/d 32767
signed int 16 0 s/d 65535
long int 16 -326768 s/d 32767
unsigned long int 32 0 s/d 4294967295
signed long int 32 -2147483648 s/d 2147482647
Float 32 ± 1.175e-38 s/d ± 3.402e38
Double 32 ± 1.175e-38 s/d ± 3.402e38
(Sumber : Edy, 2016)
Pemilihan tipe data yang tepat merupakan salah satu hal wajib, semisal ingin menampilkan bilangan 0-10 dan tipe data yang kita gunakan intenger maka sangat disayangkan banyak space memory yang terbuang percuma yang sebenarnya kita dapat mengunakan unsigned char yang hanya membutuhkan memori sebesar 8 Bit daripada Intenger yang membutuhkan 16 Bit.
2.5.3.2 Reserved Keywords
Tabel 2.11Reserved Keywords
Break Flash Signed Bit
Float Sizeof Case For
Sfrb Char Funcused Sfrw
Const Goto Static Continue
If Struct Default Int
Double Interrupt Union Eeprom
Register Void Enum Return
Volatile Extern Short while and … etc
(Sumber : Edy, 2016)
2.5.3.3 Operator
Terdapat tiga tipe operator yang dapat digunakan untuk memanipulasi data, diantaranya:
Tabel 2.12 Aritmatika
Operator Contoh Keterangan
+ Temp1 = temp2 + temp3
Penjumlahan
- Temp1 = temp2 – temp3
Pengurangan
++ i++ Kenaikan/increment. n= n + 1
- -i Penurunan/decrement. n= n-1
* c = a*b
n = n *2
Perkalian
% Sisa = a % b Menghasilkan sisa dari pembagian. a dan b bilangan bulat
= a = b Pemberian nilai
+= a+=2 Penambahan suatu nilai pada variable yang telah ada nilai sebelumnya.
-= a-=2 Pengurangan suatu nilai pada variable yang telah ada nilai sebelumnya.
a = a – 2.
*= a*=2 Pengalian suatu nilai pada veriabel yang telah ada nilai sebelumnya.
a = a * 2.
/= a /= 2 Pembagian suatu nilai pada variable yang telah ada nilai sebelumnya.
a = a / 2.
%= a %= 2 Sisa dari suatu nilai pada suatu variable yang sudah ada sebelumnya yang dibagi oleh nilai atau variable lain.
* *pointer Menunjukkan isi dari pointer
Tabel 2.13 Logika
Simbol Contoh Logika pemabanding
== If (a == b) Logika sama dengan. Jika a sama dengan b maka bernilai true
!= If (a != b) Tidak sama dengan. Jika a tidak sama dengan b maka akan bernilai true. < If (a < b) Logika lebih kecil dari. Jika a < b, maka
akan bernilai true.
<= If (a <= b) Logika lebih kecil sama dengan dari. Jika a tidak sama dengan b, maka bernilai true. > If (a > b) Logika lebih besar dari. Jika a > b, maka
akan bernilai true.
>= If (a >= b) Logika lebih besar sama dengan dari. Jika a tidak sama dengan b, maka bernilai true.
! if (!a) Not a.
|| If (a==b || a==c) OR
Tabel 2.14 Manipulasi Bit
~ a = ~ b Complement.
b=1100; a=0011;
& c = a & b AND untuk mmanipulasi bit. a=1100; b=1001; maka c=1000.
| c = a | b Or untuk manipulasi data bit. a=1100; b=1001; maka c=1000.
^ c = a ^ b XOR untuk manipulasi data bit. a=1100; b=1001; maka c=0101.
<< c = a << n Shift left, manipulasi bit menggeser ke kiri sejauh n bit. a=1101; b=1001;maka
c=110100.
>> c = a>>n Shift right, manipulasi bit menggeser ke kanan sejauh n bit. a=1101; b=1001;maka c=0110
(Sumber : Edy, 2016)
2.5.4 Kontrol Program
Pada CodeVision AVR, kontrol program dapat dikelompokkan ke dalam dua kategori yaitu : berdasarkan perulangan dan percabangan. Berikut akan dijelaskan satu persatu, yaitu :
2.5.4.3If-then
Bentuk umum dari percabangan ini adalah: if (kondisi)
{
Maksudnya adalah pernyataan akan dijalankan jika kondisi terpenuhi.
2.5.4.4 If-then-else
Bentuk umum dari percabangan ini adalah: if (kondisi)
{
//pernyataan a }
else {
//pernyataan b };
Maksudnya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan pernyataan b akan dijalankan jika kondisi tidak terpenuhi.
2.5.4.5 Switch-case
Pernyataan switch – case digunakan jika terjadi banyak percabangan. Struktur penulisan pernyataan ini adalah sebagai berikut:
…
switch (ekspresi) { case konstanta1: pernyataan1 break;
case konstanata2: pernyataan2 break; …
…
2.5.4.4 Switch-case-default
Pernyataan switch – case – default hampir sama dengan switch – case, yang membedakan adalah bahwa dengan adanya default, maka jika tidak terdapat kondisi case sesuai dengan ekspresi, switch akan menuju pernyataan yang terdapat dibagian default. Struktur penulisan pernyataan ini adalah sebagai berikut:
…
switch (ekspresi) { case konstanta1: pernyataan1 break;
case konstanata2: pernyataan2 break; …
case konstantaN: pernyataanN break; default:
pernyataan – pernyataan; }
…
2.5.4.5 For
Pernyataan for maksudnya akan melakukan perulangan berapa kali sesuai yang diinginkan. Struktur penulisan perulangan for adalah sebagai berikut:
…
}; …
Mulai adalah pemberian nilai awal, kemudian kondisi adalah pengondisi dalam for yaitu jika kondisi bernilai true maka pernyataan dalam for akan
dijalanakan. Penambahan atau pengurangan adalah penambahan atau pengurangan terhadap nilai awal.
2.5.4.6 While
Bentuk dari perulangan ini adalah sebagai berikut: while (kondisi) {
peryataan – pernyataan; }
Jika kondisi memenuhi (bernilai true) maka pernyataan-pernyataan di bawahnya akan dijalankan hingga selesai, kemudian akan menguji kembali kondisi di atas.
2.5.4.7 Do-while
Bentuk perulangan ini kebalikan dari while – do, yaitu pernyataan dilakukan terlebih dahulu kemudian diuji kondisinya.
do {
pernyataan-pernyataan; }
}
while (i<50);
2.6 Sensor Strip Glukosa
Sensor strip glukosa adalah sensor yang berbentuk strip (kepingan) yang berfungsi untuk mendeteksi kadar gula dalam darah menjadi sinyal tegangan atau arus. Di dalam sensor strip glukosa mengandung enzim, kombinasi mediator dan sebuah rangkaian elektroda.
2.6.1 Spesifikasi Sensor Strip Glukosa
Tabel 2.15 Sensor Strip Glukosa, Enzim dan Mediator yang Digunakan
(Sumber : Department of Chemical Engineering, University of Texas at Austin, Texas 78712, and Abbott Diabetes Care, 1360 South Loop Road,
Alameda, California 94502)
Dari tabel 2.15 diatas setiap sensor strip glukosa yang digunakan didalamnya terdapat enzim dan mediator yang berbeda-beda.
Gambar 2.20 Bagian-Bagian Sensor Strip Glukosa
(Sumber : Department of Chemical Engineering, University of Texas at Austin, Texas 78712, and Abbott Diabetes Care, 1360 South Loop Road,
Alameda, California 94502)
Fungsi bagian-bagian sensor strip glukosa :
1. Top plastic layer adalah lapisan plastik yang terbuat dari substrat yang berfungsi sebagai merek dari sensor strip glukosa.
2. Counter-reference and fill-detection electrodes adalah rangkaian referensi tegangan dan pendeteksi elektroda.
3. Adhesive adalah lapisan kapiler untuk menyimpan darah biasanya sebesar 1 µL.
4. Working electrode adalah rangkaian elektroda yang berfungsi untuk penerima sinyal listrik saat reaksi redoks terjadi.
5. Bottom plastic layer adalah lapisan penutup sensor strip glukosa yang berada dibawah.
2.6.2 Prinsip Kerja Sensor Strip Glukosa
Glukosa atau suatu gula monosakarida adalah salah satu karbohidrat terpenting yang digunakan sebagai sumber tenaga bagi hewan dan tumbuhan. Glukosa merupakan salah satu hasil utama fotosintesis dan awal bagi respirasi
(https://id.wikipedia.org/wiki/Glukosa diakses 20 April 2016 pukul 13.00 WIB).
Bentuk alami (D-glukosa) disebut juga dekstrosa, terutama pada industri pangan.
Gambar 2.21 Proyeksi Haworthstruktur Glukosa (α-D-glukopiranosa) (Sumber : https://id.wikipedia.org/wiki/Glukosadiakses 20 April 2016 pukul
13.00 WIB)
Glukosa (C6H12O6, berat molekul 180.18) adalah heksosa—monosakarida yang mengandung enam atom karbon. Glukosa merupakan aldehida(mengandung gugus -CHO). Lima karbon dan satu oksigennya membentuk cincin yang disebut "cincin piranosa", bentuk paling stabil untuk aldosaberkabon enam. Dalam cincin ini, tiap karbon terikat pada gugus sampinghidroksil dan hidrogen kecuali atom kelimanya, yang terikat pada atom karbon keenam di luar cincin membentuk suatu gugus CH2OH. Struktur cincin ini berada dalam kesetimbangan dengan bentuk yang lebih reaktif, yang proporsinya 0.0026% pada pH 7.
Gambar 2.22 Senyawa Glukosa
(Sumber : https://id.wikipedia.org/wiki/Glukosadiakses 20 April 2016 pukul 13.00 WIB)
peroksida, baru disinilah akan terjadi reaksi kimia. Oksidasi dari potassium peroksida akan diterima oleh rangkaian elektroda yang menghasilkan tegangan atau arus listrik yang sangat kecil yang sebanding dengan konsentrasi glukosa.
1. Kadar glukosa dlam darah akan terjadi oksidasi saat tercampur dengan enzim GOD(OX) yang ada pada sensor strip glukosa sehingga menghasilkan potassium peroksida.
2. Kemudian proses reduksi (pengurangan) enzim dilakukan oleh mediator ferricynaide dan elektron akan ditransfer ke working electrode pada sensor strip glukosa.
(Sumber : http://faculty.virginia.edu/analyticalchemistry/Electrochem
Gluc/Electrochem.htmldiakses 20 April 2016 pukul 13.50 WIB)
Gambar 2.23 Proses Terjadinya Reaksi Elektroda
(Sumber : http://faculty.virginia.edu/analyticalchemistry/Electrochem
Gluc/Electrochem.htmldiakses 20 April 2016 pukul 13.50 WIB)
Selanjutnya, proses redoks dalam darah yang diterima oleh elektroda yang menghasilkan sebuah sinyal listrik sebanding dengan tingkat kosentrasi glukosa dalam darah, semakin besar tingkat glukosa dalam darah maka akan semakin besar sinyal listrik yang dihasilkan.
Gambar 2.24 Grafik konsentrasi glukosa dan arus dalam darah (Sumber : http://faculty.virginia.edu/analyticalchemistry/Electrochem
Sinyal listrik yang dihasilkan oleh elektroda sensor strip glukosa sangat rendah untuk itu perlu adanya rangkaian penguat yang bertujuan agar nantinya sinyal listrik tersebut stabil dan terbaca untuk masukkan ADC pada mikrokontroller.
2.7 LCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik dalam bentuk karakter, huruf, angka ataupun grafik.LCD (Liquid Crystal Display) berfungsi untuk menampilkan karakter angka, huruf ataupun simbol dengan lebih baik dan dengan konsumsi arus yang rendah. LCD (Liquid Crystal Display) dot matrik M1632 merupakan modul LCD buatan hitachi. Modul LCD (Liquid Crystal Display) dot matrik M1632 terdiri dari bagian penampil karakter (LCD) yang berfungsi menampilkan karakter dan bagian sistem prosesor LCD dalam bentuk modul dengan mikrokontroler yang diletakan dibagian belakang LCD tersebut yang berfungsi untuk mengatur tampilan LCD serta mengatur komunikasi antara LCD dengan mikrokontroler yang menggunakan modul LCD tersebut. (Sumber :
http://elektronika-dasar.web.id/lcd-liquid-cristal-display/ diakses 20 April 2016
pukul 15.00 WIB)
2.7.1 Spesifikasi Fungsi Pin LCD (Liquid Cristal Display)
Tabel 2.16 Fungsi Pin-Pin Pada LCD
(Sumber : Berlian Ardo, 2010)
Gambar 2.25 Bentuk Fisik Beserta Pin-Pin LCD (Liquid Cristal Display) (Sumber : Berlian Ardo, 2010)
Sedangkan secara umum pin-pin LCD diterangkan sebagai berikut : 1. Pin 1 dan 2
data menentukan catu 5 Vdc (hanya pada beberapa mA), menyediakan 6V dan 4.5V yang keduanya bekerja dengan baik, bahkan 3V cukup untuk beberapa modul.
2. Pin 3
Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. Idealnya pin ini dihubungkan dengan tegangan yang bisa diubah untuk memungkinkan pengaturan terhadap tingkatan kontras display sesuai dengan kebutuhan, pin ini dapat dihubungkan dengan variable resistor sebagai pengatur kontras.
3. Pin 4
Pin 4 merupakan Register Select (RS), masukkan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya.
4. Pin 5
Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari registernya.
5. Pin 6
Enable (E), input ini digunakan untuk transfer aktual dari perintah-perintah atau karakter antara modul dengan menghubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi. 6. Pin 7-14
Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display.
7. Pin 16