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.
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.
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:
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).
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.
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:
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.
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