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 ini.
(http://www.kelas-mikrokontrol)
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 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.3. Board Arduino Uno
Apakah arduino?, Menurut (FeriDjuandi, 2011) 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.
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.
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
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 proses input/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>.
thanks
BalasHapusPengaplikasiannya sprti ap?
BalasHapusmksih ilmunya tp masih kurang paham'. Ribet bgt kayaknya,
Pengaplikasiannya sprti ap?
BalasHapusmksih ilmunya tp masih kurang paham'. Ribet bgt kayaknya,
jadi puyeng
BalasHapusMakasih mas
BalasHapusKalo dalam 1 program terdapat beberapa #include, #include tersebut apa harus diupload 1 per 1 ato cukup sekali upload program (sudah termasuk beberapa #include) tersebut? Trims
BalasHapusbantu jawab aja, kalau misalnya ada banyak #include tapi masih dalam satu program maka proses uploadnya cukup sekali aja kak gausah berkali-kali.
Hapusarduino bisa memprogram apa saja ya min?
BalasHapusuntuk referensi kodingan arduino bisa liat di instrucstable aja kak atau di forum arduinonya langsung.
HapusGan cara menggunakan digital pin 0 dan 1 ke pin input modul relay gimana?kok gk bisa ya? Cuman 2 pin itu doang yg gk bisa yg lainnya bisa semua..terima kasih jika berkenan menjawabnya.. :)
BalasHapusGan cara menggunakan digital pin 0 dan 1 ke pin input modul relay gimana?kok gk bisa ya? Cuman 2 pin itu doang yg gk bisa yg lainnya bisa semua..terima kasih jika berkenan menjawabnya.. :)
BalasHapusmenurut saya pribadi,
Hapuspin 0 dan 1 untuk serial komunikasi arduino dengan modul atau sebagainya
pin 0 = RX (receiver)
pin 1 = TX (transmiter)
Mkasih bro infonya....
BalasHapusapa arduno bisa di program lebih dari 2 program, misal 6 program sekaligus
BalasHapussetahu saya belum bisa sekaligus
Hapuskalau kita membuat power suplay dengan adaptor dan baterai gimana,jadi kalau adaptor nyala maka baterai tidak d gunakan dan ketika adaptor mati,power suplay y pindah ke baterai gimana ya...?
BalasHapusbantu jawab,
Hapuspakai arduino juga bisa, tapi kemahalan jika digunakan untuk itu.
coba aja pakai relay yang NC(normaly close) dan NO(normaly open) yang ada dua.
jadi,,, jika di relay diberi arus, maka NO akan terhubung. atau sebaliknya
jika tidak ada arus, maka NC akan terhubung
keren min. thanks yaa
BalasHapusmengendalikan kipas agin menggunakan arduino uno apakah itu juga bisa?
BalasHapusok min, makasih banyak sudah share ilmunya ya
BalasHapussolder uap tangan
Satu unit arduino bisa buat brapa progam?
BalasHapusMin kalo buat projek baru apakah harus beli arduino lagi?
BalasHapus