Anda di halaman 1dari 14

MIKROKONTROLER

Pengendali mikro (bahasa Inggris: microcontroller) adalah sistem mikroprosesor lengkap


yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba
guna yang digunakan dalam sebuah PC, karena di dalam sebuah mikrokontroler umumnya
juga telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan
antarmuka I/O, sedangkan di dalam mikroprosesor umumnya hanya berisi CPU saja.

Mikrokontroler pada dasarnya adalah komputer dalam satu chip, yang di dalamnya terdapat
mikroprosesor, memori, jalur Input/Output (I/O) dan perangkat pelengkap lainnya.
Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC.
Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz,
sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar antara 1 – 16 MHz.
Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan
dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler
jauh lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan
mikrokontroler sudah cukup untuk dapat digunakan pada banyak aplikasi terutama karena
ukurannya yang kompak. Mikrokontroler sering digunakan pada sistem yang tidak terlalu
kompleks dan tidak memerlukan kemampuan komputasi yang tinggi.
Sistem yang menggunakan mikrokontroler sering disebut sebagai embedded system
atau dedicated system. Embeded system adalah sistem pengendali yang tertanam pada
suatu produk, sedangkan dedicated system adalah sistem pengendali yang dimaksudkan
hanya untuk suatu fungsi tertentu. Sebagai contoh printer adalah suatu embedded system
karena di dalamnya terdapat mikrokontroler sebagai pengendali dan juga dedicated system
karena fungsi pengendali tersebut berfungsi hanya untuk menerima data dan mencetaknya.
Hal ini berbeda dengan suatu PC yang dapat digunakan untuk berbagai macam keperluan,
sehingga mikroprosesor pada PC sering disebut sebagai general purpose microprocessor
(mikroprosesor serba guna). Pada PC berbagai macam software yang disimpan pada media
penyimpanan dapat dijalankan, tidak seperti mikrokontroler hanya terdapat satu software
aplikasi.
Penggunaan mikrokontroler antara lain terdapat pada bidang-bidang berikut ini.
 Otomotif : Engine Control Unit, Air Bag, fuel control, Antilock Braking System, sistem
pengaman alarm, transmisi automatik, hiburan, pengkondisi udara, speedometer dan
odometer, navigasi, suspensi aktif
 perlengkapan rumah tangga dan perkantoran : sistem pengaman alarm, remote control,
mesin cuci, microwave, pengkondisi udara, timbangan digital, mesin foto kopi, printer,
mouse.
 pengendali peralatan di industri.
 robotika.

Mikrokontroler berdasarkan arsitekturnya


 CISC (Complex Instruction Set Computing)
 RISC (Reduced Instruction Set Computing)
Sesuai dengan namanya masing-masing, maka dapat disimpulkan bahwa CISC mempunyai
instruksi lebih banyak daripada RISC. Akan tetapi RISC mempunyai fasilitas internal lebih
banyak daripada CISC.

Komponen Mikrokontroler
Gambar 1 menunjukkan komponen-komponen dari suatu mikrokontroler yang mempunyai
fasilitas lengkap beserta peranti eksternal yang biasanya dihubungkan ke/dari mikrokontroler.
Tidak semua mikrokontroler mempunyai semua komponen tersebut, misalnya konverter A/D
dan D/A hanya terdapat pada beberapa jenis mikrokontroler tertentu.
CPU (Central Processing Unit) pada mikrokontroler berupa mikroprosesor yang berfungsi
sebagai otak dari mikrokontroler. Mikroprocessor adalah peranti yang berfungsi untuk
memproses data, yaitu berupa fungsi logika dan aritmatika.

Gambar 1 Komponen dari suatu mikrokontroler


Dalam suatu mikrokontroler biasanya terdapat tiga buah memori, yaitu RAM, ROM
dan EEPROM. RAM dan ROM hampir selalu ada pada setiap mikrokontroler, sedangkan
EEPROM hanya terdapat pada beberapa jenis mikrokontroler tertentu. RAM digunakan
sebagai penyimpan data sementara yang berupa register-register. Register adalah tempat
penyimpanan data yang berkaitan dengan banyak hal, misalnya variabel dalam program,
keadaan input/output, serta pengaturan timer/counter dan komunikasi serial. Telah disebutkan
sebelumnya data pada RAM akan hilang saat catu daya dicabut.
ROM digunakan sebagai tempat penyimpanan program. ROM yang banyak dipakai pada
mikrokontroler saat ini adalah flash PEROM (Programmable Erasable ROM), yang mirip
seperti memori pada flash disk, namun bedanya adalah flash PEROM hanya dapat dihapus
dan ditulis secara sekaligus. EEPROM (Electrical Erasable Programmable Read Only
Memory) biasanya digunakan untuk menyimpan data yang tidak boleh hilang meski catu daya
dihapus. Meski fungsinya mirip EEPROM biasanya lebih sedikit digunakan dibanding RAM
karena kecepatan akses EEPROM yang lebih lambat. Contoh penggunaannya adalah
penyimpanan data password. atau setting suatu sistem.
Timer/counter adalah peranti untuk mencacah sinyal dari clock ataupun sinyal dari suatu
kejadian. Jika sinyal yang dicacah berasal dari clock maka peranti ini berfungsi sebagai
pewaktu, sedangkan jika berasal dari clock maka peranti ini berfungsi sebagai pencacah.
Pewaktu bisa digunakan untuk bermacam-macam kegunaan, misalnya untuk menghasilkan
tundaan waktu dan untuk mengukur selang waktu suatu proses.
Peranti antarmuka ke input/output pada mikrokontroler disebut sebagai port. Pada satu port
I/O digital terdiri beberapa pin, biasanya berjumlah 8 atau satu byte, dengan masing-masing
pin dapat mentransfer satu bit data biner (logika 0 dan 1) dari/ke mikrokontroler. Selain port
I/O digital, pada suatu mikrokontroler juga dapat berkomunikasi dengan peranti lain
menggunakan komunikasi serial. Terdapat berbagai standar atau protokol untuk komunikasi
serial seperti SPI (Serial Peripherial Interface), I2C (Inter-Integrated Circuit), 1-wire, 2-wire,
UART (Universal Asynchronous Receiver Transmitter) dan USART (Universal Synchronous-
Asynchronous Receiver Transmitter).

Jenis-Jenis Mikrokontroler (http://sat.uns.ac.id/mikrokontroler-dan-jenis-jenisnya/)


Secara umum mikrokontroler terbagi menjadi 3 keluarga besar yang ada di pasaran. Setiap
keluarga memepunyai ciri khas dan karekteriktik sendiri sendiri, berikut pembagian keluarga
dalam mikrokontroler:
 Keluarga MCS51
Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC (Complex
Instruction Set Computer). Sebagian besar instruksinya dieksekusi dalam 12 siklus
clock. Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya
dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode perluasan telah
mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB diberikan alamat dengan
cara jalur pemilihan chip yang terpisah untuk akses program dan memori data.
Salah satu kemampuan dari mikrokontroler 8051 adalah pemasukan sebuah mesin
pemroses boolean yang mengijikan operasi logika boolean tingkatan-bit dapat
dilakukan secara langsung dan secara efisien dalam register internal dan RAM. Karena
itulah MCS51 digunakan dalam rancangan awal PLC (Programmable Logic Control).
Semua mikrokontroler ini dilengkapi dengan Flash PEROM (Programmable
Eraseable Read Only Memory) sebagai media memori-program, dan susunan kaki IC-
IC tersebut sama pada tiap versinya.
 PIC
PIC ialah keluarga mikrokontroler tipe RISC buatan Microchip Technology.
Bersumber dari PIC1650 yang dibuat oleh Divisi Mikroelektronika General
Instruments. Teknologi Microchip tidak menggukana PIC sebagai akronim,melaikan
nama brandnya ialah PICmicro. Hal ini karena PIC singkatan dari Peripheral Interface
Controller, tetapi General Instruments mempunyai akronim PIC1650 sebagai
Programmabel Intelligent Computer.
PIC pada awalnya dibuat menggunakan teknologi General Instruments 16 bit CPU
yaitu CP1600. * bit PIC dibuat pertama kali 1975 untuk meningkatkan performa
sistem peningkatan pada I/). Saat ini PIC telah dilengkapi dengan EPROM dan
komunikasi serial, UAT, kernel kontrol motor dll serta memori program dari 512 word
hingga 32 word. 1 Word disini sama dengan 1 instruki bahasa assembly yang
bervariasi dari 12 hingga 16 bit, tergantung dari tipe PICmicro tersebut. Silahkan
kunjungi www.microchip.com untuk melihat berbagai produk chip tersebut.
Pada awalnya, PIC merupakan kependekan dari Programmable Interface Controller.
Tetapi pada perkembangannya berubah menjadi Programmable Intelligent Computer.
PIC termasuk keluarga mikrokonktroler berarsitektur Harvard yang dibuat oleh
Microchip Technology. Awalnya dikembangkan oleh Divisi Mikroelektronik General
Instruments dengan nama PIC1640. Sekarang Microhip telah mengumumkan
pembuatan PIC-nya yang keenam.
 AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR
merupakan mikrokonktroler RISC (Reduced Instruction Set Computer) 8 bit. Karena
RISC inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock. AVR
adalah jenis mikrokontroler yang paling sering dipakai dalam bidang elektronika dan
instrumentasi.
Secara umum, AVR dapat dikelompokkan dalam 4 kelas. Pada dasarnya yang
membedakan masing-masing kelas adalah memori, peripheral dan fungsinya. Keempat
kelas tersebut adalah keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega dan
AT86RFxx.

Fitur AVR ATMega328


ATMega328 adalah mikrokontroller keluaran dari Atmel yang mempunyai arsitektur
RISC (Reduce Instruction Set Computer) yang dimana setiap proses eksekusi data lebih cepat
dari pada arsitektur CISC (Completed Instruction Set Computer).
Mikrokontroller ini memiliki beberapa fitur antara lain :
 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.
 32 x 8-bit register serba guna.
 Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
 32 KB Flash memory dan pada arduino memiliki bootloader yang menggunakan 2 KB
dari flash memori sebagai bootloader.
 Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory)
sebesar 1KB sebagai tempat penyimpanan data semi permanent karena EEPROM
tetap dapat menyimpan data meskipun catu daya dimatikan.
 Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
 Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM (Pulse Width
Modulation) output.
 Master / Slave SPI Serial interface.

Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk
kode program dan memori untuk data sehingga dapat memaksimalkan kerja dan parallelism.
Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada
saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program.
Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu
siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU (
Arithmatic Logic unit ) yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini
dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak
langsung untuk mengambil data pada ruang memori data.
Ketiga register pointer 16-bit ini disebut dengan register X (gabungan R26 dan R27), register
Y (gabungan R28 dan R29), dan register Z (gabungan R30 dan R31). Hampir semua instruksi
AVR memiliki format 16-bit. Setiap alamat memori program terdiri dari instruksi 16-bit atau
32-bit.
Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik
memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus
antara lain sebagai register control Timer/ Counter, Interupsi, ADC, USART, SPI, EEPROM,
dan fungsi I/O lainnya. Register – register ini menempati memori pada alamat 0x20h – 0x5Fh.
Berikut ini adalah tampilan architecture ATmega 328:

Gambar 2.1.1a Architecture ATmega328


Konfigurasi PIN ATMega328

Gambar 2.1.2a Konfigurasi Pin ATMega328

Table 2.1.2b Konfigurasi Port B


Table 2.1.2c Konfigurasi Port C

Tabel 2.1.2d Konfigurasi Port D

Arduino
Arduino merupakan rangkaian elektronik yang bersifat open source, serta memiliki
perangkat keras dan lunak yang mudah untuk digunakan. Arduino dapat mengenali
lingkungan sekitarnya melalui berbagai jenis sensor dan dapat mengendalikan lampu, motor,
dan berbagai jenis aktuator lainnya. Arduino mempunyai banyak jenis, di antaranya Arduino
Uno, Arduino Mega 2560, Arduino Fio, dan lainnya. (www.arduino.cc).

Beberapa tipe Arduino

Tipe Arduino Mikrokontroler PIN I/O Memori


32 KB Flash PEROM, 1 KB SRAM, 512
Nano ATMega328 14 pin
byte EEPROM
32 KB Flash PEROM, 2 KB SRAM,
Duemilanove ATMega328 14 pin
1KB EEPROM
256 KB Flash PEROM, 8 KB SRAM, 4
Mega2560 ATMega2560 54 pin
KB EEPROM
32 KB Flash PEROM, 2 KB SRAM, 1
Uno ATMega328 14 pin
KB EEPROM

Arduino Uno
Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino
memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai output PWM, 6
analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol
reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer
menggunakan kabel USB.

Gambar 2.3. Board Arduino Uno


(http://www.arduino.cc)
Arduino adalah merupakan sebuah board minimum sistem mikrokontroler yang
bersifat open source. Di dalam rangkaian board arduino terdapat mikrokontroler AVR seri
ATMega 328 yang merupakan produk dari Atmel.
Arduino memiliki kelebihan tersendiri dibanding board mikrokontroler yang lain
selain bersifat open source, arduino juga mempunyai bahasa pemrogramanya sendiri yang
berupa bahasa C. Selain itu dalam board arduino sendiri sudah terdapat loader yang berupa
USB sehingga memudahkan kita ketika kita memprogram mikrokontroler didalam arduino.
Sedangkan pada kebanyakan board mikrokontroler yang lain yang masih membutuhkan
rangkaian loader terpisah untuk memasukkan program ketika kita memprogram
mikrokontroler. Port USB tersebut selain untuk loader ketika memprogram, bisa juga
difungsikan sebagai port komunikasi serial.
Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan 14 pin
digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan sebagai output digital
jika diperlukan output digital tambahan selain 14 pin yang sudah tersedia. Untuk mengubah
pin analog menjadi digital cukup mengubah konfigurasi pin pada program. Dalam board kita
bisa lihat pin digital diberi keterangan 0-13, jadi untuk menggunakan pin analog menjadi
output digital, pin analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19.
dengan kata lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16.

Sifat open source arduino juga banyak memberikan keuntungan tersendiri untuk kita
dalam menggunakan board ini, karena dengan sifat open source komponen yang kita pakai
tidak hanya tergantung pada satu merek, namun memungkinkan kita bisa memakai semua
komponen yang ada dipasaran.
Bahasa pemrograman arduino merupakan bahasa C yang sudah disederhanakan syntax
bahasa pemrogramannya sehingga mempermudah kita dalam mempelajari dan mendalami
mikrokontroller.
Spesifikasi Arduio UNO:

Tabel Deskripsi Arduino Uno


(Sumber: http://www.arduino.cc)

Kapasitas EEPROM pada Arduino UNO sebesar 1 KB, artinya alamatnya mulai dari 0 sampai
1023. Satu alamat EEPROM mampu menampung data 1 byte (maksimum 255).
Power
Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya
diselek secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor
dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply. Board
arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply
kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi
tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat
panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada pada 7 sampai 12
volt.

Penjelasan pada pin power adalah sebagai berikut :


 Vin
Tegangan input ke board arduino ketika menggunakan tegangan dari luar (seperti yang
disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan). Pengguna dapat
memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack,
aksesnya menggunakan pin ini.
 5V
Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada
board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau
supply regulasi 5V lainnya.
 3V3
Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA
 Pin Ground
berfungsi sebagai jalur ground pada arduino
 Memori
ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 0,5 KB yang
digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk
EEPROM.

Input & Output


Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output,
menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Input/output dioperasikan
pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki
internal pull-up resistor (disconnected oleh default) 20-50K Ohm.
Beberapa pin memiliki fungsi sebagai berikut :
 Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirim (TX) TTL data
serial. Pin ini terhubung pada pin yang koresponding dari USB ke TTL chip serial.
 Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap
pada low value, rising atau falling edge, atau perubahan nilai.
 PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite().
 SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mensuport komunikasi SPI, yang
mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino.
 LED : 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH,
LED hidup, ketika pin LOW, LED mati.

Komunikasi
Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer,
Arduino lain, atau mikrokontroler lain. ATmega328 ini menyediakan UART TTL (5V)
komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX). Firmware Arduino
menggunakan USB driver standar COM, dan tidak ada driver eksternal yang dibutuhkan.
Namun, pada Windows, file. Ini diperlukan. Perangkat lunak Arduino termasuk monitor serial
yang memungkinkan data sederhana yang akan dikirim ke board Arduino. RX dan TX LED
di board akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi
USB ke komputer.

Software Arduino
Arduino Uno dapat diprogram dengan perangkat lunak Arduino . Pada ATMega328 di
Arduino terdapat bootloader yang memungkinkan Anda untuk meng-upload kode baru untuk
itu tanpa menggunakan programmer hardware eksternal.
IDE Arduino adalah software yang sangat canggih ditulis dengan menggunakan Java.
IDE Arduino terdiri dari:
1. Editor program, sebuah window yang memungkinkan pengguna menulis dan
mengeditprogram dalam bahasa Processing.
2. Compiler, sebuah modul yang mengubah kode program (bahasa Processing) menjadi kode
biner. Bagaimanapun sebuah mikrokontroler tidak akan bisa memahami bahasa
Processing. Yang bisa dipahami oleh mikrokontroler adalah kode biner. Itulah sebabnya
compiler diperlukan dalam hal ini.
3. Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam memory
didalam papan Arduino.
Sebuah kode program Arduino umumnya disebut dengan istilah sketch. Kata sketch digunakan secara
bergantian dengan “kode program” dimana keduanya memiliki arti yang sama.
(http://www.arduino.cc)

(http://www.arduino.cc)
Gambar Tampilan IDE Arduino dengan sebuah sketch

Anda mungkin juga menyukai