Anda di halaman 1dari 64

Mengenal Arduino dari Pemula Sampai Mahir

Abstak
Arduino merupakan sebuah alat "multi-fungsi" yang mengarahkan kita untuk mengenal teknologi Mikrokontroler AVR. Disini akan dijelaskan secara detail
dari awal tentang: Apa itu Arduino, kenapa Arduino, bagaimana cara menggunakannya, dan contoh-contoh kode. Hasil dari artikel ini, pembaca dapat lebih
mengenal Arduino cara kerja dan cara penggunaannya.
Keyword: Arduino, Mikrokontroler AVR, Kode program Arduino

Daftar Isi
1. Pengantar Arduino
2. Mengapa Arduino?
3. Produk Arduino
4. Download
5. Instalasi
6. Lingkungan dan Cara Penggunaan
7. Referensi Bahasa yang Digunakan
8. Library dan Instalasinya
9. Contoh Kode Program dan Simulasi
10. Bantuan (Saat ini belum adan masalah dari Pembaca)

Referensi
Hampir keseluruhan artikel termasuk link di dalamnya mengacu pada situs resmi Arduino yang beralamat di http://arduino.cc/. Penulis hanya
menterjemahkan dan menambah beberapa tulisan tentang permasalahan yang dihadapi Pembaca.

Apa itu Arduino (Perkenalan)


Arduino adalah sebuah alat untuk membuat komputer sendiri sehingga dapat merasakan dan lebih mengontrol "dunia fisik" daripada komputer desktop.
Arduino adalah sebuah platform komputasi fisik yang open-source berbasis papan/board mikrokontroler sederhana, dan pengembangan dapat menulis
perangkat lunak untuk board ini.
Arduino dapat digunakan untuk mengembangkan objek interaktif, mengambil masukan dari berbagai switch atau sensor, dan mengendalikan berbagai
lampu, motor, dan output fisik lainnya. Proyek Arduino dapat berdiri sendiri, atau berkomunikasi dengan perangkat lunak (software) yang berjalan pada
komputer Anda (misalnya Flash, Pengolahan, MaxMSP.) Board dapat dirakit dengan tangan atau dibeli; open-source IDE dapat didownload secara gratis.
Seluruh file pendukung dapat Anda download di halaman download kami.

Mengapa Harus Arduino (Beberapa Kelebihan)


Ada banyak sistem berbasis mikrokontroler lain atau platform mikrokontroler yang tersedia untuk "komputasi fisik". Parallax Basic Stamp, Netmedia yang
BX-24, Phidgets, MIT Handyboard, dan banyak lagi yang lainnya menawarkan fungsionalitas yang sama. Semua alat ini mengambil rincian pemrograman
mikrokontroler berantakan dan membungkusnya dalam paket yang mudah digunakan.
Namun Arduino juga menyederhanakan proses pekerjaan berbasis mikrokontroler, serta menawarkan beberapa keuntungan lebih bagi guru, siswa, dan
amatir yang tertarik pada sistem lain:
1. Murah
Arduino relatif murah dibandingkan dengan platform mikrokontroler lain. Versi paling mahal dari modul Arduino dapat dirakit dengan tangan, dan
bahkan biaya perakitan modul Arduino kurang dari $50.
2. Cross-platform
Perangkat lunak Arduino berjalan pada Windows, Macintosh OSX, dan sistem operasi Linux. Kebanyakan sistem mikrokontroler terbatas pada
Windows.
3. Sederhana
Lingkungan pemrograman Arduino mudah digunakan untuk pemula, namun cukup bagi pengguna tingkat lanjut untuk mengambil keuntungan dari
fleksibilitasnya. Bagi para guru, Arduino sangat nyaman, didasarkan pada lingkungan pemrograman Processing, sehingga siswa belajar program
akan terbiasa dengan tampilan dan nuansa dari Arduino.
4. Open source dan perangkat lunak yang dapat dikembangkan
Arduino diproduksi sebagai alat open source, tersedia untuk perluasan bagi programmer berpengalaman. Bahasa dapat diperluas melalui
perpustakaan C++, dan orang-orang yang ingin memahami rincian teknis dapat membuat program lompatan dari Arduino ke bahasa pemrograman
berbasis C AVR. Demikian pula, Anda dapat menambahkan kode C AVR langsung ke dalam program Arduino.
5. Open source dan hardware dapat dikembangkan
Arduino didasarkan pada Atmel mikrokontroler ATMEGA8 dan ATmega168. Perencanaan/ Rancangan modul diterbitkan di bawah lisensi Creative
Commons, sehingga desainer sirkuit yang berpengalaman dapat membuat versi mereka sendiri, memperluas dan meningkatkan sistem Arduino.
Bahkan pengguna yang relatif tidak berpengalaman dapat membangun versi breadboard untuk memahami cara kerjanya dan menghemat uang.

List/ Daftar Produk Arduino (Lebih Detail)


Disini penulis akan memaparkan produk board Arduino yang sering atau pun jarang dipakai oleh kebanyakan penghobi Mikrokontroler. Sampai saat ini
penulis belum mencoba semua produk Arduino, tetapi tidak ada salahnya jika dibahas dengan referensi yang telah disediakan oleh website resmi Arduino
(http://arduino.cc/).

Gambar 1: Produk Arduino


Berikut beberapa produk Board yang diproduksi Arduino:
1. Arduino Uno

Mengenal Arduino Uno Lebih Rinci


Abstrak
Arduino Uno adalah board mikrokontroler berbasis ATmega328. Uno memiliki 14 pin digital input / output (dimana 6 dapat digunakan sebagai output
PWM), 6 input analog, resonator keramik 16 MHz, koneksi USB, jack listrik, header ICSP, dan tombol reset. Uno dibangun berdasarkan apa yang
diperlukan untuk mendukung mikrokontroler, sumber daya bisa menggunakan power USB (jika terhubung ke komputer dengan kabel USB) dan juga
dengan adaptor atau baterai.
Arduino Uno berbeda dari semua papan sebelumnya dalam hal tidak menggunakan FTDI chip driver USB-to-serial. Sebaliknya, fitur Atmega16U2
(Atmega8U2 sampai versi R2) diprogram sebagai konverter USB-to-serial. Revisi 2 dari Uno memiliki resistor pulling 8U2 HWB yang terhubung ke
tanah, sehingga lebih mudah untuk menggunakan mode DFU.

Gambar 1: Arduino Uno

Papan Arduino Rev 3 memiliki fitur baru seperti berikut:


Pertama adalah pinout: ada penambahan pin SDA dan SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat dengan pin
RESET, IOREF yang memungkinkan shield untuk beradaptasi dengan tegangan yang disediakan dari papan / board. Di masa depan, shield akan
kompatibel dengan kedua papan yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino yang beroperasi 3.3V. Kedua adalah pin
tidak terhubung, yang dicadangkan untuk tujuan masa depan.
Reset sirkuit yang sangat kuat
Atmega16U2 menggantikan Atmega8U2
"Uno" dalam bahasa Italia berarti satu, alasan diberi nama tersebut adalah untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi
referensi dari Arduino, dan akan terus berkembang.

Daftar Isi

Ringkasan Spesifikasi
Skema dan Referensi Desain
Sumber Daya / Power
Memori
Input dan Output
Komunikasi
Pemrograman
Perlindungan Arus USB
Karakteristik Fisik

Ringkasan Spesifikasi
Mikrokontroler
Operasi tegangan
Input tegangan
Input tegangan batas
Pin I/O digital
Pin Analog
Arus DC tiap pin I/O
Arus DC ketika 3.3V
Memori flash
SRAM

ATmega328
5Volt
disarankan 7-11Volt
6-20Volt
14 (6 bisa untuk PWM)
6
50mA
50mA
32 KB (ATmega328) dan 0,5 KB digunakan oleh bootloader
2 KB (ATmega328)

EEPROM
Kecepatan clock

1 KB (ATmega328)
16 MHz

Skema dan Referensi Desain


File EAGLE: Arduino-uno-Rev3-referensi-design.zip (CATATAN: dapat berjalan pada Elang 6.0 dan yang lebih baru)
Skema: Arduino-uno-Rev3-schematic.pdf
Catatan: referensi desain Arduino dapat menggunakan Atmega8, 168, atau 328, Model-model terbaru menggunakan ATmega328, tetapi Atmega8
ditunjukkan dalam skema untuk referensi. Konfigurasi pin identik untuk ketiga prosesor tersebut.

Sumber Daya / Power


Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber daya dipilih secara otomatis. Untuk sumber daya Eksternal
(non-USB) dapat berasal baik dari adaptor AC-DC atau baterai. Adaptor ini dapat dihubungkan dengan memasukkan 2.1mm jack DC ke colokan listrik
board. Baterai dapat dimasukkan pada pin header Gnd dan Vin dari konektor DAYA.
Board dapat beroperasi pada pasokan eksternal dari 6 sampai 20 volt. Jika Anda menggunakan tegangan kurang dari 6 volt mungkin tidak akan stabil. Jika
menggunakan lebih dari 12V, regulator tegangan bisa panas dan merusak papan. Rentang yang dianjurkan adalah 7 sampai 12 volt.
Pin listrik yang tersedia adalah sebagai berikut:
VIN. Input tegangan ke board Arduino ketika menggunakan sumber daya eksternal. Anda dapat menyediakan tegangan melalui pin ini, atau, jika
Anda ingin memasok tegangan melalui colokan listrik, gunakan pin ini.
5V. Pin ini merupakan output 5V yang telah diatur oleh regulator papan Arduino. Board dapat diaktifkan dengan daya, baik dari colokan listrik DC
(7 - 12V), konektor USB (5V), atau pin VIN board (7-12V). Jika Anda memasukan tegangan melalui pin 5V atau 3.3V secara langsung (tanpa
melewati regulator) dapat merusak papan Arduino. Penulis tidak menyarankan itu.
Tegangan pada pin 3V3. 3.3Volt dihasilkan oleh regulator on-board. Menyediakan arus maksimum 50 mA.
GND. Pin Ground.
IOREF. Pin ini di papan Arduino memberikan tegangan referensi ketika mikrokontroler beroperasi. Sebuah shield yang dikonfigurasi dengan benar
dapat membaca pin tegangan IOREF sehingga dapat memilih sumber daya yang tepat agar dapat bekerja dengan 5V atau 3.3V.

Memori
ATmega328 memiliki 32 KB (dengan 0,5 KB digunakan untuk bootloader). ATmega328 juga memiliki 2 KB dari SRAM dan 1 KB EEPROM (yang dapat
dibaca dan ditulis dengan perpustakaan / library EEPROM).

Input dan Output

Masing-masing dari 14 pin digital Uno dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead().
Mereka beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki resistor pull-up internal (terputus
secara default) dari 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi spesial:
Serial: pin 0 (RX) dan 1 (TX) Digunakan untuk menerima (RX) dan mengirimkan (TX) data serial TTL. Pin ini terhubung dengan pin ATmega8U2
USB-to-Serial TTL.
Eksternal Interupsi: Pin 2 dan 3 dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah (low value), rising atau falling edge, atau
perubahan nilai. Lihat fungsi attachInterrupt() untuk rinciannya.
PWM: Pin 3, 5, 6, 9, 10, dan 11 Menyediakan 8-bit PWM dengan fungsi analogWrite()
SPI: pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) mendukung komunikasi SPI dengan menggunakan perpustakaan SPI
LED: pin 13. Built-in LED terhubung ke pin digital 13. LED akan menyala ketika diberi nilai HIGH
Arduino Uno memiliki 6 input analog, berlabel A0 sampai A5, yang masing-masing menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda). Secara
default mereka mengukur dari ground sampai 5 volt, perubahan tegangan maksimal menggunakan pin AREF dan fungsi analogReference(). Selain itu,
beberapa pin tersebut memiliki spesialisasi fungsi, yaitu TWI: pin A4 atau SDA dan A5 atau SCL mendukung komunikasi TWI menggunakan perpustakaan
Wire.
Ada beberapa pin lainnya yang tertulis di board:
AREF. Tegangan referensi untuk input analog. Dapat digunakan dengan fungsi analogReference().
Reset. Gunakan LOW untuk me-reset mikrokontroler. Biasanya digunakan untuk menambahkan tombol reset.

Komunikasi
Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan
UART TTL (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX). Pada ATmega16U2 saluran komunikasi serial melalui USB dan
muncul sebagai com port virtual untuk perangkat lunak pada komputer. Firmware 16U2 menggunakan standar driver USB COM, dan tidak ada driver
eksternal diperlukan. Namun, pada Windows, diperlukan file .inf. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data tekstual
sederhana akan dikirim ke dan dari papan Arduino. RX dan TX LED di papan akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan
koneksi USB komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1).
The ATmega328 juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat lunak Arduino termasuk perpustakaan Wire berfungsi menyederhanakan
penggunaan bus I2C. Untuk komunikasi SPI, menggunakan perpustakaan SPI.

Pemrograman
Arduino Uno dapat diprogram dengan software Arduino baca: Download Software Arduino untuk Berbagai OS. Pilih "Arduino Uno dari menu Tools >
Board (sesuai dengan mikrokontroler pada papan). Untuk rincian, silahkan baca: Mengenal Arduino dari Pemula Sampai Mahir.

Perlindungan Arus USB

Arduino Uno memiliki polyfuse reset yang melindungi port USB komputer Anda dari arus pendek atau berlebih. Meskipun kebanyakan komputer
memberikan perlindungan internal sendiri, sekering menyediakan lapisan perlindungan tambahan. Jika lebih dari 500 mA, sekering otomatis bekerja.

Karakteristik Fisik
Panjang maksimum dan lebar PCB Uno masing-masing adalah 2,7 dan 2,1 inci, dengan konektor USB dan colokan listrik yang melampaui dimensi
tersebut. Empat lubang sekrup memungkinkan board harus terpasang ke permukaan. Perhatikan bahwa jarak antara pin digital 7 dan 8 adalah 0,16", tidak
seperti pin lainnya.

2. Arduino Leonardo
3. Arduino Due
4. Arduino Yun
5. Arduino Tre
6. Arduino Micro
7. Arduino Robot
8. Arduino Esplora
9. Arduino Mega ADK
10. Arduino Ethernet
11. Arduino Pro Mini
12. Arduino Pro
13. Arduino Mega 2560
14. Arduino Mega
15. Arduino Duemilanove
16. Arduino Fio
17. Arduino Diecimila
18. Lilypad Arduino
19. Arduino NG (Nuova Generazione)
20. Arduino Extreme
21. Arduino USB
22. Arduino Nano
23. Arduino Serial
24. Arduino Mini
25. Arduino Singel Side Serial
26. Arduino Shields

Download Software Arduino untuk Berbagai OS

Arduino adalah software open source yang memudahkan anda untuk menulis kode program dan meng-upload-nya ke board Arduino. Software Arduino
dapat berjalan pada Windows, Mac OS X, dan Linux. Software ini ditulis dalam bentuk Java dan berbasis processing, avr-gcc, dan perangkat lunak open
source lainnya.
Sebelum download software Arduino, harap diperhatikan beberapa persyaratan berikut:

"THE ARDUINO SOFTWARE IS PROVIDED TO YOU "AS IS," AND WE MAKE NO EXPRESS OR IMPLIED WARRANTIES WHATSOEVER
WITH RESPECT TO ITS FUNCTIONALITY, OPERABILITY, OR USE, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR INFRINGEMENT. WE EXPRESSLY DISCLAIM ANY LIABILITY
WHATSOEVER FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR SPECIAL DAMAGES, INCLUDING, WITHOUT
LIMITATION, LOST REVENUES, LOST PROFITS, LOSSES RESULTING FROM BUSINESS INTERRUPTION OR LOSS OF DATA,
REGARDLESS OF THE FORM OF ACTION OR LEGAL THEORY UNDER WHICH THE LIABILITY MAY BE ASSERTED, EVEN IF ADVISED OF
THE POSSIBILITY OR LIKELIHOOD OF SUCH DAMAGES."
"PERANGKAT LUNAK ARDUINO DISEDIAKAN UNTUK ANDA "SEBAGAIMANA ADANYA," DAN KAMI TIDAK MEMBUAT JAMINAN
TERSURAT ATAU TERSIRAT APA PUN YANG BERKAITAN DENGAN FUNGSI TERSEBUT, PENGOPERASIAN, ATAU PENGGUNAAN,
TERMASUK, TIDAK TERBATAS , JAMINAN TERSIRAT DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, ATAU
PELANGGARAN. KAMI SECARA TEGAS MENOLAK TANGGUNG JAWAB APAPUN ATAS KERUSAKAN LANGSUNG, TIDAK LANGSUNG,
SEBAGAI AKIBAT, INSIDENTAL ATAU KHUSUS, TERMASUK, TIDAK TERBATAS, PENDAPATAN HILANG, KEHILANGAN KEUNTUNGAN,
KERUGIAN AKIBAT GANGGUAN USAHA ATAU HILANGNYA DATA, TANPA BENTUK TINDAKAN ATAU TEORI HUKUM YANG
BERTANGGUNG JAWAB, BAHKAN JIKA DIBERITAHU TENTANG KEMUNGKINAN KERUSAKAN TERSEBUT."

Dengan men-download perangkat lunak dari halaman ini, Anda setuju dengan persyaratan yang ditentukan.
Halaman ini berisi link download ke-terbaru software Arduino (IDE), catatan rilis, dan perangkat lunak tambahan yang tidak disertakan dengan IDE seperti
sistem untuk Yun.
1. Arduino 1.0.5
o Windows Installer
o Windows dengan file tipe .zip
o Mac OS X
o Linux: 32 bit
o Linux: 64 bit
o Source
2. Arduino 1.5.6-r2 BETA (dengan dukungan untuk Arduino Yun dan Arduino Due)
Jika memiliki Arduino Yun, Anda harus men-download versi 1.5.6. Versi 1.5.6 dapat menyebabkan masalah dengan monitor serial, namun dalam
versi 1.5.6-r2 masalah tersebut telah teratasi.
o Windows Installer
o Windows dengan file tipe .zip
o Mac OS X
o Linux: 32 bit
o Linux: 64 bit
o Source
3. Nightly Builds
o Windows
o Mac OS X
o Linux: 32 bit
o Linux: 64 bit
Untuk rilis Arduino sebelumnya dan beberapa software pendukung lain, silahkan kunjungi situs resmi Arduino (kembali ke Daftar isi dan lihat di Referensi
kami).

Mari Mulai Menggunakan Arduino di Windows


Artikel ini menjelaskan bagaimana cara menghubungkan papan (board) Arduino ke dalam komputer dan meng-upload sketsa (sketch) pertama Anda.
Silahkan ikuti instruksi-instruksinya dengan teliti.

Daftar Isi

Dapatkan papan (board) Arduino dan kabel USB


Download Software Arduino
Hubungkan papan Arduino ke Komputer

Instal driver
Membuka Software Arduino
Buka contoh blink
Pilih board yang anda pakai
Pilih Port Serial
Upload Program

Dapatkan papan (board) Arduino dan kabel USB


Dalam tutorial ini, Penulis asumsikan Anda menggunakan Arduino Uno, Arduino Duemilanove, Nano, Arduino mega 2560, atau Diecimila. Jika Anda
memiliki papan lain, silahkan baca yang sesuai saja dari halaman ini.

Gambar 1: Arduino dan Kabel USB


Anda juga perlu kabel USB standar: jenis yang sama ketika Anda akan menghubungkan komputer ke printer USB.

Download Software Arduino


Dapatkan versi terbaru dari halaman download yang tersedia, baca: Download Software Arduino untuk Berbagai OS.
Setelah download selesai, unzip file yang didownload (jika Anda mendownload file tipe .zip). Pastikan untuk mempertahankan struktur folder. Klik dua
kali pada folder untuk membukanya, dan akan ada beberapa file dan sub-folder di dalam.

Hubungkan papan Arduino ke Komputer


Arduino Uno, Mega Duemilanove dan Arduino Nano otomatis mengambil listrik dari salah satu koneksi USB komputer atau power supply eksternal. Jika
menggunakan Arduino Diecimila, Anda harus memastikan bahwa papan dikonfigurasikan untuk mengambil daya dari koneksi USB. Sumber daya dipilih
dengan jumper, plastik kecil yang terdapat antara USB dan jack listrik. Periksa apakah jumper diatur pada dua pin paling dekat dengan port USB atau tidak.
Hubungkan papan Arduino ke komputer menggunakan kabel USB. LED indikator daya hijau (berlabel PWR) akan menyala.

Instal Driver
Untuk menginstal driver Arduino di Windows 7, Vista, dan XP, silahkan baca: Cara Manual Instal Driver di Windows Lewat Device Manager.

Membuka Software Arduino


Klik dua kali aplikasi Arduino. (Catatan: jika software Arduino dalam bahasa yang salah, Anda dapat mengubahnya dalam dialog preferensi)

Buka contoh blink


Buka LED berkedip contoh sketsa: File > Examples > 1.Basics > Blink.

Gambar 2: Contoh Blink LED

Pilih Board yang Anda pakai


Anda harus memilih entri dalam menu Tools > Board yang sesuai dengan Arduino Anda.

Gambar 3: Memilih Board


Contoh diatas, user memilih Arduino Uno. Untuk papan Duemilanove dengan ATmega328 (periksa teks pada chip di papan), pilih Arduino Duemilanove
atau Nano w / ATmega328. Sebelumnya, Arduino datang dengan ATmega168, pilih Arduino Diecimila, Duemilanove, atau Nano w / ATmega168.

Pilih port serial Anda

Pilih perangkat serial Arduino dari menu Tools | Serial Port. Biasanya Port akan otomatis terdeteksi, jika masih bingung untuk mengetahuinya, Anda dapat
memutuskan papan Arduino dan buka kembali menu Tools | Serial Port. Entri yang hilang merupakan papan Arduino. Hubungkan kembali papan dan pilih
port serialnya.

Gambar 4: Memilih Port

Upload Program
Sekarang, cukup klik tombol "Upload". Tunggu beberapa detik - Anda akan melihat led RX dan TX pada papan berkedip.

Gambar 5: Upload
Jika proses upload berhasil, akan muncul pesan "Selesai meng-upload". Beberapa detik setelah selesai upload, Anda akan melihat pin 13 (L) LED di papan
mulai berkedip (oranye). Selamat! Anda sudah sukses menjalankan Arduino.

Mengenal dan Menulis Sketsa/ Sketch Arduino


Software/ Program yang ditulis menggunakan Arduino disebut sketsa. Sketsa ini ditulis dalam editor teks. Sketsa disimpan dengan ekstensi file .ino, yang
memiliki fitur untuk meng-cut, meng-copy, mem-paste, mencari/ mengganti teks, dll. Area pesan (console) memberikan umpan balik, menyimpan dan
mengekspor juga menampilkan kesalahan. Konsol menampilkan teks output dalam lingkungan Arduino termasuk detail pesan error dan informasi lainnya.
Bagian sudut bawah sebelah kanan jendela menampilkan board dan port serial yang sedang dipakai. Tombol-tombol toolbar memungkinkan Anda untuk
memverifikasi dan meng-upload program, membuat, membuka, dan menyimpan sketsa, juga membuka monitor serial.

Gambar 1: Toolbar dan Menu Arduino

NB: Versi IDE sebelum 1.0, sketsa disimpan dengan ekstensi .pde, tetapi jika ingin membuka file tersebut dengan Versi 1.0, Anda akan diminta menyimpan
ulang dalam format .ino.
Berikut pengenalan area kerja Arduino (disajikan dalam bentuk Tabel):
No Icon
Nama
1
Verify
2
3
4
5
6

Fungsi
Mengecek kode yang dibuat apakah error atau tidak

Upload
Mengkompilasi kode dan upload ke papan Arduino I / O.
New
Membuat sketsa baru
Open
Membuka sketsa yang telah dibuat
Save
Menyimpan sketsa yang dibuat/ diedit
Serial Monitor Membuka monitor serial

Disamping fungsi di atas, di Software Arduino terdapat menu yang memiliki kelebihan tertentu.

Edit
1. Copy untuk Forum
Salinan kode sketsa Anda ke clipboard dalam bentuk yang sesuai untuk posting ke forum , lengkap dengan pewarnaan sintaks.
2. Copy sebagai HTML
Salinan kode sketsa Anda ke clipboard sebagai HTML , cocok untuk embedding dalam halaman web.

Sketch
1. Show Sketch Folder
Membuka folder sketsa saat ini.
2. Add File
Menambahkan file sumber ke sketsa (akan disalin dari lokasi saat ini) . File baru akan muncul di tab baru di jendela sketsa . File dapat dihapus dari
sketsa dengan menggunakan menu tab.
3. Import Library
Menambahkan sebuah perpustakaan untuk sketsa Anda dengan memasukkan # include pada awal kode Anda.

Tool
1. Auto Format
Memformat kode Anda dengan baik : yaitu indentasi dalam membuka dan menutup kurung kurawal, dan pernyataan di dalam kurung kurawal akan
lebih menjorok.
2. Archive Sketch
Arsip salinan sketsa saat ini dalam format .zip. Arsip akan ditempatkan di direktori yang sama seperti sketsa.
3. Board
Pilih board yang Anda gunakan.
4. Serial Port
Menu ini berisi semua perangkat serial (nyata atau virtual) pada komputer Anda. Serial port ini akan me-refresh secara otomatis setiap kali Anda
membuka menu tools
5. Programmer
Memilih programmer hardware yang akan digunakan untuk meng-upload kode program, sehingga Anda tidak menggunakan koneksi onboard USB
- serial.
6. Burn Bootloader
Item dalam menu ini memungkinkan Anda untuk mem-burning bootloader ke mikrokontroler pada papan Arduino .

Referensi Bahasa Pemrograman Arduino


Bahasa pemrograman Arduino terbagi menjadi tiga golongan (secara global), yaitu Structure (struktur), Value / Nilai (Variables dan Constants), dan
Function (fungsi). Penulis akan memaparkan bahasa-bahasa tersebut yang disajikan dalam daftar dibawah ini:

Strktur
Setup()
Loop()

Kontrol Struktur
if
if... else
for
while
do... while

break
continue
return
goto

Further Syntax
; (titik koma)
{} (kurung kurawal)
// (komentar satu baris)
/**/ (komentar banyak baris)
#define
#include

Operator Aritmatika
= (penugasan)
+ (penambahan)
- (pengurangan)
* (perkalian)
/ (pembagian)
% (modulo)

Operator Pembanding
== (sama dengan)
!= (tidak sama dengan)
< (kurang dari)
> (lebih besar dari)
<= (kurang dari / sama dengan)
>= (lebih dari / sama dengan)

Operator Boolean
&& (dan)
|| (atau)
! (tidak)

Operator Pointer Access


* (dereference)
& (reference)

Operator Bitwise
& (dan)
| (atau)
^ (xor)
~ (tidak)
<< (bitshift kiri)
>> (bitshift kanan)

Operator Compound
++ (increment)
-- (decrement)
+= (addition)
-= (subtraction)
*= (multiplication)
/= (division)
&= (bitwise and)
|= (bitwise or)

Variabel

Constants
HIGH | LOW
INPUT | OUTPUT | INPUT_PULLUP
LED_BUILTIN
true | false
integer constants
floating point constants

Tipe Data
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long

short
float
double
string - char array
string - object
array

Konversi
char()
byte()
int()
word()
long()
float()

Ruang lingkup Variabel dan kualifikasi


variable scope
static
volatile
const

Utility
sizeof()

Fungsi

Digital I/O
pinMode()
digitalWrite()
digitalRead()

Analog I/O
analogReference()
analogRead()
analogWrite() - PWM

Due Only
analogReadResolution()
analogWriteResolution()

Advanced I/O
tone()
noTone()
shiftOut()
shiftIn()
pulseIn()

Waktu
millis()
micros()
delay()
delayMicroseconds()

Matematika
min()
max()
abs()
constrain()
map()
pow()
sqrt()

Trigonometri
sin()
cos()
tan()

Bilangan Acak
randomseed()
random()

Bits dan Bytes


lowByte()
highByte()
bitRead()
bitWrite()
bitSet()
bitClear()
bit()

Interupsi Eksternal
attachInterrupt()
detachInterrupt()

Interupsi
interrupts()
noInterrupts()

Komunikasi
Serial
Stream

USB (Khusus Leonardo dan Due)


Keyboard
Mouse

Cara Instal Library Tambahan Arduino


Setelah merasa nyaman dengan software Arduino dan menggunakan fungsi built-in-nya, Anda mungkin ingin menambah kemampuan Arduino dengan
library tambahan.

Apa itu Library?


Library/ Perpustakaan adalah kumpulan kode yang akan memudahkan kita terhubung ke sensor, display, modul, dll. Sebagai contoh, built-in library
LiquidCrystal berfungsi untuk memudahkan berkomunikasi dengan karakter display LCD. Ada ratusan perpustakaan tambahan yang tersedia di Internet
untuk di-download. Built-in perpustakaan dan beberapa dari library tambahan yang tercantum dalam referensi. Untuk menggunakan library tambahan,
Anda perlu menginstalnya dengan cara-cara dibawah ini.

Bagaimana cara menginstal Perpustakaan untuk Arduino?


Perpustakaan sering didistribusikan sebagai file ZIP atau folder. Nama folder adalah nama dari perpustakaan. Di dalam folder tersebut terdapat file .cpp,
file .h dan file keywords.txt, contoh folder, dan file lain yang dibutuhkan oleh perpustakaan.

Instal Library/ Perpustakaan Otomatis


Dimulai dengan versi 1.0.5, Anda dapat menginstal perpustakaan pihak ke-3 dalam IDE.
Jangan unzip perpustakaan yang telah didownload, biarkan apa adanya.
Dalam Arduino IDE, arahkan ke Menu Sketch > Import Library. Di bagian atas daftar drop-down, pilih opsi "Add Library".

Gambar 1: Menambahkan Library


Anda akan diminta untuk memilih perpustakaan yang ingin ditambahkan. Arahkan ke lokasi file .zip kemudian buka file tersebut.

Gambar 2: Memilih File .zip


Kembali ke menu Menu Sketch > Import Library. Sekarang Anda akan melihat perpustakaan di bagian bawah menu drop-down. Dengan ini perpustakaan
siap untuk digunakan dalam sketsa Anda.

Gambar 3: Library siap Dipakai


File zip tersebut akan diekspansi dalam direktory/ folder perpustakaan Arduino.
NB: perpustakaan dapat digunakan dalam sketsa, tapi contoh perpustakaan tersebut tidak akan muncul di File > Examples sampai IDE Arduino di-restart.

Instal Library/ Perpustakaan Manual


Untuk menginstal perpustakaan, pertama-tama keluar dari aplikasi Arduino.
Kemudian uncompress file ZIP yang berisi perpustakaan. Misalnya, jika Anda menginstal sebuah perpustakaan yang disebut "ArduinoParty",
ArduinoParty.zip setelah di-compress harus berisi sebuah folder bernama ArduinoParty, dengan file seperti ArduinoParty.Cpp dan ArduinoParty.h. (Jika file
.cpp dan .h tidak dalam folder yang sama, Anda harus menyatukannya. Dalam hal ini, Anda akan membuat folder bernama "ArduinoParty" dan
memindahkan semuanya ke folder tersebut).
Simpan folder ArduinoParty ke folder folder perpustakaan Anda. Pada Windows, kemungkinan akan terletak di "My Documents\Arduino\libraries".
Folder library Arduino milik Anda sekarang harus terlihat seperti ini (pada Windows):
My Documents\Arduino\libraries\ArduinoParty\ArduinoParty.cpp
My Documents\Arduino\libraries\ArduinoParty\ArduinoParty.h
My Documents\Arduino\libraries\ArduinoParty\examples

Restart aplikasi Arduino. Pastikan perpustakaan baru muncul di menu Sketch->Import Library. Itu saja! Anda telah selesai menginstal perpustakaan!

Tutorial Contoh Kode Program Arduino dan Simulasi ISIS Proteus


Abstrak
Sudah banyak sekali contoh program Arduino yang bisa Anda jadikan referensi, tetapi Aozon disini akan memaparkan bukan hanya contoh kode program
saja, tetapi skema pembuatan dan simulasi sirkuit dan lain-lain. Dengan artikel ini diharapkan pembaca dapat lebih memperdalam keilmuannya dalam
bidang pemrograman Arduino. Simulasi sirkuit dilakukan dengan menggunakan software ISIS (Proteus 7 Professional) yang memungkinkan Anda untuk
mengecek sirkuit terlebih dahulu agar berjalan dengan baik.
Keyword: Arduino, Contoh Program, ISIS Proteus.

Daftar Isi
1. Dasar
o
o
o

Kode dasar yang harus ada


Blink LED
Membaca masukan Digital (Tombol), kirim ke monitor PC (Serial)

o
o
o

Membaca masukan Analog (Potensio), kirim ke monitor PC (Serial)


Analog Output untuk meredupkan dan menerangkan LED
Membaca Analog dan mengkonversinya menjadi tegangan (0 - 5 Volt)

2. Digital
o
o
o
o
o
o
o
o
o

Blink LED tanpa delay


Tombol (push button) dan LED
Tombol dan filtering noise
Menghitung tombol ketika ditekan
Menggunakan INPUT_PULLUP
Nada dengan Piezo Speaker
Analog input dan Piezo
Keyboard dan Piezo
Multiple Speaker

3. Analog
Input Analog, mapping dan kontrol cahaya LED
Potensio mengontrol blink LED
Kontrol 12 LED dengan Arduino Mega
Menentukan nilai minimum dan maksimum sensor
Menggunakan PWM untuk mengontrol LED
Membaca analog input lebih halus
Komunikasi
o Membaca String ASCII
o Tabel ASCII
o Mouse dan LED
o Grafik
o Menyalakan dan mematikan LED
Kontrol Struktur
o pernyataan if
o Perulangan for
o Array
o Perulangan while
o switch case
Sensor
o ADXL3xx accelerometer
o Piezo
o Memsic2125
o Ping Ultrasonic
o SR04 Ultrasonic
Antarmuka / Display
o LED Bar Graph
o
o
o
o
o
o

4.

5.

6.

7.

8x8 matrix LED

8. String
o Mengenal lebih dalam tentang string dan akan di update jika ada permintaan dari pembaca
9. USB (Leonardo, Micro, dan Due)
o Kontrol Keyboard dan Mouse
o Mengirim string dengan keyboard
o Kursor dengan tombol
10. Bantuan (saat ini belum ada masalah dari pembaca)

Menggerakan Servo dengan Visual Basic 6 dan Arduino


Abstrak
Penelitian ini bertujuan untuk menambah kreativitas kita agar bisa memanfaatkan teknologi yang sedang berkembang sekarang ini. Metode yang dilakukan
sangat sederhana (karena artikel ini masih tahap pemula) yaitu Visual Basic 6 memberikan perintah/ command ke Arduino dalam bentuk data yang dapat
menjalankan Servo. Hasil dari penelitian ini yaitu dapat membuat software sendiri dengan Visual Basic 6, membuat program dengan Arduino, dan
memahami konsep pergerakan Servo.
Keyword: Visual Basic 6, Servo, Arduino

Daftar Isi
1. Pendahuluan
o Visual Basic 6
o Arduino
o Servo
2. Metode Pembuatan
3. Persiapan
4. Proses Pembuatan
o Membuat Kode Sumber Visual Basic
o Membuat Kode Sumber Arduino
5. Analisis dan Pembahasan
6. Download File Pendukung
7. Bantuan

Pengantar Visual Basic 6 (Lebih Detail)


Visual Basic adalah generasi ketiga dari event-driven programming language dan integrated development environment (IDE) dari Microsoft, pemrograman
pertama kali dirilis pada tahun 1991. Visual Basic relatif mudah dipelajari dan digunakan. Visual Basic berasal dari BASIC dan memungkinkan rapid

application development (RAD) dari) aplikasi graphical user interface (GUI, akses ke database menggunakan Akses Data Objects , remote Data Objects ,
atau ActiveX Data Objects , serta penciptaan ActiveX kontrol dan objek.

Gambar 1: Logo Visual Basic


Seorang pembuat program (Programmer) dapat membuat aplikasi dengan menggunakan komponen yang disediakan oleh Visual Basic itu sendiri. Program
yang ditulis dalam Visual Basic juga dapat menggunakan Windows API , namun hal ini membutuhkan deklarasi fungsi eksternal. Versi terakhir dari Visual
Basic adalah versi 6 yang di rilis pada tahun 1998. Dukungan Microsoft diperpanjang dan berakhir pada bulan Maret 2008 karena ada versi lain yang
diproduksi yaitu Visual Basic NET. (sekarang dikenal hanya sebagai Visual Basic).
Meskipun Visual Basic 6.0 tidak lagi tersedia secara resmi, masih banyak dari pengembang yang lebih suka Visual Basic 6.0 dari pada NET. Sebuah dialek
dari Visual Basic yaitu Visual Basic for Applications (VBA), digunakan sebagai bahasa scripting makro dalam beberapa aplikasi Microsoft, termasuk
Microsoft Office.

Daftar Isi
1.
2.
3.
4.
5.
6.
7.
8.

Fitur Bahasa
Karakteristik
Sejarah
Bahasa Derivatif
Deskripsi Timeline
Kinerja dan Isu-isu lain
Pengembangan dan Dukungan
Contoh Kode

Referensi
Keseluruh referensi ini ditujukan ke Wikipedia bahasa inggris yang bisa anda kunjungi di http://en.wikipedia.org/wiki/Visual_Basic. Kami hanya
menterjemahkan konten yang ada disana. Jika anda menginginkan lebih banyak referensi, silahkan kunjungi referensi kami.

Fitur Bahasa dalam Visual Basic 6


Seperti bahasa pemrograman BASIC, Visual Basic dirancang untuk mengakomodasi programmer pemula. Programmer dapat membuat aplikasi GUI yang
kompleks dengan cara yang sederhana. Pemrograman di VB dapat mengkombinasi antar visual dalam mengatur komponen atau kontrol yang ditampilkan
dalam sebuah Form , dapat menentukan atribut dan tindakan untuk komponen-komponen, dan menulis baris tambahan kode untuk fungsi tambahan. Sejak

VB mendefinisikan atribut default dan tindakan untuk komponen, programmer dapat mengembangkan program sederhana tanpa menulis banyak kode.
Meskipun program VB dapat dikompilasi ke dalam kode executable asli dari versi 5, tetap saja masih membutuhkan kehadiran sekitar 1 MB runtime
library. Runtime library disertakan secara default di Windows 2000 ke atas. Versi sebelumnya dari Windows (95/98/NT), mengharuskan perpustakaan
runtime didistribusikan dengan eksekusi. Kebanyakan pengguna saat ini menggunakan windows XP ke atas, jadi tidak masalah.

Gambar 1: Form pada Visual Studio 6


Form dibuat menggunakan teknik drag-and-drop. Kontrol memiliki atribut dan event handler yang terkait dan disajikan dalam lingkungan yang fleksibel
sehingga mudah diakses. Nilai default telah disediakan ketika kontrol dibuat, tetapi tentu saja dapat diubah oleh programmer. Banyak nilai atribut dapat
diubah selama run time berdasarkan tindakan pengguna atau perubahan lingkungan, sehingga VB menyediakan aplikasi yang dinamis. Sebagai contoh,
kode dapat dimasukkan ke dalam event handler yang dapat mengubah ukuran form untuk memposisikan kontrol sehingga tetap berpusat pada form.
Visual Basic dapat membuat executable (EXE file), kontrol ActiveX , dan file DLL, terutama digunakan untuk mengembangkan aplikasi Windows dan
antarmuka sistem database. Kotak dialog dengan fungsionalitas dapat digunakan untuk menyediakan kemampuan pop-up. Kontrol menyediakan fungsi
dasar dari aplikasi, sedangkan programmer dapat menyisipkan logika tambahan dalam event handler yang sesuai.

Karakteristik Pemrograman Visual Basic 6 (VB6)


Disini dijelaskan beberapa karakteristik perograman Visual Basic 6 (mungkin karakteristik ini sama dengan visual basic yang lebih baru juga).
Karakteristik ini cukup berbeda dengan bahasa C, jadi bisa dilihat dengan jelas, mana bahasa C dan mana Basic.

Gambar 1: Contoh Kode Visual Basic 6


Karakteristik Visual Basic 6:

1. Awal dan akhir statement/pernyataan menggunakan bahasa bukan simbol, Contoh If ... Then ... End If. Berbeda dengan bahasa C yang
menggunakan kurung {}.
2. Tidak bisa memasukan data ke variabel yang banyak. Misalkan A = B = C = D, tidak bisa dilakukan sehingga nilai A, B, C, dan D tidak bisa
dipastikan sama.
3. Konstanta dengan tipe data boolean dalam kondisi true memiliki nilai numerik -1. Hal ini terjadi karena tipe data boolean disimpan dalam 16-bit
integer.
4. Operator logika dan bitwise menyatu, ini merupakan fitur tradisional dari Basic.
5. Array dideklarasikan dengan menentukan batas atas dan bawah, cara ini mirip dengan Pascal dan Fortran.
6. Relatif kuat berintegrasi dengan sistem operasi Windows dan Component Object Model.
7. Banker Rounding dilakukan secara default untuk mengkonversi bilangan real ke dalam bilangan bulat (metode round).Contoh: Round (2.5, 0)
hasilnya adalah 2, sedangkan Round (3.5,0) hasilnya 4.
8. Secara default jika ada variabel yang belum dideklarasikan tipe datanya, maka otomatis variabel tersebut adalah varian. Namun hal ini dapat diubah
dengan pernyataan Deftype seperti DefInt, DefBool, DefVar, DefObj, DefStr. Ada 12 Deftype yang ditawarkan oleh Visual Basic 6.0. Default dapat
diganti untuk mendeklarasikan jenis tertentu dengan menggunakan karakter akhiran khusus pada nama variabel (# untuk ganda, ! Untuk Single, &
untuk Long, % untuk Integer, $ untuk String, dan @ untuk currency). VB juga dapat diatur denga mode hanya variabel secara eksplisit yang
dinyatakan dengan perintah Option Explicit.

Sejarah (History) Visual Basic (VB)


Visual Basic (VB) versi 1.0 diperkenalkan pada tahun 1991. Untuk membuat desain user interface (GUI) dengan fasilitas Drag dan drop berasal dari bentuk
prototipe Form generator yang dikembangkan oleh Alan Cooper dan perusahaannya yang disebut Tripod. Microsoft mengadakan kontrak dengan Cooper
dan rekan-rekannya untuk mengembangkan Tripod menjadi sistem form yang dapat diprogram dalam Windows 3.0, di bawah nama kode Ruby (tetapi tidak
ada hubungannya dengan bahasa pemrograman Ruby).

Gambar 1: Alan Cooper


Tripod tidak termasuk dalam bahasa pemrograman sama sekali. Microsoft memutuskan untuk menggabungkan Ruby dengan bahasa Basic untuk membuat
Visual Basic.

Antarmuka Ruby Generator menyediakan "visual" (bagian dari Visual Basic) dan ini dikombinasikan dengan "EB" mesin DASAR Tertanam dan dirancang
untuk meninggalkan "Omega" sebagai sistem database Microsoft. Ruby juga memberikan kemampuan untuk memuat link dinamis perpustakaan yang
berisi kontrol tambahan (kemudian disebut "gizmos"), yang kemudian menjadi antarmuka VBX.

Bahasa Derivatif (Turunan dari Visual Basic)


Microsoft telah mengembangkan turunan dari Visual Basic untuk digunakan dalam scripting. Visual Basic itu sendiri berasal dari BASIC , dan selanjutnya
telah diganti dengan NET yang merupakan versi platform.

Gambar 1: Logo Visual Basic


Beberapa bahasa yang diturunkan adalah:
1. Visual Basic for Applications (VBA) banyak terdapat dalam aplikasi Microsoft (Microsoft Office), dan juga diproduk pihak ketiga seperti
SolidWorks, AutoCAD, WordPerfect Office 2002, ArcGIS, Sage 300 ERP, dan Business Objects Desktop Intelligence. Ada inkonsistensi kecil
ketika VBA diimplementasikan dalam aplikasi yang berbeda, tetapi sebagian besar bahasa sama dengan Visual Basic 6.0 serta menggunakan
perpustakaan runtime yang sama. Pengembangan Visual Basic berakhir adalah 6.0, tetapi pada tahun 2010 Microsoft memperkenalkan VBA 7
untuk menyediakan fitur perpanjangan dan menambahkan dukungan untuk 64-bit.
2. VBScript adalah bahasa default untuk Active Server Pages. Hal ini dapat digunakan di Windows scripting dan client-side pada halaman web
scripting. VBScript menyerupai VB di dalam sintaks-nya , tetapi bahasa-dieksekusi oleh vbscript.dll bukan runtime VB. ASP dan VBScript tidak
harus bingung dengan ASP.NET, karena menggunakan .NET Framework untuk halaman web yang dikompilasi.
3. Visual Basic .NET ditunjuk Microsoft sebagai penerus Visual Basic 6.0, dan merupakan bagian dari Platform Microsoft .NET. Visual Basic .Net
mengkompilasi dan berjalan menggunakan .NET Framework, sehingga tidak kompatibel dengan Visual Basic 6.0 (meskipun ada beberapa konversi,
tetapi tidak mungkin dapat mengkonversi seluruhnya).
4. OpenOffice Basic adalah interpreter yang kompatibel Visual Basic dan berasal dari StarOffice office suite.
5. Gambas adalah program seperti Visual Basic yang terinspirasi dari perangkat lunak bebas yaitu (bahasa pemrograman untuk) sistem operasi Linux.
Ini bukan clone Visual Basic, tetapi memiliki kemampuan untuk mengubah program Visual Basic ke dalam program Gambas.
6. WinWrap Basic adalah pihak ketiga dari VBA yang dapat digunakan dengan berbagai perangkat lunak, dan tersedia bagi programmer untuk
membangun fasilitas makro ke dalam program.
7. LotusScript adalah varian VBA yang tersedia di Lotus SmartSuite dan Lotus Notes.
8. Kemudian versi Corel WordPerfect Office menerapkan akses ke VBA sebagai salah satu bahasa makro/scripting, termasuk CorelScript dan
PerfectScript
9. Versi sebelumnya dari Microsoft Word yang menggunakan varian dari Visual Basic disebut WordBasic.

Kinerja dan Isu-Isu Lain Visual Basic 6

Versi sebelumnya dari Visual Basic (sebelum versi 5) kompilasi kodenya menggunakan P-Code saja. P-Code ditafsirkan oleh runtime. Manfaat dari P-Code
adalah portabilitas dan ukuran file biner yang lebih kecil, tapi biasanya memperlambat eksekusi, karena memiliki runtime sehingga menambahkan lapisan
interpretasi. Namun, sejumlah kecil kode dan algoritma dapat dibangun sehingga dapat berjalan lebih cepat.
Aplikasi Visual Basic memerlukan Microsoft Basic runtime MSVBVMxx.DLL, di mana xx adalah nomor versi yang relevan, baik 50 atau 60.
MSVBVM60.DLL datang sebagai standar Windows di semua edisi setelah Windows 98 sedangkan MSVBVM50.dll untuk semua edisi setelah Windows
95. Namun Windows 95 akan memerlukan inklusi dengan installer dari dll yang dibutuhkan oleh program.
Visual Basic 5 dan 6 dapat mengkompilasi baik kode asli atau P-Code tetapi dalam kedua kasus runtime masih diperlukan untuk fungsi dan bentuk
manajemen.
Kritik ditujukan pada Visual Basic edisi sebelum VB.NET meliputi:
Masalah versioning terkait dengan berbagai runtime DLL, dikenal sebagai "DLL Hell"
Kurang dukungan untuk pemrograman berorientasi obyek
Ketidakmampuan membuat aplikasi multi- threaded, tanpa menggunakan Windows API
Ketidakmampuan untuk membuat layanan Windows
Jenis varian memiliki kinerja dan penyimpanan yang lebih besar daripada bahasa pemrograman "yang diketik"
Lingkungan pengembangan tidak lagi didukung oleh Microsoft

Pengembangan Warisan dan Dukungan Visual Basic 6


Semua versi dari lingkungan pengembangan Visual Basic 1,0 - 6,0 sekarang sudah "pensiun" dan tidak didukung oleh Microsoft. Lingkungan runtime juga
tidak didukung, kecuali untuk lingkungan runtime 6, yang secara resmi didukung Microsoft seumur Windows 8. Komponen pihak ketiga yang
berhubungan dengan Visual Studio 6.0 tidak termasuk dalam dukungan ini. Beberapa komponen warisan Visual Basic masih dapat bekerja pada platform
yang lebih baru, meskipun tidak didukung oleh Microsoft dan vendor lainnya.
Pengembangan pemeliharaan untuk Visual Basic 6 diperbolehkan di Windows XP, Windows Vista dan Windows 2003 menggunakan platform Visual
Studio 6.0, tetapi tidak ada dukungan. Dokumentasi untuk Visual Basic 6.0, aplikasi antarmuka pemrograman dan alat-alat terbaik dicakup dalam MSDN
rilisan terakhir sebelum Visual Studio.NET 2002. Kemudian rilis MSDN difokuskan pada pembangunan .NET dan memiliki bagian-bagian penting dari
dokumentasi Visual Basic 6.0. IDE Visual Basic dapat diinstal dan digunakan pada Windows Vista, 7 dan 8, tetapi terlihat beberapa fasilitas yang tidak
kompatibel namun tidak menghambat pembangunan perangkat lunak. Pada Agustus 2008, baik Visual Studio 6.0 dan dokumentasi MSDN disebutkan di
atas dapat di-download oleh pelanggan MSDN.

Contoh Sederhana Kode Visual Basic 6


Disini dijelaskan beberapa contoh kode Visual Basic 6 seperti yang telah digambarkan pada posting sebelumnya, baca: Fitur Bahasa. Meskipun
pembahasannya masih belum detail, tetapi cukup bagi Anda untuk mulai mencoba membangun program sendiri. So, buatlah sekarang! Tidak usah ditundatunda.

Gambar 1: Contoh Kode


Potongan kode berikut menampilkan kotak pesan yang mengatakan "Hello, World!":
Private Sub Form_Load()
' Execute a simple message box that says "Hello, World!"
MsgBox "Hello, World!"End Sub

Potongan ini membuat counter yang bergerak naik 1 setiap detik (label dan kontrol waktu perlu ditambahkan ke form agar dapat bekerja bekerja):
Option Explicit
Dim Count As Integer
Private Sub Form_Load()
Count = 0
Timer1.Interval = 1000 ' units of milliseconds
End Sub
Private Sub Timer1_Timer()
Count = Count + 1
Label1.Caption = Count
End Sub

Mengkonversi Input Analog (0-1023) Menjadi Nilai Tegangan (0-5)


Contoh ini menunjukkan bagaimana membaca input analog pada Pin A0, mengkonversi nilai dari analogRead() menjadi nilai tegangan, dan mengirimnya
ke komputer.

Hardware yang Diperlukan


1. Board Arduino
2. Resistor variabel seperti potensiometer

Skema Sirkuit

Gambar 1: Skema Sirkuit


Untuk mengetahui penjelasan tentang sirkuit ini silahkan baca: Membaca Masukan Analog (Potensiometer), Kirim ke Komputer.

Kode Program
Inisialisasi komunikasi serial dengan baudrate 9600:
Serial.begin(9600);
Membaca input analog dari pin A0 dan menyimpannya dalam variabel sensorValue:
int sensorValue = analogRead(A0);
Untuk mengubah nilai 0-1023 ke kisaran yang sesuai dengan tegangan 0-5, Anda harus membuat variabel lain, yang bertipe float, dan menggunakan sedikit
persamaan matematika. Untuk skala angka antara 0,0 dan 5,0, cukup emmbagi 5,0 dengan 1.023,0 dan mengalikannya dengan variabel sensorValue:
float voltage = sensorValue * (5.0 / 1023.0);
Terakhir mengirim data voltage ke komputer:
Serial.println(voltage);
Perubahan nilai terlihat pada Gambar 2.

Gambar 2: Hasil percobaan


Hasil akhir kode program:
void setup() {
Serial.begin(9600);
}
void loop() {
// Membaca input analog dari pin A0 dan menyimpannya dalam variabel sensorValue:
int sensorValue = analogRead(A0);
// Konversi masukan analog 0 - 1023) ke tegangan (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// Mengirim data ke komputer
Serial.println(voltage);
// Tunggu 1 detik
delay(1000);
}

Membaca Masukan Analog (Potensiometer), Kirim ke Komputer


Contoh ini menunjukkan bagaimana membaca input analog dengan menggunakan potensiometer. Potensiometer adalah perangkat mekanis sederhana yang
menhasilkan jumlah resistensi bervariasi ketika diputar. Dengan melewatkan tegangan melalui potensiometer dan menjadi input analog pada Arduino, kita
dapat mengukur tegangan dari perubahan resistansi sebagai nilai analog. Dalam contoh ini akan memantau keadaan potensiometer dan membangun
komunikasi serial antara Arduino dan komputer.

Hardware yang Diperlukan

1. Board Arduino
2. Potensiometer 10 KOhm

Skema Sirkuit

Gambar 1: Skema Sirkuit


Hubungkan tiga kaki dari potensiometer ke papan Arduino. Yang pertama dari salah satu pin sisi luar potensiometer ke Ground. Yang kedua dari pin sisi
luar lainnya ke 5 volt. Yang ketiga (paling tengah) ke analog input 0 (A0).
Dengan memutar poros potensiometer, akan terjadi perubahan jumlah hambatan di kedua sisi wiper yang terhubung ke pin tengah potensiometer. Hal ini
akan mengubah tegangan pada pin. Tegangan ini adalah tegangan analog yang dibaca sebagai masukan.
Arduino memiliki sirkuit yang disebut analog-to-digital-converter (ADC) yang membaca perubahan tegangan dan mengkonversinya ke angka antara 0 dan
1023. Fungsi analogRead() akan mengembalikan angka antara 0 dan 1023 yang sebanding dengan jumlah tegangan yang diterapkan pada pin.

Kode Program
Memulai komunikasi serial, dengan 9600 bit data per detik:
Serial.begin(9600);
Selanjutnya di loop utama, Anda perlu membuat variabel untuk menyimpan nilai resistansi (yang akan berada di antara 0 dan 1023, menggunakan tipe data
int):
int sensorValue = analogRead(A0);
Terakhir, tulis kode untuk mengirim data tersebut ke komputer dalam bentuk desimal:
Serial.println(sensorValue)
Hasilnya, ketika jendela komunikasi COM dibuka, akan terlihat nilai dari 0 - 1023 tergantung putaran potensiometer.

Gambar 2: Hasil Percobaan


Hasil akhir kode program:
void setup() {
// Inisialisasi komunikasi serial dengan baudrate 9600 bits per detik:
Serial.begin(9600);
}
void loop() {
// Membaca masukan dengan pin A0
int sensorValue = analogRead(A0);
// Mengirim data ke komputer
Serial.println(sensorValue);
delay(1000);
// Tunggu selamat 1 detik
}

analogWrite() untuk Meredupkan dan Menerangkan LED


Contoh ini menunjukkan penggunaan fungsi analogWrite() dalam memudarkan cahaya LED. AnalogWrite menggunakan modulasi lebar pulsa (PWM),
mengubah pin digital untuk menghidupkan dan mematikan LED dengan sangat cepat agar menciptakan efek redup.

Hardware yang Diperlukan


1. Board / Papan Arduino
2. Resistor 330 Ohm
3. LED

Skema Sirkuit
Hubungkan Anoda LED (kaki positif yang panjang) ke salah satu kaki Resistor dan kaki Resistor yang lain dihubungkan ke D9 pada Arduino. Kaki Katoda
LED dihubungkan ke Ground.

Fade LED

Kode Program
Inisial variabel tidak harus dilakukan (optional), tetapi akan berguna jika Anda mau merubah pin sehingga tidak banyak kode yang harus diganti:
int led = 9;
int brightness = 0;
int fadeAmount = 5;
Pada fungsi setup() hanya mendeklasarikan pin D9 sebagai output (untuk menyalakan LED).
pinMode(led, OUTPUT);
Pada fungsi loop() yang pertamal dilakukan adalah mengatur tegangan keluaran untuk pin D9 (LED) yang disimpan dalam variabel brightness dengan
menggunakan fungsi analogWrite():
analogWrite(led, brightness);
Kemudian nilai variable brightness diatur agar terjadi perubahan pada LED:
brightness = brightness + fadeAmount;
Agar gelap terang LED terlihat, dibutuhkan kode yang dapat mengurangi nilai variabel brightness ketika sudah terang maksimal:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
Hasil akhir kode program

int led = 9;
// Pin untuk LED
int brightness = 0; // Kecerahan LED
int fadeAmount = 5; // Banyaknya fade
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
analogWrite(led, brightness);
// Mengubah kecerahan
brightness = brightness + fadeAmount;
// Setelah maksimal, LED redup kembali
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// Tunggu 30 ms
delay(30);
}

Membaca masukan Digital (Tombol), kirim ke monitor PC (Serial)


Contoh ini menunjukkan bagaimana memantau switch / tombol apakah ditekan atau tidak dengan menggunakan komunikasi serial antara Arduino dan
komputer melalui USB.

Hardware yang Diperlukan


1.
2.
3.
4.
5.

Board Arduino
Tombol / Switch / Toggle
Resistor 10 KOhm
Papan penyimpan komponen seperti Protoboard / Proyekboard (optional)
Kabel penghubung (optional)

Sirkuit

Gambar 1: Skema simulasi


Pertama-tama hubungkan Pin 2 Arduino (pin digital) ke satu kaki tombol, kemudian kaki tombol yang lainya ke Ground. Sambungkan pula kaki resistor
yang satu diantara kaki resistor dan pin 2 Arduino, dan satu kakinya lagi ke VCC (lihat dengan teliti pada Gambar 1). COM pada Gambar 1 hanya untuk
simulasi saja, sedangkan pada aplikasinya, sudah otomatis tertanam pada board Arduino.

Kode
Dalam program di bawah ini, hal pertama yang dilakukan dalam fungsi setup adalah memulai komunikasi serial, dengan 9600 bit data per detik:
Serial.begin(9600);
Selanjutnya, menginisialisasi pin digital 2, pin yang akan membaca output dari tombol, sebagai masukan (input):
pinMode(2,INPUT);
Sekarang setup Anda telah selesai, tinggal mengisi kode loop utama. Ketika tombol ditekan, tegangan 5 volt akan mengalir melalui sirkuit, dan jika tidak
ditekan, pin input akan terhubung ke Ground melalui resistor 10 KOhm. Ini adalah input digital, yang berarti bahwa saklar hanya bisa ON (dilihat oleh
Arduino sebagai "1", atau TINGGI) atau keadaan OFF (dilihat oleh Arduino sebagai "0", atau LOW).
Hal pertama yang perlu dilakukan dalam loop utama adalah menetapkan variabel untuk menyimpan informasi dari tombol. Karena informasi dari saklar
akan "1" atau "0", Anda dapat menggunakan tipe data int dengan nama variabel sensorValue yang akan diisi oleh nilai pin 2 Arduino:
int sensorValue = digitalRead(2);
Setelah Arduino telah membaca input, data akan dikirim ke komputer sebagai nilai desimal melalui serial komunikasi USB. Anda dapat melakukan ini
dengan perintah Serial.println():
Serial.println(sensorValue);
Sekarang, ketika Anda membuka Serial COM dalam lingkungan Arduino, akan terlihat aliran data "0" jika saklar tidak ditekan, atau "1" jika saklar ditekan.

Gambar 2: Hasil percobaan


Hasil akhir kode program:
// Memberi nama pin digital 2
int pushButton = 2;
void setup() {
// Inisialisasi komunikasi serial dengan baudrate 9600 bits per detik:
Serial.begin(9600);
// Pin tombol sebagai input
pinMode(pushButton, INPUT);
}
void loop() {
// Membaca input pin tombol
int buttonState = digitalRead(pushButton);
// Mengirim data hasil input
Serial.println(buttonState);
delay(1000);
// Tunggu selama 1 detik
}

Blink LED / LED Berkedip dengan Arduino


Contoh dibawah ini menunjukkan hal paling sederhana yang dapat Anda lakukan dengan Arduino untuk melihat output fisik: LED berkedip.

Hardware Diperlukan

1. Board Arduino (1 buah)


2. LED (1 buah)
3. Resistor 330 Ohm (1 buah)

Sirkuit
Untuk membangun sirkuit, diharuskan menambahkan resistor 330 Ohm ke pin-13. Lalu pasang kaki LED yang lebih panjang (kaki positif, yang disebut
anoda) ke resistor. Pasang kaki pendek (kaki negatif, disebut katoda) ke Ground. Kemudian pasang papan Arduino ke komputer Anda, mulailah
memprogram Arduino, dan masukkan kode di bawah.
Kebanyakan papan Arduino sudah memiliki LED yang terpasang ke pin 13 di papan itu sendiri, ehingga jika tidak memiliki hardware yang disebutkan
diatas, tetap Anda akan melihat bahwa LED berkedip.

Skema

Skema Blink LED

Kode
Dalam program di bawah ini, hal pertama yang Anda lakukan adalah menginisialisasi pin 13 sebagai pin output
pinMode(13, OUTPUT);
Dalam loop() utama, Anda dapat menghidupkan LED dengan kode:
digitalWrite(13, HIGH);
Kode tersebut akan memberikan tegangan 5 volt ke pin 13, yang akan menciptakan perbedaan tegangan pin LED. Kemudian Anda mematikan LED
tersebut dengan baris:
digitalWrite(13, LOW);

Ketika LED ON dan OFF, kita tidak akan bisa melihat reaksinya terhadap LED karena terlalu cepat, sehingga dibutuhkan perintah delay(). Bila Anda
menggunakan perintah delay(), kita dapat mengatur kapan LED itu ON dan kapan OFF.
Hasil akhir kode program:
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000); // Tunggu selama 1 Detik
digitalWrite(led, LOW);
delay(1000); // Tunggu selama 1 Detik
}

Kode Dasar yang Harus Ada pada Arduino


Contoh ini berisi kode minimal yang Anda butuhkan untuk sketsa Arduino ketika proses kompilasi: metode setup() dan metode loop().

Hardware yang Diperlukan


Board Arduino

Sirkuit
Hanya board Arduino yang anda butuhkan untuk contoh ini.

Board Arduino

Kode
Fungsi setup() dipanggil ketika sketsa dimulai. Baca: Struktur Fungsi setup() dan loop() pada Arduino.
Kode di bawah ini tidak akan melakukan apa-apa, tapi akan berguna untuk copy dan paste ketika memulai sketsa. Hal ini juga menunjukkan bagaimana
membuat komentar dalam kode Arduino.
Setiap baris yang dimulai dengan dua garis miring (//) tidak akan dibaca oleh kompilator, sehingga Anda dapat menulis apapun yang diinginkan.
Mengomentari kode Anda seperti ini dapat membantu dalam menjelaskan, baik untuk diri sendiri dan orang lain, tentang bagaimana fungsi program anda
langkah demi langkah.
void setup() {
// Tulis kode setup disini, akan berjalan sekali:
}
void loop() {
// Tulis kode utama disini, akan berjalan berulang-ulang:
}

Struktur Fungsi setup() dan loop() pada Arduino

Ketika memulai pembuatan sketsa baru, kita pasti melihat ada kode struktur setup() dan loop(). Disini akan dibahas apa fungsi setup() dan loop() dalam
Arduino, dan bagaimana cara menggunakannya.

Logo Arduino

setup()
Fungsi setup() dipanggil ketika sketsa dimulai. Struktur ini berguna untuk menginisialisasi variabel, mode pin, memulai menggunakan library, dll. Fungsi
pengaturan hanya akan berjalan sekali, yaitu setiap powerup atau restart board Arduino.

Contoh

int buttonPin = 3;

void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}

void loop()
{
// ...
}

loop()

Setelah menggunakan fungsi setup() yang menginisialisasi dan menetapkan nilai awal, fungsi loop() berguna untuk melaksanakan / mengeksekusi perintah
program yang telah dibuat. Fungi ini akan secara aktif mengontrol board Arduino baik membaca input atau merubah output.

Contoh

const int buttonPin = 3;

// inisialisasi serial dan tombol


void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}

// melakukan pengecekan tombol secara berkala,


// dan akan dikirim jika tombol ditekan
void loop()
{
if (digitalRead(buttonPin) == HIGH)
Serial.write('H');
else
Serial.write('L');

delay(1000);
}

Fungsi pinMode(), digitalWrite() dan digitalRead() Digital I/O Arduino


pinMode(), digitalWrite() dan digitalRead() adalah fungsi untuk mengakses input dan output digital pada Arduino. Fungsi ini untuk menyederhanakan
perintah yang berhubungan dengan pin I/O board Arduino.

pinMode()

Berfungsi untuk mengkonfigurasi pin tertentu agar berperilaku sebagai input atau output. Lihat deskripsi pin digital untuk rincianya.
Pada Arduino 1.0.1, dimungkinkan untuk mengaktifkan resistor pullup internal dengan mode INPUT_PULLUP. Selain itu, mode INPUT eksplisit
menonaktifkan pullups intern.

Sintaksis
pinMode(pin, mode)

Parameter
pin: Pin yang ingin anda atur
Modus: INPUT , OUTPUT , atau INPUT_PULLUP (baca: Definisi dan Fungsi Konstanta Bawaan Arduino).

Contoh
int ledPin = 13; // LED terkoneksi dengan digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // mengatur digital pin sebagai output
}
void loop()
{
digitalWrite(ledPin, HIGH); // mengatur LED agar menyala
delay(1000); // tunggu satu detik
digitalWrite(ledPin, LOW); // mengatur LED agar mati
delay(1000); // tunggu selama satu detik
}

digitalWrite()
Berfungsi untuk memberi nilai HIGH atau LOW ke pin digital. Jika pin telah dikonfigurasi sebagai OUTPUT dengan pinMode(), tegangan akan diatur ke
nilai yang sesuai: 5V (atau 3.3V) untuk HIGH, 0V (ground) untuk LOW.
Jika pin dikonfigurasi sebagai INPUT, digitalWrite() akan mengaktifkan (HIGH) atau menonaktifkan (LOW) dengan pullup internal pada pin input.
Disarankan dalam mengatur pinMode() INPUT_PULLUP untuk mengaktifkan resistor pull-up internal.
CATATAN: Jika Anda tidak mengatur pinMode() ke OUTPUT, dan menghubungkan LED ke pin, saat memanggil fungsi digitalWrite(HIGH), LED
mungkin akan tampak redup.

Sintaksis
digitalWrite (pin, value)

Parameter
pin: nomor pin
Nilai: HIGH atau LOW

Contoh
int ledPin = 13; // LED terkoneksi dengan digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // mengatur digital pin sebagai output
}
void loop()
{
digitalWrite(ledPin, HIGH); // mengatur LED agar menyala
delay(1000); // tunggu satu detik
digitalWrite(ledPin, LOW); // mengatur LED agar mati
delay(1000); // tunggu satu detik
}

digitalRead()
Membaca nilai dari pin digital tertentu, baik HIGH atau LOW.

Sintaksis
digitalRead(pin)

Parameter
pin: Nomor pin yang ingin dibaca (int)

Pengembalian data fungsi


HIGH atau LOW

Contoh
int ledPin = 13; // LED terkoneksi dengan digital pin 13
int inPin = 7; // pushbutton terkoneksi dengan digital pin 7
int val = 0; // variabel untuk menyimpan nilai
void setup()
{
pinMode(ledPin, OUTPUT); // mengatur digital pin sebagai output
pinMode(inPin, INPUT); // mengatur digital pin sebagai input
}
void loop()
{
val = digitalRead(inPin); // membaca pin input
digitalWrite(ledPin, val); // mengatur hidup dan mati LED dengan pushbutton
}

Definisi dan Fungsi Konstanta Bawaan Arduino


Konstanta Arduino adalah variabel yang telah ditetapkan dalam bahasa pemrograman Arduino. Konstanta ini digunakan untuk membuat program lebih
mudah dibaca. Arduino mengklasifikasikan konstanta dalam beberapa kelompok.

Konstanta Arduino

Mendefinisikan Tingkat logis, benar dan salah (Konstanta Boolean)


Ada dua konstanta yang digunakan untuk mewakili benar dan salah untuk pernyataan tertentu dalam bahasa Arduino: true dan false.

false
false lebih mudah ditentukan, karena didefinisikan sebagai 0 (nol).

true
true sering didefinisikan sebagai 1. Tetapi benar memiliki definisi yang lebih luas. Setiap bilangan bulat yang bukan nol adalah benar, dalam arti Boolean.
Jadi -1, 2 dan -200 semua didefinisikan sebagai true, juga, dalam arti Boolean.
Perhatikan bahwa konstanta true dan false yang diketik dalam huruf kecil tidak seperti HIGH, LOW, INPUT, dan OUTPUT.

Mendefinisikan PIN Level, HIGH dan LOW


Ketika membaca atau menulis pin digital hanya ada dua nilai yang mungkin dapat digunakan yaitu HIGH dan LOW.

HIGH
Makna TINGGI (dalam referensi untuk pin) agak berbeda tergantung pada apakah pin diatur ke INPUT atau OUTPUT. Ketika pin dikonfigurasi sebagai
INPUT dengan pinMode, dan membaca dengan digitalRead, mikrokontroler akan mendeteksi HIGH jika tegangan input adalah 3 volt atau lebih.
Pin juga dikonfigurasi sebagai INPUT dengan pinMode, dan kemudian membuat HIGH dengan digitalWrite, ini akan mengaktifkan internal 20K resistor
pullup, yang akan mengarahkan input pin untuk membaca HIGHT kecuali dihubungkan ke ground (LOW) oleh sirkuit eksternal.

LOW
Makna LOW juga memiliki arti yang berbeda tergantung pada apakah pin diatur ke INPUT atau OUTPUT. Ketika pin dikonfigurasi sebagai INPUT dengan
pinMode, dan membaca dengan digitalRead, mikrokontroler akan mendeteksi LOW jika tegangannya 2 volt atau kurang.
Ketika pin dikonfigurasi untuk OUTPUT dengan pinMode, dan set ke LOW dengan digitalWrite, pin berada pada 0 volt.

Mendefinisikan Digital Pin


Pin digital dapat digunakan sebagai INPUT, INPUT_PULLUP, atau OUTPUT. Ketika Mengubah pin dengan pinMode(), maka Anda mengubah perilaku
listrik dari pin tersebut.

Pin Dikonfigurasi sebagai INPUT


Pin Arduino (Atmega) dikonfigurasi sebagai INPUT dengan pinMode() bisa dikatakan sedang dalam keadaan impedansi tinggi. Ketika pin dikonfigurasi
sebagai INPUT membuat listrik yang sangat kecil di sirkuit yang mereka sampling, setara dengan resistor seri 100 megohms di depan pin. Hal ini membuat
pin tersebut berguna untuk membaca sensor, tapi tidak akan bisa menyalakan LED.

Pin Dikonfigurasi sebagai INPUT_PULLUP


Chip Atmega pada Arduino memiliki pull-up resistor internal (resistor terhubung ke daya internal) yang dapat Anda akses. Jika memilih untuk mengngatur
ini sebagai pengganti resistor pull-down eksternal, Anda dapat menggunakan argumen INPUT_PULLUP di pinMode(). Cara ini secara efektif
membalikkan perilaku, di mana HIGH berarti sensor tidak aktif, dan LOW berarti sensor aktif.

Pin Dikonfigurasi sebagai Output


Jika pin dikonfigurasi sebagai OUTPUT dengan pinMode(), bisa dikatakan dalam keadaan impedansi rendah. Ini berarti bahwa mereka dapat memberikan
sejumlah besar arus ke sirkuit lainnya. Pin atmega dapat menjadi source / VCC (memberikan arus positif) atau shink / ground (menyediakan arus negatif)
hingga 40 mA (milliamps) ke perangkat / sirkuit lain. Hal ini membuat pin tersebut berguna untuk menyalakan LED, tetapi tidak berguna untuk membaca

sensor. Pin dikonfigurasi sebagai OUTPUT dapat rusak atau hancur jika terjadi hubungan singkat antara positif dan negatif. Jumlah arus yang disediakan
oleh pin Atmega tidak cukup untuk menggerakan relay atau motor, sehingga diperlukan beberapa sirkuit lain seperti motor driver dll.

LED_BUILTIN
Kebanyakan board Arduino memiliki pin yang terhubung ke LED on-board yang di seri dengan resistor. LED_BUILTIN adalah pengganti drop-in yang
secara manual menyatakan bahwa pin ini sebagai variabel. Kebanyakan board Arduino yang memiliki LED ini terhubung ke pin digital 13.

Membuat Sistem Minimum ATmega32 Sendiri


Abstrak
ATmega32 merupakan jenis mikrokontroler AVR yang memiliki banyak fungsi dan fasilitas. Pembuatan sistem minimum ini sangat berguna bagi peneliti
otomatisasi dan penghobi robotik. Disamping harganya yang murah, pembuatan sistem minimum sangat mudah sehingga cocok untuk pemula yang mau
berkembang dalam dunia mikrokotroler.
Keyword: Sistem minimum, ATmega32, Mikrokontroler

Daftar Isi
1. Pendahuluan
o Pengantar ATmega32
o Pengenalan Komponen Lain
o Pengantar Pembuatan PCB dengan Eagle
o Pengantar Pembuatan Program dengan CodeVision AVR
o Pengantar Pembuatan Program dengan AVR / Atmel Studio
o Simulasi dengan ISIS Proteus
o Pembuatan PCB dengan ARES Proteus
o Mengenal Downloader / Uploader USBTiny
o Pengantar Download / Upload Program dengan AVRDude
2. Desain Skematik dan Layout PCB
o Sismin ATmega32 Versi 1
o Sismin ATmega32 Versi 2
o Sismin ATmega32 Versi 3
3. Penggunaan Produk
o Memasukan Program ke Sismin ATmega32
4. Contoh Program
o Menyalakan LED
o Blink LED
5. Bantuan (saat ini belum ada masalah dari pembaca)

Pengantar ATmega32 dan Beberapa Kelebihannya


Mikrokontroler AVR ATmega32 merupakan CMOS dengan konsumsi daya rendah, mempunyai 8-bit proses data (CPU) berdasarkan arsitektur AVR RISC.
Dengan mengeksekusi instruksi dalam satu (siklus) clock tunggal, ATmega32 memiliki kecepatan data rata-rata (throughputs) mendekati 1 MIPS per MHz,
yang memungkinkan perancang sistem dapat mengoptimalkan konsumsi daya dan kecepatan pemrosesan.

ATmega32 (Sumber: www.myroboshop.com)


Berikut kelebihan yang dimiliki ATmega32 (Aozon mengambil referensi langsung dari Atmel termasuk datasheet yang diterbitkannya):
1. Kinerja Tinggi, Low-Power AVR 8-bit Microcontroller
Seperti yang disebutkan Atmel dalam websitenya "The low-power Atmel 8-bit AVR RISC-based microcontroller... The device supports throughput
of 16 MIPS at 16 MHz and operates between 2.7-5.5 volts".
2. Menggunakan Arsitektur RISC
Mikrokontroler AVR memiliki arsitektur Reduced Instruction Set Computing (RISC) atau " set instruksi Komputasi yang disederhanakan".
3. Daya Tahan Tinggi dan Segmen Memori Non-Volatile
Mikrokontroler AVR memiliki daya tahan data (retensi data) 20 tahun ketika suhu mencapai 85C atau 100 tahun ketika suhu mencapai 25C.
4. Memiliki Antarmuka JTAG (IEEE std. 1149.1 Compliant)
Tidak hanya SPI, ATmega32 memiliki antarmuka JTAG yang memungkinkan pengguna dapat memprogram Flash, EEPROM, Fuse, dan Lock Bits.
5. Memiliki Fitur Perangkat

Mikrokontroler AVR memiliki fitur tambahan yang sangat membantu kita untuk melakukan penelitian yang lebih baik, seperti terdapat ADC, PWM
dan Timer.
6. Memiliki Fitur Tambahan
Mikrokontroler ini memiliki fitur menarik yang patut dicoba seperti 5 mode Sleep, eksternal dan internal interupsi, dan kalibrasi RC Oscillator
internal.
7. Mempunyai 32 jalur Program I/O
ATmega32 mempunyai 32 jalur Program sehingga memungkinkan kita untuk mengontrol lebih banyak device/ perangkat, seperti Tombol/ switch,
LED, buzzer dan LCD.
8. Memiliki operasi tegangan dari 2,7 Volt sampai 5,5 Volt
ATmega32 memiliki operasi tegangan dari 2,7 Volt sampai 5,5 Volt. Ini sangat membantu kita untuk menghemat listrik. Kecepatan maksimal bisa
mencapai 16 MHz (tanpa overclock).
9. Daya yang dibutuhkan ketika aktif hanya 1,1 mA
ATmega32 membutuhkan arus yang sangat kecil dibanding komponen analog yang biasa kita pakai. Hal ini dibuktikan dengan konsumsi daya yang
dibutuhkan ketika aktif saja hanya 1,1 mA, bahkan bisa mencapai 1 uA ketika mode power-down.

Komponen yang Digunakan untuk Menyusun USBTiny

Disini dibahas tentang komponen yang digunakan untuk membuat USBTiny ISP Versi 1. Ada beberapa komp...
Lanjutkan membaca di tab baru

Sabtu, 08 Maret 2014


Komponen Dasar Sensor Aen

Sensor Aen terdiri dari komponen dasar elektronik yang banyak tersedia dipasaran sehingga kita tidak...
Lanjutkan membaca di tab baru

Jumat, 07 Maret 2014


Komponen Dasar Aktuator Rij

Aktuator Rij disusun dari bahan yang sederhana dan sangat banyak dipasaran. Aktuator ini merupakan g...
Lanjutkan membaca di tab baru

Kelebihan (Fitur) Mikrokontroler AVR ATmega8

Mikrokontroler AVR ATmega8 merupakan CMOS dengan konsumsi daya rendah, mempunyai 8-bit proses data (...
Lanjutkan membaca di tab baru

Jumat, 21 Februari 2014


LED Bening Sebagai Sumber Cahaya Line Follower

Gambar 1: LED bening bagus untuk sumber cahaya LF. (Sumber: san-eshop.com. Diakses: 21/02/2014) ...
Lanjutkan membaca di tab baru

Rabu, 22 Januari 2014


Kapasitor Gudangnya Muatan Listrik

Pernahkah kalian memperhatikan sistem distribusi suatu produk dari produsen hingga sampai ke tangan ...

Lanjutkan membaca di tab baru

Senin, 06 Januari 2014


Resistor itu Aku

Sumber daya listrik memiliki tegangan dan arus yang sangat tinggi, seperti halnya Pembangkit Listrik...
Lanjutkan membaca di tab baru

Pengantar Software Eagle (Skematik dan PCB Layout)


Membuat jalur listrik di papan, menghubungkan prosesor pusat ke komponen lain, hampir semua perangkat elektronik berisi satu atau lebih sirkuit papan
(PCB Cetak). Eagle menawarkan kemudahan dalam berbagai aspek, seperti yang dikutip dalam websitenya " EAGLE is easy to learn, easy to use and easy
to buy" yang berarti "EAGLE mudah dipelajari, mudah digunakan dan mudah untuk dibeli".

Gambar 1: Skematik editor

Skematik Editor
1.
2.
3.
4.

Mencapai 999 sheets per skematik


Memiliki tampilan icon
Sorting sheet dengan drag dan drop
Cross references untuk nets

5. Memanggil cross references secara otomatis


6. Simpel dalam copy komponen
7. Mengganti komponen tanpa mengganggu konsistansi antara skema dan tata letak
8. Otomatis terhubung dan terupdate antara skema dan papan PCB
9. Generate board otomatis
10. Pemeriksaan jalur secara otomatis
11. Pengguna dapat mendefinisikan Net Class untuk ukuran Via, panjang Wire dan Clearance
12. Dll

Gambar 2: Layout editor

Layout Editor
1. Ukuran layout bisa mencapai 4 x 4 meter (sekitar 150 x 150 inci)
2. Dukungan penuh komponen SMD
3. Mendukung Blind dan Buried vias
4. Memutar objek / komponen dengan ketelitian 0,1 derajat
5. Komponen dapat dikunci agar tidak bergerak
6. Teks dapat ditempatkan dalam setiap orientasi
7. Perhitungan Dinamis garis sinyal ketika routing
8. Memiliki fungsi Magnetic pads
9. Trek dapat ditarik dengan sudut bulat di radius apapun
10. Pemeriksaan aturan desain layout
11. Copper pouring (untuk grounding)
12. Dll

Gambar 3: Autorouter Eagle

Autorouter
1.
2.
3.
4.
5.
6.
7.
8.
9.

Sepenuhnya terintegrasi ke program dasar


Routing jaringan mencapai 0,02 mm (sekitar 0,8 mil)
Mesin dasar untuk Follow-me-router, alat yang mendukung Anda dalam panduan rute; jejak sinyal yang dipilih akan dihitung secara otomatis
Algoritma Ripup & Retry
Tidak ada pembatasan penempatan
Perubahan antara manual dan routing otomatis setiap saat
Sampai dengan 16 sinyal lapisan
Dukungan penuh Blind and Buried vias
Dll

Pengantar CodeVision AVR (CVAVR)


CodeVision AVR berfungsi untuk compiler bahasa C dan digunakan untuk mikrokontroler AVR bahkan sampai XMega (pada saat ini, mungkin kedepannya
lebih bagus lagi). CodeVisionAVR merupakan satu-satunya IDE (Integrated Development Environment) yang memiliki GPO (Generator Program
Otomatis) (CodeWizardAVR) untuk perangkat XMEGA baru. Jendela sepenuhnya memungkinkan kustomisasi fleksibel untuk ruang kerja pengguna. Panel
editor memungkinkan untuk melihat / mengedit dua file pada waktu yang sama.

CodeVision AVR (Sumber: www.hpinfotech.ro)


Keunggulan ini ditulis pada website hpinfotech "High Performance ANSI C Compiler, Integrated Development Environment, Automatic Program
Generator and In-System Programmer for the Atmel AVR family of microcontrollers"
Codevision AVR sangat cocok untuk yang baru mengenal Mikrokontroler AVR, karena dimudahkan dengan fitur yang tidak ada pada compiler lain.
Namun, karena telah dimanjakan dengan pengaturan yang tinggal klik-klik saja sementara banyak kode program yang belum dikuasai, ini akan membuat
kita harus lebih kerja keras jika ingin tahu AVR sampai ke akar-akarnya.

Versi Evaluasi
Software ini hanya dapat dijalankan di OS windows saja, sementara pada OS lain belum bisa, mungkin kedepannya CVAVR mampu bekerja di OS lain
selain windows. CVAVR juga dapat digunakan versi trial / evaluasi, dengan beberapa syarat.

Membuat Downloader USBTiny ISP Sendiri


Downloader USBTinyISP sudah sangat familiar dikalangan penghoby Robotik, karena desain yang simpel, pemakaian yang tidak ribet, dan software
pendukung yang gratis. Penulis juga memberikan contoh hasil pembuatan Aozon yang telah dimodifikasi dan dijual dengan harga terjangkau, baca:
Downloader USBTinyISP, Kode: PAH14DL01.

Daftar Isi
1. Pengantar
2. Apa yang Menarik dari Downloader USBTiny?
o Mudah dalam Pembuatan
o Mudah dalam Penggunaan

o Power dan Modifikasi


3. F.A.Q
4. Proses Pembuatan
o Persiapan
o Daftar Komponen V1.0
o Skema Rangkaian dan PCB
o Proses Penyolderan V1.0
5. Menggunakan Downloader
o Panduan Penggunaan Manual
o Instal Driver
o AVRDude
6. Download File Pendukung
7. Bantuan (saat ini belum ada masalah dari pembaca)

Referensi
Referensi artikel ini tertuju pada Adafruit yang beralamat di URL (learn.adafruit.com/usbtinyisp) yang diposting oleh Jeff Donaldson, kami hanya
menterjemahkan bahasa atas permintaan pembaca.

Menggunakan AVRDude untuk USBTiny ISP


AVRDUDE adalah software untuk memasukan file program (.HEX) yang sangat populer untuk chip AVR. Avrdude versi 5.5 atau lebih tinggi memiliki
built-in yang mendukung USBtinyISP! Lihat di bawah instruksi windows dan mac tentang cara menginstal versi yang benar dari AVRDUDE.
Untuk menguji AVRDUDE apakah bekerja dengan benar atau tidak, silahkan buat baris perintah dengan menulis avrdude -c usbtiny-p m8 saat perangkat
terpasang (LED hijau menyala).

Gambar 1: Tes USBTiny di AVRDude


Anda harus mendapatkan respon, yang berarti bahwa USBTiny berkomunikasi dengan programmer tetapi gagal menemukan sebuah chip yang terhubung.
Jika perangkat tidak ditemukan, Anda akan mendapatkan respons ini:

Gambar 2: Perangkat tidak terdeteksi


Anda dapat mencoba mencabut dan memasangkan kembali (reset dapat membantu) atau memeriksa apakah driver diinstal atau tidak, dll.
Jika Anda menghubungkan programmer dengan target (misalnya target sistem minimum attiny2313 ) dan menjalankan avrdude -c usbtiny-p t2313 Anda
akan mendapatkan informasi yang menunjukkan bahwa USBTiny dikomunikasikan dengan baik ke chip.

Gambar 3: Komunikasi sukses antara USBTiny dan Chip target


Cara menggunakannya sangat sederhana, dengan menunjukkan usbtiny sebagai programmer, anda tidak perlu mengatur PORT/COM karena sudah
dipastikan yang digunakan adalah USB.
Anda dapat menggunakan opsi -B untuk menentukan kecepatan ISP. Secara default nilai kecepatannya adalah 10 yang berarti clocknya adalah 100KHz, ini
berguna untuk kecepatan clock target > 500KHz. Jika Anda ingin melakukan clockrate dengan kecepatan tinggi (400kHz) untuk frekuensi target > 4MHz
Anda dapat menggunakan "-B 1" untuk mempercepat pemrograman. Untuk menghitung frekuensi SPI dari nilai delay, gunakan rumus ini:
SPI frekuensi clock di KHz = 1000 / (1,5 + B) di mana B adalah nilai delay.
Secara umum, frekuensi clock setidaknya harus 4 kali lebih besar dari frekuensi clock target. Coba "-B 32" jika Anda mengalami masalah clocking,
pengaturan ini mampu menangani bahkan 128KHz clock.

Membuat Skematik dan PCB Sismin ATmega32 dari Awal


Artikel ini akan menjelaskan bagaimana cara membuat sistem minimum (sismin) ATmega32 dari awal / dasar. Proses ini sangat mudah dipahami oleh
pemula, karena ada beberapa penjelasan, tidak hanya kumpulan sirkuit saja. Hasil akhir proses ini terlihat pada Gambar 1. Kami juga menyediakan file
hasil percobaan ini yang dapat Anda download di bawah.

PCB layout sistem minimum ATmega32


Software yang digunakan dalam pembuatan PCB ini adalah EagleCAD. Baca: Pengantar EagleCAD
Silahkan ikuti langkah-langkah dibawah ini:
1. Siapkan IC ATmega32 Anda. Siapkan pula datasheetnya karena akan membantu pekerjaan Anda. Ingin mengenal ebih jauh tentang ATmega32?
silahkan baca: Pengantar ATmega32 dan beberapa kelebihannya.

Gambar 2: Skema ATmega32


2. Selanjutnya adalah menyiapkan header / socket untuk downloader / uploader program. Anda bisa menyesuaikan jumlah header dengan downloader
yang Anda miliki. Penulis menggunakan header 1 x 6 karena untuk downloader ISP USBTiny. Ingin mengenal lebih jauh dan membuat
donwloader USBTiny sendiri? Silahkan baca: Membuat Downloader USBTiny ISP Sendiri

Gambar 3: Memasang socket downloader


3. Anda juga perlu menggunakan indikator power agar terlihat, apakah sirkuit berjalan dengan benar atau tidak. Salah satu indikator power yang
sering dipakai adalah LED. Untuk mengenal lebih jauh tentang LED sebagai indikator, silahkan baca: LED sebagai indikator. Pastikan
pemasangan LED benar, karena LED memiliki polaritas, baca: Polaritas pada LED.

Gambar 4: Indikator power


4. Tahap selanjutnya adalah komponen untuk pengujian program. Untuk mengetahui apakah sirkuit berjalan dengan baik menggunakan program,
gunakan LED dan hubungkan dengan pin ATmega32. Tahap ini opsional, boleh menggunakan LED langsung pada papan, atau hanya memasang
header yang nanti akan dijadikan uji coba pin.

Gambar 5: Komponen penguji

5. Tahap akhir berfungsi untuk menstabilkan sirkuit dari noise. Walaupun sebenarnya ini kurang berpengaruh karena sumber listrik sirkuit ini langsung
dari USB komputer, tetapi akan sangat berguna dikemudian hari.

Gambar 6: Komponen penstabil


6. Hasil akhir layout PCB terlihat pada Gambar 1.
7. Jika anda membutuhkan file Eagle-nya, silahkan klik link download di bawah ini:

Sistem Minimum ATmega32 Lanjutan, Dasar - Menengah


Setelah mencoba membuat sistem minimum dari dasar, baca: Membuat Skematik dan PCB Sismin ATmega32 dari Awal, sekarang Aozon akan
membahas tentang sistem minimum lanjutan. Sismin ini merupakan lanjutan dari sismin sebelumnya dan memiliki beberapa komponen tambahan seperti
header untuk Pin pada tiap Port dll.

Menambah Header untuk Tiap Pin


Masukan header untuk tiap Port. Gunakan header 1 x 8 pada Port B, C dan D, sedangkan untuk Port A, gunakan header 1 x 10. Tambahkan 1 x 6 header
untuk input ataupun output power.

Gambar 1. Penambahan Header tiap Port

Menambah Tombol (Push Button)


Selanjutnya kita akan menambahkan tombol ke dalam sistem minimum ATmega32. Ada dua macam tombol yang akan kita masukan, yaitu: tombol Reset
(dihubungkan dengan pin Reset ATmega32) dan tombol Input (dalam latihan ini akan dihubungkan ke Port B2).

Regulator untuk Power dan Jack DC


Dalam masalah power hal yang perlu diperhatikan adalah sumbernya. Jika untuk latihan saja, Anda tidak perlu repot-repot menambahkan Regulator untuk
Power atau Jack DC, karena sumber Power sudah disediakan oleh USB Komputer. Tetapi jika Anda memang membutuhkan Power eksternal, tidak salah
jika ingin menambahkan Jack DC dan Regulator tersebut.

Kapasitor untuk Reset


Penambahan Kapasitor ini untuk menstabilkan Reset ketika bounce terjadi. Maksudnya adalah peristiwa ketika tombol ditekan, akan ada kesempatan bagi
elektron (Mikro) atau listrik (Makro) untuk bergerak dalam kondisi awal. Seperti halnya menyalakan perangkat elektronik misalkan TV, ketika pertama kali
menyala, listrik tidak stabil seperti biasanya. Dalam kasus Mikrokontroler sebenarnya tidak begitu sering terjadi karena arus yang mengalir atau yang
dibutuhkan tidak sebesar TV.

Menstabilkan Regulator
Bisa ditambah beberapa Kapasitor seperti 10u, 1u, 100n dll. Hal ini sangat berguna meskipun kebanyakan power supply sekarang sudah memiliki penstabil internal.

Menambah Kristal Eksternal


Kristal eksternal berfungsi untuk meng-upgrade frekuensi clock ATmega32 sehingga bisa lebih cepat.

Hasil Akhir Layout PCB Sistem Minimum ATmega32

Download File Skematik dan Layout PCB (Eagle)


Silahkan download file yang Aozon buat. File tersebut bukan untuk dijual, karena Anda mendapatkannya pun Gratis. Silahkan sebarluaskan file tersebut
dengan tidak merubah hak cipta Aozon