Pengetahuan Tentang gizi dan Mikrokontroler
1. Pengetahuan Tentang Mikrokontroler
Banyak yang mengenal atau mengatakan bahwa mikrokontroler adalah komputer mini/
mikro. Mengenai kebenaran istilah komputer mini untuk sebutan mikrokontroler dapat dilihat
dari beberapa hal berikut :
1. Masing-masing memiliki unit pengolah atau yang biasa disebut CPU (Central Processing
Unit).
2. Terdapat ROM (Read Only Memory) dan RAM (Random Access Memory) sebagai lokasi
eksekusi program dan menyimpan data sementara.
3. Memiliki fungsi (I/O) input (masukan) dan output (luaran) sebagai penghubung dengan
perangkat lain (dunia luar).
Yang menjadi pembeda secara nyata antara koputer dengan mikrokontroler adalah ukuran dan
kecepatan dikarenakan perbedaan ukuran yang disesuaikan dengan kebutuhan. Lalu ada
perangkat yang disebut mikroprosesor yang juga sering kita dengar. Apa itu mikroprosesor ?
Mikroprosesor merupakan CPU yang terintegrasi dalam perangkat tunggal (single chip).
Mikroprosesor biasanya digunakan untuk keperluan kinerja yang relatif tinggi dan cepat. Untuk
mendukung penggunaannya mikroprosesor masih membutuhkan perangkat lain secara eksternal
seperti I/O, RAM, ROM dan lainnya. Berbeda dengan mikrokontroler yang sudah terdapat
perangkat eksternal dalam kemasannya. Perbedaan mikrokontroler dengan mikroprosesor dapat
dilihat pada gambar 1.1
Mikroprosesor
RAM
CPU
ROM
Timer
I/O
Mikroprosesor
RAM
ROM
I/O
Timer
Mikrokontroler
Gambar 1.1. Perbedaan mikroprosesor dengan mikrokontroler
1.1
Mikrokontroler
Mikrokontroler dapat kita jumpai atau ditemukan pada perangkat elektronik dalam industri,
perkantoran, rumah tangga dan lainnya. Dalam industri misalnya penggunaan mikrokontroler
dapat ditemukan pada perangkat kontrol alat-alat berat, dalam perkantoran dapat ditemukan
dalam perangkat alat penghitung, display, pencetak, dalam rumah tangga dapat ditemukan dalam
mesin cuci, televisi, AC dan lain-lain. Penggunaan mikrokontroler tersebut didasari pada
kelebihan yang dimiliki dibanding dengan mikroprosesor. Mikrokontroler pada dasarnya terdapat
salah satu atau lebih dari komponen berikut :
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
CPU (Central Processing Unit)
RAM
ROM
Terminal I/O
Timer dan Counter
Kontrol Interupsi
ADC (Analog to Digital Converter)
DAC (Digital to Analog Converter)
Terminal antarmuka serial
Rangkaian oscilator
Sedangkan diagram blok dasar mikrokontroler seperti pada gambar 1.2
Rangkaian Oscilator
RAM
ROM/EPROM/EEPROM
Special functioning block
Interrupt control
DAC
ADC
Timers/ Counters
Gambar 1.2. Struktur mikrokontroler
CPU :
Parallel I/O port
CPU
CPU merupakan otak sebuah mikrokontroler. CPU memiliki tugas utama menghasilkan/
menentukan instruksi dan dekode instruksi yang berakhir pada eksekusi instruksi.
Memory :
Memory berfungsi sebagai penyimpan data dan program seperti pada mikroprosesor. Pada
mikrokontroler biasanya memiliki RAM dan ROM (EPROM, EEPROM) atau flash
memory untuk menyimpan kode program (source code).
Parallel I/O:
Port parallel I/O digunakan untuk antarmuka mikrokontroler dengan perangkat keras
seperti LED, LCD, printer, dan lainnya.
Serial :
Port serial menyediakan antarmuka serial antara mikrokontroler dan peripheral lainya
seperti port paralel
ADC :
ADC berfungsi untuk mengubah sinyal analog ke bentuk digital. Masukan ADC harus
berupa sinyal analog, misalnya pembacaan sensor dan luaran dari ADC berbentuk digital.
Luaran digital tersebut dapat digunakan untuk berbagai aplikasi digital (misal : perangkat
pengukuran)
DAC :
DAC merupakan kebalikan dari ADC yaitu mengubah sinyal digital kedalam format
analog. Biasanya digunakan untuk kontrol perangkat analog seperti motor DC.
Timer dan Counter :
Timer dan counter merupakan salah satu kegunaan fungsi dari mikrokontroler. Sebuah
mikrokontroler kemungkinan memiliki lebih dari satu timer dan counter. Timer dan counter
menyediakan fungsi pewaktu dan penghitung didalam mikrokontroler. Proses/ operasi
utama dari bagian ini adalah melakukan fungsi pewaktu, modulasi, pembangkit pulsa,
pengukur frekuensi, membuat osilasi, dan lainnya. Dan juga dapat digunakan untuk
menghitung pulsa eksternal.
Interrupt control :
Kontrol interupsi digunakan untuk menyela (delay) sebuah program yang sedang bekerja.
Interupsi dapat dibuat secara eksternal dengan memanfaatkan pin intrerupsi atau secara
internal melalui program.
Special functioning block :
Beberapa mikrokontroler dibuat untuk aplikasi tertentu atau aplikasi khusus misal pada
perangkat luar angkasa, robot, mobil balap, dan lainnya. Mikorokontroler ini biasanya
dibuat dengan adanya penambahan port untuk operasi khusus.
1.2
Mikrokontroler ATMega8535
Pada pembelajaran ini menggunakan mikrokontroler ATMega8535 yang merupakan bagian
keluarga mikrokontroler AVR (Alf and Vegard’s Risc processor) keluaran Atmel. Pada
mikrokontroler ATMega8535 (gambar 1.3) memiliki spesifikasi sebagai berikut :
Flash memory
EEPROM data memory
SRAM data memory
Akumulator
Frekuensi
Sumber tegangan
I/O pin
Interupsi
Interupsi eksternal
Timer/ counter (8 bit)
Timer/ counter (16 bit)
PWM
ADC (10 bit)
Oscillator
Power – on reset
Watchdog timer
Real time counter
Analog comparator
ISP via SPI port
Full duplex SPI
I2C
Full duplex USART
: 8 kB
: 512 B
: 512 B
: 32
: 0 – 16 MHz
: 4,5 – 5,5 V
: 32
: 20
:3
:2
:1
: 4 channel
: 8 channel
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
:1
Gambar 1.3. Mikrokontroler ATMega8535
Konfigurasi pin ATMega8535 pada tipe standar 40 PDIP adalah seperti pada gambar 1.4 yang
menjelaskan fungsi tiap-tiap pin pada mikrokontroler ATMega8535.
Gambar 1.4. Konfigurasi pin mikrokontroler ATMega8535
Semua Port I/O merupakan pin I/O dua arah seperti yang terlihat pada gambar 1.2 dengan
internal pull-up resistor (kecuali pada port A masing-masing pull-up resistor dapat digunnakan
jika ADC tidak digunakan). Port A (kaki ke 33....40) merupakan pin I/O yang dapat digunakan
sebagai pin masukan ADC yang disediakan 8 pin. Pada port B (kaki 1....8) merupakan pin I/O
yang dapat berfungsi sebagai timer/ counter, komparator analog, dan SPI. Port C (kaki ke
22....29) merupakan pin I/O yang juga dapat berfungsi sebagai komparator analog, TWI, dan
timer oscilator. Port D (kaki ke 14....21) merupakan pin I/O yang juga dapat berfungsi interupsi
eksternal, komunikasi serial dan komparator analog. Port VCC (kaki ke 10) merupakan pin
sumber tegangan digital (4,5 – 5,5 Volt). Port GND (kaki ke 11) merupakan pin yang terhubung
dengan ground. Port RESET (kaki ke 9) merupakan pin yang berfungsi me-reset mikrokontroler.
Port XTAL 1 (kaki ke 13) merupakan masukan ke penguat oscillator dan masukan ke rangkaian
clock internal. Port XTAL 2 (kaki ke 12) merupakan luaran dari penguat oscillator. Port AVCC
(kaki ke 30) merupakan pin untuk tegangan port A dan ADC. Jika ADC tidak digunakan dapat
disambungkan dengan Port VCC. Port AREF (kaki ke 32) merupakan pin referensi analog untuk
nilai ADC.
1.3
Belajar dengan mikrokontroler ATMega8535
Pada buku ini tidak banyak mengulas tentang teori mendasar tentang mikrokontroler,
namun lebih banyak proses kegiatan percobaan mandiri, sehingga anda diharapkan mampu
menganalisa setelah melakukan percobaan.
Pada kegiatan percobaan menggunakan ATMega8535, hal ini perlu ditegaskan lagi karena
dipasaran muncul dua nama yang yang hampir sama yaitu satunya adalah ATMega8535L. lalu
apa perbedaan keduanya? Jika ditoko komponen elektronik biasanya penjual biasanya
mengatakan jika ATMega8535L hanya bisa diinjeksi program 5 kali saja, berbeda dengan
ATMega8535 yaitu dapat diinjeksi hingga ratusan bahkan ribuan kali. Benarkah demikian?
Sebenarnya perbedaan mendasar keduanya adalah pada sumber tegangan dan frekuensi
kecepatan. ATMega8535L bekerja pada sumber tegangan 2,7 – 5,5 Volt, sedangkan pada
ATMega8535 bekerja pada tegangan 4,5 – 5, 5Volt. ATMega8535L memiliki speed grades 0 – 8
MHz, sedangkan ATMega8535 memiliki speed grades 0 – 16 MHz.
Trainer kit yang digunakan pada kegiatan percobaan merupakan trainer kit buatan
Laboratorium Sistem Komputer dan Kontrol – Politeknik Negeri Jember sebagai perlengkapan
kegiatan praktikum perkuliahan mikrokontroler. Trainer kit telah terintegrasi dengan downloader
mikrokontroler dengan koneksi USB yaitu USBasp yang diadopsi dari produk Thomas Fischl
(http://www.fischl.de/usbasp/) untuk memudahkan anda dalam melakukan percobaan. Trainer kit
ini telah melalui beberapa tahap perbaikan dan penyempurnaan dalam menemukan bentuk dan
penataan port-port yang dianggap paling nyaman dan mudah dipahami oleh pemula. Pada trainer
kit anda/ pengguna setelah dapat menggunakannya secara berkelanjutan, karena setelah anda
memiliki/ membuat sendiri masih bisa digunakan selain proyek-proyek percobaan di dalam buku
ini.
Penggunaan program aplikasi pada buku ini menggunakan Codevision AVR C compiler
yang berbasis bahasa C. Codevision AVR C compiler versi evaluasi bisa didapatkan secara gratis
(http://www.hpinfotech.ro/cvavr_download.html) dengan kapasitas program maksimum 4 kB
untuk versi terbarunya (versi 3.08). Untuk dapat menggunakan seluruh kapasitas mikrokontroler
dapat menggunakan Codevision AVR C Compiler yang versi standar (komersil). Kelemahan dari
Codevision AVR C Compiler adalah belum dapat dijalankan di OS (Operating System) selain
Microsoft Windows. Untuk dapat menjalakan di Linux atau OS X (Machintosh) masih perlu
menggunakan bantuan virtual OS. Selain Codevision AVR C Compiler pada buku in juga
menggunakan Khazama AVR Programmer yang merupakan aplikasi khusus untuk USBasp.
Khazama AVR Programmer yang akan digunakan bisa anda dapatkan secara gratis
(http://khazama.com/project/programmer/).
Dalam penggunaan buku ini sebaiknya anda sudah mempelajari beberapa hal berikut ini :
a. Datasheet mikrokontroler ATMega8535
b. Dasar-dasar pemrograman bahasa C
c. Dasar-dasar elektronika, digital (sistem bilangan dan logika dasar)
d. Teknik antarmuka (interface)
e. USBasp driver (http://www.fischl.de/usbasp/)
Untuk hasil yang lebik bagus dari produk anda nanti akan lebih baik jika menguasai pembuatan
PCB dengan bantuan software.
Banyak yang mengenal atau mengatakan bahwa mikrokontroler adalah komputer mini/
mikro. Mengenai kebenaran istilah komputer mini untuk sebutan mikrokontroler dapat dilihat
dari beberapa hal berikut :
1. Masing-masing memiliki unit pengolah atau yang biasa disebut CPU (Central Processing
Unit).
2. Terdapat ROM (Read Only Memory) dan RAM (Random Access Memory) sebagai lokasi
eksekusi program dan menyimpan data sementara.
3. Memiliki fungsi (I/O) input (masukan) dan output (luaran) sebagai penghubung dengan
perangkat lain (dunia luar).
Yang menjadi pembeda secara nyata antara koputer dengan mikrokontroler adalah ukuran dan
kecepatan dikarenakan perbedaan ukuran yang disesuaikan dengan kebutuhan. Lalu ada
perangkat yang disebut mikroprosesor yang juga sering kita dengar. Apa itu mikroprosesor ?
Mikroprosesor merupakan CPU yang terintegrasi dalam perangkat tunggal (single chip).
Mikroprosesor biasanya digunakan untuk keperluan kinerja yang relatif tinggi dan cepat. Untuk
mendukung penggunaannya mikroprosesor masih membutuhkan perangkat lain secara eksternal
seperti I/O, RAM, ROM dan lainnya. Berbeda dengan mikrokontroler yang sudah terdapat
perangkat eksternal dalam kemasannya. Perbedaan mikrokontroler dengan mikroprosesor dapat
dilihat pada gambar 1.1
Mikroprosesor
RAM
CPU
ROM
Timer
I/O
Mikroprosesor
RAM
ROM
I/O
Timer
Mikrokontroler
Gambar 1.1. Perbedaan mikroprosesor dengan mikrokontroler
1.1
Mikrokontroler
Mikrokontroler dapat kita jumpai atau ditemukan pada perangkat elektronik dalam industri,
perkantoran, rumah tangga dan lainnya. Dalam industri misalnya penggunaan mikrokontroler
dapat ditemukan pada perangkat kontrol alat-alat berat, dalam perkantoran dapat ditemukan
dalam perangkat alat penghitung, display, pencetak, dalam rumah tangga dapat ditemukan dalam
mesin cuci, televisi, AC dan lain-lain. Penggunaan mikrokontroler tersebut didasari pada
kelebihan yang dimiliki dibanding dengan mikroprosesor. Mikrokontroler pada dasarnya terdapat
salah satu atau lebih dari komponen berikut :
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
CPU (Central Processing Unit)
RAM
ROM
Terminal I/O
Timer dan Counter
Kontrol Interupsi
ADC (Analog to Digital Converter)
DAC (Digital to Analog Converter)
Terminal antarmuka serial
Rangkaian oscilator
Sedangkan diagram blok dasar mikrokontroler seperti pada gambar 1.2
Rangkaian Oscilator
RAM
ROM/EPROM/EEPROM
Special functioning block
Interrupt control
DAC
ADC
Timers/ Counters
Gambar 1.2. Struktur mikrokontroler
CPU :
Parallel I/O port
CPU
CPU merupakan otak sebuah mikrokontroler. CPU memiliki tugas utama menghasilkan/
menentukan instruksi dan dekode instruksi yang berakhir pada eksekusi instruksi.
Memory :
Memory berfungsi sebagai penyimpan data dan program seperti pada mikroprosesor. Pada
mikrokontroler biasanya memiliki RAM dan ROM (EPROM, EEPROM) atau flash
memory untuk menyimpan kode program (source code).
Parallel I/O:
Port parallel I/O digunakan untuk antarmuka mikrokontroler dengan perangkat keras
seperti LED, LCD, printer, dan lainnya.
Serial :
Port serial menyediakan antarmuka serial antara mikrokontroler dan peripheral lainya
seperti port paralel
ADC :
ADC berfungsi untuk mengubah sinyal analog ke bentuk digital. Masukan ADC harus
berupa sinyal analog, misalnya pembacaan sensor dan luaran dari ADC berbentuk digital.
Luaran digital tersebut dapat digunakan untuk berbagai aplikasi digital (misal : perangkat
pengukuran)
DAC :
DAC merupakan kebalikan dari ADC yaitu mengubah sinyal digital kedalam format
analog. Biasanya digunakan untuk kontrol perangkat analog seperti motor DC.
Timer dan Counter :
Timer dan counter merupakan salah satu kegunaan fungsi dari mikrokontroler. Sebuah
mikrokontroler kemungkinan memiliki lebih dari satu timer dan counter. Timer dan counter
menyediakan fungsi pewaktu dan penghitung didalam mikrokontroler. Proses/ operasi
utama dari bagian ini adalah melakukan fungsi pewaktu, modulasi, pembangkit pulsa,
pengukur frekuensi, membuat osilasi, dan lainnya. Dan juga dapat digunakan untuk
menghitung pulsa eksternal.
Interrupt control :
Kontrol interupsi digunakan untuk menyela (delay) sebuah program yang sedang bekerja.
Interupsi dapat dibuat secara eksternal dengan memanfaatkan pin intrerupsi atau secara
internal melalui program.
Special functioning block :
Beberapa mikrokontroler dibuat untuk aplikasi tertentu atau aplikasi khusus misal pada
perangkat luar angkasa, robot, mobil balap, dan lainnya. Mikorokontroler ini biasanya
dibuat dengan adanya penambahan port untuk operasi khusus.
1.2
Mikrokontroler ATMega8535
Pada pembelajaran ini menggunakan mikrokontroler ATMega8535 yang merupakan bagian
keluarga mikrokontroler AVR (Alf and Vegard’s Risc processor) keluaran Atmel. Pada
mikrokontroler ATMega8535 (gambar 1.3) memiliki spesifikasi sebagai berikut :
Flash memory
EEPROM data memory
SRAM data memory
Akumulator
Frekuensi
Sumber tegangan
I/O pin
Interupsi
Interupsi eksternal
Timer/ counter (8 bit)
Timer/ counter (16 bit)
PWM
ADC (10 bit)
Oscillator
Power – on reset
Watchdog timer
Real time counter
Analog comparator
ISP via SPI port
Full duplex SPI
I2C
Full duplex USART
: 8 kB
: 512 B
: 512 B
: 32
: 0 – 16 MHz
: 4,5 – 5,5 V
: 32
: 20
:3
:2
:1
: 4 channel
: 8 channel
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
: tersedia
:1
Gambar 1.3. Mikrokontroler ATMega8535
Konfigurasi pin ATMega8535 pada tipe standar 40 PDIP adalah seperti pada gambar 1.4 yang
menjelaskan fungsi tiap-tiap pin pada mikrokontroler ATMega8535.
Gambar 1.4. Konfigurasi pin mikrokontroler ATMega8535
Semua Port I/O merupakan pin I/O dua arah seperti yang terlihat pada gambar 1.2 dengan
internal pull-up resistor (kecuali pada port A masing-masing pull-up resistor dapat digunnakan
jika ADC tidak digunakan). Port A (kaki ke 33....40) merupakan pin I/O yang dapat digunakan
sebagai pin masukan ADC yang disediakan 8 pin. Pada port B (kaki 1....8) merupakan pin I/O
yang dapat berfungsi sebagai timer/ counter, komparator analog, dan SPI. Port C (kaki ke
22....29) merupakan pin I/O yang juga dapat berfungsi sebagai komparator analog, TWI, dan
timer oscilator. Port D (kaki ke 14....21) merupakan pin I/O yang juga dapat berfungsi interupsi
eksternal, komunikasi serial dan komparator analog. Port VCC (kaki ke 10) merupakan pin
sumber tegangan digital (4,5 – 5,5 Volt). Port GND (kaki ke 11) merupakan pin yang terhubung
dengan ground. Port RESET (kaki ke 9) merupakan pin yang berfungsi me-reset mikrokontroler.
Port XTAL 1 (kaki ke 13) merupakan masukan ke penguat oscillator dan masukan ke rangkaian
clock internal. Port XTAL 2 (kaki ke 12) merupakan luaran dari penguat oscillator. Port AVCC
(kaki ke 30) merupakan pin untuk tegangan port A dan ADC. Jika ADC tidak digunakan dapat
disambungkan dengan Port VCC. Port AREF (kaki ke 32) merupakan pin referensi analog untuk
nilai ADC.
1.3
Belajar dengan mikrokontroler ATMega8535
Pada buku ini tidak banyak mengulas tentang teori mendasar tentang mikrokontroler,
namun lebih banyak proses kegiatan percobaan mandiri, sehingga anda diharapkan mampu
menganalisa setelah melakukan percobaan.
Pada kegiatan percobaan menggunakan ATMega8535, hal ini perlu ditegaskan lagi karena
dipasaran muncul dua nama yang yang hampir sama yaitu satunya adalah ATMega8535L. lalu
apa perbedaan keduanya? Jika ditoko komponen elektronik biasanya penjual biasanya
mengatakan jika ATMega8535L hanya bisa diinjeksi program 5 kali saja, berbeda dengan
ATMega8535 yaitu dapat diinjeksi hingga ratusan bahkan ribuan kali. Benarkah demikian?
Sebenarnya perbedaan mendasar keduanya adalah pada sumber tegangan dan frekuensi
kecepatan. ATMega8535L bekerja pada sumber tegangan 2,7 – 5,5 Volt, sedangkan pada
ATMega8535 bekerja pada tegangan 4,5 – 5, 5Volt. ATMega8535L memiliki speed grades 0 – 8
MHz, sedangkan ATMega8535 memiliki speed grades 0 – 16 MHz.
Trainer kit yang digunakan pada kegiatan percobaan merupakan trainer kit buatan
Laboratorium Sistem Komputer dan Kontrol – Politeknik Negeri Jember sebagai perlengkapan
kegiatan praktikum perkuliahan mikrokontroler. Trainer kit telah terintegrasi dengan downloader
mikrokontroler dengan koneksi USB yaitu USBasp yang diadopsi dari produk Thomas Fischl
(http://www.fischl.de/usbasp/) untuk memudahkan anda dalam melakukan percobaan. Trainer kit
ini telah melalui beberapa tahap perbaikan dan penyempurnaan dalam menemukan bentuk dan
penataan port-port yang dianggap paling nyaman dan mudah dipahami oleh pemula. Pada trainer
kit anda/ pengguna setelah dapat menggunakannya secara berkelanjutan, karena setelah anda
memiliki/ membuat sendiri masih bisa digunakan selain proyek-proyek percobaan di dalam buku
ini.
Penggunaan program aplikasi pada buku ini menggunakan Codevision AVR C compiler
yang berbasis bahasa C. Codevision AVR C compiler versi evaluasi bisa didapatkan secara gratis
(http://www.hpinfotech.ro/cvavr_download.html) dengan kapasitas program maksimum 4 kB
untuk versi terbarunya (versi 3.08). Untuk dapat menggunakan seluruh kapasitas mikrokontroler
dapat menggunakan Codevision AVR C Compiler yang versi standar (komersil). Kelemahan dari
Codevision AVR C Compiler adalah belum dapat dijalankan di OS (Operating System) selain
Microsoft Windows. Untuk dapat menjalakan di Linux atau OS X (Machintosh) masih perlu
menggunakan bantuan virtual OS. Selain Codevision AVR C Compiler pada buku in juga
menggunakan Khazama AVR Programmer yang merupakan aplikasi khusus untuk USBasp.
Khazama AVR Programmer yang akan digunakan bisa anda dapatkan secara gratis
(http://khazama.com/project/programmer/).
Dalam penggunaan buku ini sebaiknya anda sudah mempelajari beberapa hal berikut ini :
a. Datasheet mikrokontroler ATMega8535
b. Dasar-dasar pemrograman bahasa C
c. Dasar-dasar elektronika, digital (sistem bilangan dan logika dasar)
d. Teknik antarmuka (interface)
e. USBasp driver (http://www.fischl.de/usbasp/)
Untuk hasil yang lebik bagus dari produk anda nanti akan lebih baik jika menguasai pembuatan
PCB dengan bantuan software.