BAB II
ARDUINO,
KONTROLLER, DAN BRICK BREAKER
2.1 Arduino
2.1.1
Pengertian Arduino
Gambar 2.1 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.
Arduino adalah
pengendali mikro single-board yang bersifat open-source, diturunkan
dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik
dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri.
Arduino juga
merupakan platform hardware terbuka yang ditujukan kepada siapa saja yang
ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware
dan software yang fleksibel dan mudah digunakan. Mikrokontroler diprogram
menggunakan bahasa pemrograman arduino yang memiliki
kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang
terbuka maka siapa saja dapat mengunduh skema hardware arduino dan
membangunnya.
Arduino menggunakan
keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai basis, namun ada
individu/perusahaan yang membuat clone arduino dengan menggunakan
mikrokontroler lain dan tetap kompatibel dengan arduino pada level hardware.
Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi
untuk membypass bootloader dan menggunakan downloader untuk memprogram
mikrokontroler secara langsung melalui port ISP.
Arduino adalah merupakan
sebuah board minimum system mikrokontroler yang bersifat open source. Didalam
rangkaian board arduino terdapat mikrokontroler AVR seri ATMega 328 yang
merupakan produk dari Atmel.
Arduino memiliki
kelebihan tersendiri disbanding 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.
2.1.2 Jenis-Jenis
Arduino
Dan seperti
Microcontroller yang banyak jenisnya, Arduino lahir dan berkembang, kemudian
muncul dengan berbagai jenis. Diantaranya adalah:
a. Arduino
Uno
Jenis yang ini adalah
yang paling banyak digunakan. Terutama untuk pemula sangat disarankan untuk
menggunakan Arduino Uno. Dan banyak sekali referensi yang membahas Arduino Uno.
Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan ATMEGA328
sebagai Microcontrollernya, memiliki 14 pin I/O digital dan 6 pin input analog.
Untuk pemograman cukup menggunakan koneksi USB type A to To type B. Sama
seperti yang digunakan pada USB printer.
Gambar 2.2 Arduino
Uno
b. Arduino
Due
Berbeda dengan saudaranya,
Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi
ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12 pin input analog. Untuk
pemogramannya menggunakan Micro USB, terdapat pada beberapa handphone.
Gambar 2.3 Arduino
Due
c. Arduino
Mega
Arduino
Mega Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk
pemogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi
ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak
dari Uno.
Gambar 2.4 Arduino
Mega
d. Arduino
Leonardo
Bisa dibilang
Leonardo adalah saudara kembar dari Uno. Dari mulai jumlah pin I/O digital dan
pin input Analognya sama. Hanya pada Leonardo menggunakan Micro USB untuk
pemogramannya.
Gambar 2.5 Arduino
Leonardo
e. Arduino
Fio
Bentuknya lebih unik,
terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama
dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat
dipakai untuk keperluan projek yang berhubungan dengan wireless.
Gambar 2.6 Arduino
Fio
f. Arduino
Lilypad
Bentuknya yang
melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti
membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi
masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6
pin input analognya.
Gambar 2.7 Arduino
Lilypad
g. Arduino
Nano
Sepertinya namanya,
Nano yang berukulan kecil dan sangat sederhana ini, menyimpan banyak fasilitas.
Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O
Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang
menggunakan ATMEGA168, atau ATMEGA328.
Gambar 2.8 Arduino
Nano
h. Arduino
Mini
Fasilitasnya sama
dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk
pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.
Gambar 2.9 Arduino
Mini
i. Arduino
Micro
Ukurannya lebih
panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu;
memiliki 20 pin I/O digital dan 12 pin input analog.
Gambar 2.10 Arduino
Micro
j. Arduino
Ethernet
Ini arduino yang
sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu dapat
berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O
Digital dan Input Analognya sama dengan Uno.
Gambar 2.11 Arduino
Ethernet
k. Arduino
Esplora
Rekomendasi bagi kamu yang mau membuat gadget
sepeti Smartphone, karena sudah dilengkapi dengan Joystick, button, dan
sebagainya. Kamu hanya perlu tambahkan LCD, untuk lebih mempercantik Esplora.
Gambar 2.12 Arduino
Esplora
l. Arduino
Robot
Ini adalah paket komplit dari Arduino yang sudah
berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared,
dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.
Gambar 2.13 Arduino
Robot
2.1.3 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..(FeriDjuandi, 2011)
Gambar 2.14. Board Arduino
Uno
Deskripsi Arduio UNO:
Tabel Deskripsi Arduino
Uno
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 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2
KB untuk SRAM dan 1 KB untuk EEPROM.
2.1.4 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.
2.1.5 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.
2.1.6 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 bahasaProcessing. Yang bisa dipahami
oleh mikrokontroler adalah kode biner. Itulah sebabnyacompiler 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.
2.1.7 Bahasa
Pemograman Arduino Berbasis Bahasa C
Seperti yang telah
dijelaskan diatas program Arduino sendiri menggunakan bahasa C. walaupun
banyak sekali terdapat bahasa pemrograman tingkat tinggi (high level language)
seperti pascal, basic, cobol, dan lainnya. Walaupun demikian, sebagian besar
dari paraprogramer profesional masih tetap memilih bahasa C sebagai bahasa yang
lebih unggul, berikut alasan-alasannya:
·
Bahasa C merupakan bahasa
yang powerful dan fleksibel yang telah terbukti dapat
menyelesaikan program-program besar seperti pembuatan sistem operasi, pengolah
gambar (seperti pembuatan game) dan juga pembuatan kompilator bahasa
pemrograman baru.
·
Bahasa C merupakan bahasa yang portabel sehingga dapat
dijalankan di beberapa sistem operasi yang berbeda. Sebagai contoh program yang
kita tulis dalam sistem operasi windows dapat kita kompilasi didalam sistem
operasi linux dengan sedikit ataupun tanpa perubahan sama sekali.
·
Bahasa C merupakan bahasa yang sangat populer dan banyak digunakan oleh
programer berpengalaman sehingga kemungkinan
besar library pemrograman telah banyak disediakan oelh pihak
luar/lain dan dapat diperoleh dengan mudah.
·
Bahasa C merupakan bahasa yang bersifat modular, yaitu tersusun atas
rutin-rutin tertentu yang dinamakan dengan fungsi (function) dan
fungsi-fungsi tersebut dapat digunakan kembali untuk pembuatan program-program
lainnya tanpa harus menulis ulang implementasinya.
·
Bahasa C merupakan bahasa tingkat menengah (middle level language)
sehingga mudah untuk melakukan interface (pembuatan program antar muka) ke
perangkat keras.
·
Struktur penulisan program dalam bahasa C harus memiliki fungsi utama,
yang bernama main(). Fungsi inilah yang akan dipanggil pertama kali pada saat
proses eksekusi program. Artinya apabila kita mempunyai fungsi lain selain
fungsi utama, maka fungsi lain tersebut baru akan dipanggil pada saat
digunakan.
Oleh karena itu
bahasa C merupakan bahasa prosedural yang menerapakan konsep runtutan (program
dieksekusi per baris dari atas ke bawah secara berurutan), maka apabila kita
menuliskan fungsi-fungsi lain tersebut dibawah fungsi utama, maka kita harus
menuliskan bagian prototipe (prototype), hal ini dimaksudkan untuk mengenalkan
terlebih dahulu kepada kompiler daftar fungsi yang akan digunakan di dalam
program. Namun apabila kita menuliskan fungsi-fungsi lain tersebut diatas atau
sebelum fungsi utama, maka kita tidak perlu lagi untuk menuliskan bagian
prototipe diatas. (Djuandi, Feri. (2011) )
Selain itu juga dalam
bahasa C kita akan mengenal file header, biasa ditulis dengan
ekstensi h(*.h), adalah file bantuan yang yang digunakan untuk menyimpan
daftar-daftar fungsi yang akan digunakan dalam program. Bagi anda yang
sebelumnya pernah mempelajari bahasa pascal, file header ini serupa
dengan unit. Dalam bahasa C, file header standar yang untuk
prosesinput/output adalah <stdio.h>.
Perlu sekali untuk
diperhatikan bahwa apabila kita menggunakan file header yang telah
disediakan oleh kompilator, maka kita harus menuliskannya didalam tanda‘<’
dan ‘>’ (misalnya <stdio.h>). Namun apabila menggunakan file
header yang kita buat sendiri, maka file tersebut ditulis diantara tanda “
dan ” (misalnya “cobaheader.h”). perbedaan antara keduanya terletakpada saat
pencerian file tersebut. Apabila kita menggunakan tanda <>, maka file
tersebut dianggap berada pada direktori deafault yang telah ditentukan oleh
kompilator. Sedangkan apabila kita menggunakan tanda “”, maka file
header dapat kita dapat tentukan sendiri lokasinya.
File header yang
akan kita gunakan harus kita daftarkan dengan menggunakan
directive#include. Directive #include ini berfungsi untuk
memberi tahu kepada kompilator bahwa program yang kita buat akan menggunakan
file-file yang didaftarkan. Berikut ini contoh penggunaan
directive #include.
#include<stdio.h>
#include<stdlib.h>
#include”myheader.h”
Setiap kita akan
menggunakan fungsi tertentu yang disimpan dalam sebuah file header, maka
kita juga harus mendaftarkan file headernya dengan menggunakan
directive #include. Sebagai contoh, kita akan menggunakan
fungsi getch() dalam program, maka kita harus mendaftarkan file
header<conio.h>.
Untuk penjelasan yang
lebih mendalam, web Arduino.cc adalah sumber yang lengkap.
Struktur
Setiap program
Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.
·
void setup( ) { } o Semua kode didalam kurung kurawal akan dijalankan
hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.
·
void loop( ) { } o Fungsi ini akan dijalankan setelah setup (fungsi void
setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi,
dan lagi secara terus menerus sampai catu daya (power) dilepaskan.
Syntax
Berikut ini adalah
elemen bahasa C yang dibutuhkan untuk format penulisan.
·
//(komentar satu baris) Kadang diperlukan untuk memberi catatan pada
diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah
garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh
program.
·
/* */(komentar banyak baris) Jika anda punya banyak catatan, maka hal
itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang
terletak di antara dua simbol tersebut akan diabaikan oleh program.
·
{ }(kurung kurawal) Digunakan untuk mendefinisikan kapan blok program
mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).
·
;(titik koma) Setiap baris kode harus diakhiri dengan tanda titik koma
(jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).
Variabel
Sebuah program secara
garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka
dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya.
·
int (integer) Digunakan untuk menyimpan angka dalam 2 byte (16 bit).
Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.
·
long (long) Digunakan ketika integer tidak mencukupi lagi. Memakai 4
byte (32 bit) dari memori (RAM) dan mempunyai rentang dari -2,147,483,648 dan
2,147,483,647.
·
boolean (boolean) Variabel sederhana yang digunakan untuk menyimpan
nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan
1 bit dari RAM.
·
float (float) Digunakan untuk angka desimal (floating point). Memakai 4
byte (32 bit) dari RAM dan mempunyai rentang dari -3.4028235E+38 dan
3.4028235E+38.
·
char (character) Menyimpan 1 karakter menggunakan kode ASCII (misalnya
‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.
Operator Matematika
Operator yang
digunakan untuk memanipulasi angka (bekerja seperti matematika yang sederhana)
·
= Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10
* 2, x sekarang sama dengan 20)
·
% Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang
lain (misalnya: 12 % 10, ini akan menghasilkan angka 2)
·
+ Penjumlahan
·
- Pengurangan
·
* Perkalian
·
/ Pembagian
Operator Pembanding
Digunakan untuk
membandingkan nilai logika.
·
== Sama dengan (misalnya: 12 == 10 adalah FALSE (salah) atau 12 == 12
adalah TRUE (benar))
·
!= Tidak sama dengan (misalnya: 12 != 10 adalah TRUE (benar) atau 12 !=
12 adalah FALSE (salah))
·
< Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12
< 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar))
·
> Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12
> 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))
Struktur Pengaturan
Program sangat
tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini
adalah elemen dasar pengaturan (banyak lagi yang lain dan bisa dicari di
internet).
1.
if..else, dengan format seperti berikut ini:
if (kondisi) { }
else if (kondisi) { }
else { }
Dengan struktur
seperti diatas program akan menjalankan kode yang ada di dalam kurung kurawal
jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi
pada else if dan jika kondisinya FALSE maka kode pada else yang akan
dijalankan.
2.
for, dengan format seperti berikut ini:
for (int i = 0; i
< #pengulangan; i++) { }
Digunakan bila anda
ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti
#pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan
ke atas dengan i++ atau ke bawah dengan i–.
Digital
1.
pinMode(pin, mode) Digunakan untuk menetapkan mode dari suatu pin, pin
adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19).
Mode yang bisa digunakan adalah INPUT atau OUTPUT.
2.
digitalWrite(pin, value) Ketika sebuah pin ditetapkan sebagai OUTPUT,
pin tersebut dapat dijadikan HIGH (ditarik menjadi 5 volts) atau LOW
(diturunkan menjadi ground).
3.
digitalRead(pin) Ketika sebuah pin ditetapkan sebagai INPUT maka anda
dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH
(ditarik menjadi 5 volts) atau LOW (diturunkan menjadi ground).
Analog
Arduino adalah mesin
digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog
(menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital.
1.
analogWrite(pin, value) Beberapa pin pada Arduino mendukung PWM (pulse
width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat merubah pin hidup
(on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat berfungsi
layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka
antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
2.
analogRead(pin) Ketika pin analog ditetapkan sebagai INPUT anda dapat
membaca keluaran voltase-nya. Keluarannya berupa angka antara 0 (untuk 0 volts)
dan 1024 (untuk 5 volts).
2.1.8 Sejarah
Singkat
Semuanya berawal dari
sebuah thesis yang dibuat oleh Hernando Barragan, di institute Ivrea, Italia pada tahun
2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama
Arduin of Ivrea. Lalu diganti nama menjadi Arduino yang dalam bahasa Italia
berarti teman yang berani.
Tujuan awal dibuat
Arduino adalah untuk membuat perangkat mudah dan murah, dari perangkat yang ada
saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan membuat
perangkat desain dan interaksi. Visi awalnya aja udah mulia kan.
Saat ini tim
pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca
Martino, David Mellis, dan Nicholas Zambetti. Mereka mengupayakan 4 hal dalam
Arduino ini, yaitu:
-
Harga terjangkau
-
Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Max, dan
sebagainya.
-
Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang
awam, bukan untuk orang teknik saja.
-
Open Source, hardware maupun software.
Sifat Arduino yang
Open Source, membuat Arduino berkembang sangat cepat. Dan banyak lahir
perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino, dan kalau
yang lokal ada namanya CipaDuino yang dibuat oleh SKIR70, terus ada MurmerDuino
yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya
adalah Admin Kelas Robot.
Sampai saat ini pihak
resmi, sudah membuat berbagai jenis-jenis Arduino. Mulai dari yang paling
mudah dicari dan paling banyak digunakan, yaitu Arduino Uno. Hingga Arduino
yang sudah menggunakan ARM Cortex, beebentuk Mini PC. Dan sudah ada ratusan
ribu Arduino yang digunakan di gunakan di dunia pada tahun 2011. Dan untuk hari
ini, yang bisa kamu hitung sendiri ya. Dan Arduino juga sudah banyak dipaka
oleh perusahaan besar. Contohnya Google menggunakan Arduino untuk Accessory
Development Kit, NASA memakai Arduino untuk prototypin, ada lagi Large Hadron
Colider memakai Arduino dalam beberapa hal untuk pengumpulan data. Dan banyak
yang bertanya juga Arduino ini menggunakan bahasa pemograman apa? Arduino
sebenarnya menggunakan bahas C, yang sudah disederhanakan. Sehingga orang awam
pun bisa menjadi seniman digital.
2.1.9 Kelebihan
Arduino
·
Tidak perlu perangkat chip programmer karena di dalamnya sudah ada
bootloader yang akan menangani upload program dari komputer.
·
Sudah memiliki sarana komunikasi USB, sehingga pengguna Laptop yang
tidak memiliki port serial/RS323 bisa menggunakan nya.
·
Bahasa pemrograman relatif mudah karena software Arduino dilengkapi
dengan kumpulan library yang cukup lengkap.
·
Memiliki modul siap pakai (shield) yang bisa ditancapkan pada board
Arduino. Misalnya shield GPS, Ethernet, SD Card, dll.
·
Open Source
Hardware maupun
software Arduino adalah open source. Artinya kita bisa membuat tiruan atau
clone atau board yang kompatibel dengan board Arduino tanpa harus membeli board
asli buatan Italy. Kalaupun kita membuat board yang persis dengan desain asli,
kita tidak akan dianggap membajak (asalkan tidak menggunakan trade
mark ‘Arduino’).
·
Tidak memerlukan chip programmer
Chip pada Arduino
sudah dilengkapi dengan bootloader yang akan menangani proses upload dari
komputer. Dengan adanya bootloader ini kita tidak memerlukan chip programmer lagi, kecuali
untuk menanamkan bootloader pada chip yang masih blank.
·
Koneksi USB
Sambungan dari
komputer ke board Arduino menggunakan USB, bukan serial atau parallel port.
Sehingga akan mudah menghubungkan Arduino ke PC atau laptop yang tidak memiliki
serial/parallel port.
·
Fasilitas chip yang cukup lengkap
Arduino menggunakan
chip AVR ATmega 168/328 yang memiliki fasilitas PWM, komunikasi serial, ADC,
timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul
atau alat lain dengan protokol yang berbeda-beda.
·
Ukuran kecil dan mudah dibawa
Ukuran board Arduino
cukup kecil, mudah di bawah kemana-mana bersama laptop atau dimasukan ke dalam
saku.
·
Bahasa pemrograman relatif mudah
Walaupun bahasa
pemrograman Arduino adalah bahasa C/C++, tetapi dengan penambahan library dan
fungsi-fungsi standar membuat pemrograman Arduino lebih mudah dipelajari dan
lebih manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 pada Arduino,
cukup menggunakan fungsi digitalWrite(10, HIGH); Sedangkan kalau menggunakan
bahasa C aslinya adalah PORTB |=(1<<2);
·
Tersedia library gratis
Tersedia library yang
sangat banyak untuk menghubungkan Arduino dengan macam-macam sensor, aktuator
maupun modul komunikasi. Misalnya library untuk mouse, keyboard, servo, GPS, dsb. Berhubung
Arduino adalah open source, maka library-library ini juga open source dan dapat
di download gratis di website Arduino.
·
Pengembangan aplikasi lebih mudah
Dengan bahasa yang
lebih mudah dan adanya library dasar yang lengkap, maka mengembangkan aplikasi
elektronik relatif lebih mudah. Contoh, kalau kita ingin membuat sensor suhu. Cukup membeli
sebuah IC sensor suhu (misalnya LM35) dan menyambungkan ke Arduino. Kalau suhu
tersebut ingin ditampilkan pada LCD, tinggal membeli
sebuah LCD dan menambahkan
library LCD pada
program yang sama, dan seterusnya.
·
Komunitas open source yang saling mendukung
Software Linux, PHP,
MySQL atau WordPress perkembangannya begitu pesat karena merupakan software
open source dimana ada komunitas yang saling mendukung pengembangan proyek.
Demikian juga dengan Arduino, pengembangan hardware dan software Arduino
didukung oleh pencinta elektronika dan pemrograman di seluruh dunia. Contoh,
interface USB pada Arduino Uno mengambil dari LUFA project. Library dan
contoh-contoh program adalah sumbangan dari beberapa programmer mikrokontroler,
seperti Tom Igoe, dsb.
·
INPUT/OUTPUT DIGITAL DAN INPUT ANALOG
Input/output digital atau digital pin adalah pin pin untuk menghubungkan arduino dengan komponen atau rangkaian digital. contohnya , jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output digital dan ground. komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin pin ini.
Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor suhu, sensor cahaya, dll.
·
CATU DAYA
pin pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada arduino tanpa melalui tegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal.
2.2 Mikrokontroler
2.2.1 Pengertian Mikrokontroler
Mikrokontroler
adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya
terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program,
atau keduanya), dan perlengkapan input output.
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.
Mikrokontroler merupakan
komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik,
yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut
“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
Mikrokontroler adalah sebuah sistem kompuer
fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor,
memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan
input output. 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.
Gambar
2.15 contoh penggunaan Mikrokontroler
Sekedar contoh, bayangkan diri Anda saat mulai
belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa
membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan andapun
bisa pula menulis hal-hal sebaliknya.
Begitu pula jika Anda sudah mahir membaca dan
menulis data maka Anda dapat membuat program untuk membuat suatu sistem
pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda.
Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol
peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya.
Secara harfiahnya bisa disebut “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 controls, mesin kantor,
peralatan rumah tangga, alat berat, dan mainan.
Dengan mengurangi ukuran, biaya, dan konsumsi
tenaga dibandingkan dengan mendesain menggunakan mikroprosesor memori, dan alat
input output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik
untuk berbagai proses menjadi lebih ekonomis. Dengan penggunaan mikrokontroler
ini maka :
· Sistem elektronik akan menjadi lebih ringkas
· Rancang bangun sistem elektronik akan lebih cepat
karena sebagian besar dari sistem adalah perangkat lunak yang mudah
dimodifikasi
· Pencarian gangguan lebih mudah ditelusuri karena
sistemnya yang kompak
Agar sebuah mikrokontroler dapat berfungsi, maka
mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut
dengan sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan
sistem clock dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan
sistem clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler
sudah beroperasi.
Yang dimaksud dengan sistem minimal adalah sebuah
rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah
aplikasi. Sebuah IC mikrokontroler tidakakan berarti bila hanya berdiri sendiri.
Pada dasarnya sebuah sistem minimal mikrokontroler AVR memiliki prinsip yang
sama.
2.2.2 Sejarah Mikrokontroler
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. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan
menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan
apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis
hal-hal sebaliknya.
Begitu pula
jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program
untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler
sesuai keinginan Anda. Mikrokontroler merupakan komputer didalam chip yang
digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan
efektifitas biaya. Secara harfiahnya bisa disebut “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 controls, mesin kantor, peralatan rumah tangga,
alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga
dibandingkan dengan mendesain menggunakan mikroprosesor memori, dan alat input
output yang terpisah, kehadiran mikrokontroler membuat kontrol elektrik untuk
berbagai proses menjadi lebih ekonomis.
Dengan penggunaan
mikrokontroler ini maka :
• Sistem elektronik akan menjadi lebih ringkas
• Rancang bangun sistem elektronik akan lebih cepat karena sebagian
besar dari sistem adalah perangkat lunak yang mudah dimodifikasi
• Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak
Namun demikian tidak
sepenuhnya mikrokontroler bisa 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 sudah 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 tidak rumit atau kompleks.
Agar sebuah
mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan
komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat
sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada
beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa
rangkaian eksternal pun mikrokontroler sudah beroperasi.
Untuk merancang sebuah sistem berbasis mikrokontroler, kita memerlukan
perangkat keras dan perangkat lunak, yaitu:
1.
Sistem minimal mikrokontroler
2.
Software pemrograman dan
kompiler, serta downloader
Yang dimaksud dengan
sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat
digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan
berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal
mikrokontroler AVR memiliki prinsip yang sama, yang terdiri dari 4 bagian,
yaitu :
1.
Prosesor, yaitu mikrokontroler
itu sendiri
2.
Rangkaian reset agar
mikrokontroler dapat menjalankan program mulai dari awal
3.
Rangkaian clock, yang digunakan
untuk memberi detak pada CPU
4.
Rangkaian catu daya, yang
digunakan untuk memberi sumberdaya
Pada mikrokontroler
jenis2 tertentu (AVR misalnya), poin2 pada no 2 ,3 sudah tersedia didalam
mikrokontroler tersebut dengan frekuensi yang sudah diseting dari vendornya
(biasanya 1MHz,2MHz,4MHz,8MHz), sehingga pengguna tidak perlu memerlukan rangkaian
tambahan, namun bila ingin merancang sistem dengan spesifikasi tertentu (misal
ingin komunikasi dengan PC atau handphone), maka pengguna harus menggunakan
rangkaian clock yang sesuai dengan karakteristik PC atau HP tersebut, biasanya
menggunakan kristal 11,0592 MHz, untuk menghasilkan komunikasi yang sesuai
dengan baud rate PC atau HP tersebut.
Gambar 2.16 contoh
Mikrokomputer
Mikrokontroler
pertama kali dikenalkan oleh Texas Instrument dengan seri TMS 1000 pada tahun
1974 yang merupakan mikrokontroler 4 bit pertama. Mikrokontroler ini mulai
dibuat sejak 1971. Merupakan mikrokomputer dalam sebuah chip, lengkap dengan
RAM dan ROM. Kemudian, pada tahun 1976 Intel mengeluarkan mikrokontroler yang
kelak menjadi populer dengan nama 8748 yang merupakan mikrokontroler 8 bit,
yang merupakan mikrokontroler dari keluarga MCS 48.
Sekarang di pasaran
banyak sekali ditemui mikrokontroler mulai dari 8 bit sampai dengan 64 bit,
sehingga perbedaan antara mikrokontroler dan mikroprosesor sangat tipis.
Masing2 vendor mengeluarkan mikrokontroler dengan dilengkapi fasilitas2 yang
cenderung memudahkan user untuk merancang sebuah sistem dengan komponen luar
yang relatif lebih sedikit.
Saat ini
mikrokontroler yang banyak beredar dipasaran adalah mikrokontroler 8 bit varian
keluarga MCS51(CISC) yang dikeluarkan oleh Atmel dengan seri AT89Sxx, dan
mikrokontroler AVR yang merupakan mikrokontroler RISC dengan seri ATMEGA8535
(walaupun varian dari mikrokontroler AVR sangatlah banyak, dengan masing-masing
memiliki fitur yang berbeda-beda).
Dengan mikrokontroler
tersebut pengguna (pemula) sudah bisa membuat sebuah sistem untuk keperluan
sehari-hari, seperti pengendali peralatan rumah tangga jarak jauh yang
menggunakan remote control televisi, radio frekuensi, maupun menggunakan
ponsel, membuat jam digital, termometer digital dan sebagainya.
Kelebihan utama dari
mikrokontroler ialah tersedianya RAM dan peralatan I/O pendukung sehingga
ukuran board mikrokontroler menjadi sangat ringkas. Mikrokontroler MCS51 ialah
mikrokomputer CMOS 8 bit dengan 4 KB Flash PEROM (Programmable and Erasable
Only Memory) yang dapat dihapus dan ditulisi sebanyak 1000 kali. Mikrokontroler
ini diproduksi dengan menggunakan teknologi high density non-volatile memory.
Flash PEROM on-chip
tersebut memungkinkan memori program untuk diprogram ulang dalam sistem
(in-system programming) atau dengan menggunakan programmer non-volatile memory
konvensional. Kombinasi CPU 8 bit serba guna dan Flash PEROM, menjadikan
mikrokontroler MCS51 menjadi microcomputer handal yang fleksibel.
Bentuk Fisik Mikrokontroler Keluarga MCS51 40 Pin
Gambar 2.17 Bentuk
Fisik Mikrokontroler Keluarga MCS51 40 Pin
Arsitektur perangkat
keras mikrokontroler MCS51 mempunyai 40 kaki, 32 kaki digunakan untuk keperluan
4 buah port pararel. 1 port terdiri dari 8 kaki yang dapat di hubungkan untuk
interfacing ke pararel device, seperti ADC, sensor dan sebagainya, atau dapat
juga digunakan secara sendiri setiap bitnya untuk interfacing single bit
septerti switch, LED, dll. Karakteristik lainya dari mikrokontroler MCS51
sebagai berikut:
·
Low-power
·
32 jalur masukan/keluaran yang dapat diprogram
·
Dua timer counter
·
16 bit RAM 128 byte
·
Lima interrupt
Tidak seperti sistem
komputer, yang mampu menanganiberbagai macam program aplikasi (misalnya
pengolah kata, pengolah angkadan lain sebagainya), mikrokontroler hanya bisa
digunakan untuk suatu aplikasi tertentu saja (hanya satu program saja yang bisa
disimpan). Perbedaan lainnya terletak pada perbandingan RAM dan ROM.
Pada sistem komputer
perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan
dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antarmuka perangkat
keras disimpan dalam ruang ROM yang kecil. Sedangkan pada Mikrokontroler,
perbandingan ROM dan RAM-nya yang besar, artinya program kontrol disimpan dalam
ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar,
sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk
register-register yang digunakan pada mikrokontroler yang bersangkutan.
Kelebihan Sistem Dengan Mikrokontroler
·
Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly
dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem
menjadi sangat mudah dikerjakan sesuai dengan logika sistem (bahasa assembly
ini mudah dimengerti karena menggunakan bahasa assembly aplikasi dimana
parameter input dan output langsung bisa diakses tanpa menggunakan banyak
perintah). Desain bahasa assembly ini tidak menggunakan begitu banyak syarat
penulisan bahasa pemrograman seperti huruf besar dan huruf kecil untuk bahasa
assembly tetap diwajarkan.
·
Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O
terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat
dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai
dengan kebutuhan sistem.
·
Sistem running bersifat berdiri sendiri tanpa tergantung dengan komputer
sedangkan parameter komputer hanya digunakan untuk download perintah instruksi
atau program. Langkah-langkah untuk download komputer dengan mikrokontroler
sangat mudah digunakan karena tidak menggunakan banyak perintah.
·
Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan
memori dan I/O yang disesuaikan dengan kebutuhan sistem.
·
Harga untuk memperoleh alat ini lebih murah dan mudah didapat.
Agar sebuah
mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan
komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat
sistem minimal paling tidak dibutuhkan sistem clock dan reset, walaupun pada
beberapa mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa
rangkaian eksternal pun mikrokontroler sudah beroperasi.
Untuk merancang
sebuah sistem berbasis mikrokontroler, kita memerlukan perangkat keras dan
perangkat lunak, yaitu:
· Sistem minimal
mikrokontroler.
· Software pemrograman
dan kompiler, serta downloader.
Yang dimaksud dengan
sistem minimal adalah sebuah rangkaian mikrokontroler yang sudah dapat
digunakan untuk menjalankan sebuah aplikasi. Sebuah IC mikrokontroler tidakakan
berarti bila hanya berdiri sendiri. Pada dasarnya sebuah sistem minimal
mikrokontroler AVR memiliki prinsip yang sama, yang terdiri dari 4 bagian,
yaitu :
-
Prosesor, yaitu mikrokontroler itu sendiri.
-
Rangkaian reset agar mikrokontroler dapat menjalankan program mulai dari
awal.
-
Rangkaian clock, yang digunakan untuk memberi detak pada CPU.
-
Rangkaian catu daya, yang digunakan untuk memberi sumberdaya.
Sistem Polling dan
Interupsi Polling sebenarnya bukan suatu fitur , ini adalah sesuatau yang harus
dilakukan jika mikrokontroler yang dipilih tidak memiliki interupsi.
Polling adalah teknik
perangkat lunak dimana kontroler secara terus menerus menanyakan suatu
perangkat jika membutuhkan servis.Perangkat membuat suatu tanda ketika data
siap untuk ditransfer ke kontroler, dimana kontroler akan melihat pool berikutnya.
Beberapa perangkat dapat dipolled dengan sukses, dengan kontroler yang meloncat
kepada rutin program yang lain, tergantung pada flag mana yang telah diset.
Dasar dari polling
adalah setiap fungsi memakai tipe round-robin untuk menanyakan ketika mereka dalam
keadaan yang membutuhkan sebuah servis, kita dapat membuat mereka
(prosedure/fungsi) memanggil fungsi mereka sendiri ketika prosedure tersebut
membutuhkan penanganan lain. Ini disebut dengan “interupt”, ketika perangkat
menginterupsi eksekusi program utama. Prosesor lalu akan mengambil waktu untuk
keluar dari eksekusi program normal untuk menguji source interrupt dan
mengambil aksi tertentu. Setelah itu, eksekusi program normal dilanjutkan.
Sebuah servis
interrupt dengan kata lain seperti sebuah sub-rutin, untuk melakukan perintah
lain yang sebelumnya tidak dijalankan sehingga dapat diantisipasi oleh prosesor
untuk menyesuaikan sebagian waktu, untuk mengeksekusi perintah baru dan
menghentikan program utama yang kemudian dijalankan kembali jika tidak ada
pemanggilan prosedur lain pada badan program.
Pemakaian prioritas interupsi di atas memiliki beberapa peraturan yang
tercantum dibawah ini:
Tidak ada interupsi
yang menginterupsi interupsi prioritas tinggi.
Interupsi prioritas
tinggi boleh menginterupsi interupsi prioritas rendah.
Interupsi prioritas
rendah boleh terjadi jika tidak ada interupsi lain yang sedang dijalankan.
Jika dua interupsi
terjadi pada waktu bersamaan, interupsi yang memiliki prioritas lebih tinggi
akan dikerjakan terlebih dahulu. Jika keduanya memiliki prioritas sama, maka
interupsi yang berada pada urutan polling akan dikerjakan terlebih dahulu.
Mikrokontroler ATMEL
secara otomatis akan menguji apakah sebuah interupsi bias terjadi setelah
setiap instruksi dikerjakan. Pengecekan ini mengikuti suatu alur yang disebut
dengan Polling Sequence dengan urutan:
-
Interupsi Eksternal 0
-
Interupsi Timer 0
-
Interupsi Eksternal 1
-
Interupsi Timer 1
-
Interupsi serial
Ini berarti jika sebuah
interupsi serial terjadi pada waktu bersamaan dengan interupsi eksternal 0,
maka interupsi eksternal 0 akan dikerjakan terlebih dahulu dan interupsi serial
baru akan dikerjakan setelah pengerjaan rutin interupsi eksternal 0 selesai
dilakukan.
2.3 Brick Breaker
Brick Breaker adalah
sebuah permainan dimana pemain harus
menghancurkan dinding batu bata dengan membelokkan bola yang memantul pada
paddle. Paddle dapat bergerak secara horizontal dan dikontrol dengan trackwheel
BlackBerry, mouse komputer atau sentuhan jari (dalam kasus layar sentuh). Bila
semua batu bata telah hancur, pemain maju ke level yang baru. Ada banyak versi
pemecah batu bata, beberapa di antaranya Anda bisa menembak bola api yang
menyala atau bermain dengan lebih dari satu bola jika pemain mendapat power up.
Brick breaker juga
permainan strategi yang menarik dari Knowledge Adventure, pembuat game edukasi
pemenang penghargaan untuk anak-anak.
Brick-breaker
merupakan salah satu genre yang cukup populer pada era keemasan game di tahun
90'an. Gameplay dalam game bergenre brick-breaker sangat simpel, tugasmu
hanyalah menghancurkan tembok yang tersedia menggunakan bola. Bola tersebut
akan terus memantul hingga semua tembok hancur, dan yang harus kamu lakukan
adalah menjaga bola tersebut agar tetap memantul dan tidak terjatuh ke lubang.
2.3.1 Cara
Bermain Brick Breaker
Permainan ini
memiliki grid batu bata dengan warna yang berbeda. Tujuan permainan Brick
Breaker adalah mengosongkan seluruh grid batu bata berbagai warna dengan
menggerakkan paddle sesuai pantulan arah bola. Ketika pemain mengarahkan bola
kapada batu bata maka batu bata akan menghilang. Jika pemain hanya perlu
membuang satu batu bata, mereka harus menggunakan paddle. Permainan berakhir
saat pemain sudah menghancurkan semua batu bata
Tidak ada komentar:
Posting Komentar