1
BELAJAR ARDUINO
Arduino tipe uno berbasis ATmega328, menyempurnakan tipe sebelumnya, Duemilanove. Uno sendiri diambil dari bahasa Italia yang artinya satu (1). Arduino diprogram dengan bahasa khusus, dengan struktur bahasa sama dengan bahasa C. Dengan bahasa tersebut maka pemrograman menjadi lebih mudah, nah inilah kelebihan Arduino. Spesifikasi hardware Arduino Uno :
Microcontroller
: ATmega328
Tegangan operasi
:5V
Tegangan Input
: 7 – 12V – 12V
Digital I/O
: 14 pin
PWM
: 6 channel
Analog Input
: 6 channel
Memory
: 32KB Flash PEROM (0,5 KB digunakan oleh bootloader), 2KB SRAM dan
1KB EEPROM
Frekuensi Clock
Koneksi USB ke kompute
: 16 MHz
Pin Input Output 0 1 ds dst
ATmega3 Jack P. Supply Analog Input Pin A0 A0 A1
Gambar Board Arduino UNO Gambarnyaboard Arduino sudah anda lihat, nah sekarang kita pelajari boardnya.
Power Supply. Banyak pilihan sumber tegangan yang dapat dipakai, dari port USB maupun dari power supply eksternal dan lebih gampangnya lagi adalah sumber tegangan tersebut dipilih secara otomatis. Cukup menghubungkan port USB di komputer/laptop dengan Arduino maka secara otomatis power supply
www.tokotronik.com
2
BELAJAR ARDUINO bersumber dari port USB. Untuk sumber tegangan eksteranal (non-USB) kita cukup menghubungkan dengan jack dc. Tegangan yang direkomendasikan adalah 7 sampai 12 V.
Input – Output. Dalam hal penamaan, port Arduino berbeda dengan minimum system atau development system mikrokontroler. Sebagai contoh pada minimum system ATmega8535 penamaan port adalah PORTA, PORTB, PORTC dan PORTD, untuk akses per-bit maka PORTA.0 s/d PORTA.7. Sistem penamaan port pada Arduino merupakan urutan nomor port, mulai dari nomor nol (0), satu (1) dan seterusnya. Untuk digital I/O (Input/Output) dengan nama pin 1 , 2 sampai 13, sedangkan untuk analog input menggunakan nama A0, A1 sampai A5. Pada Arduino uno terdapat 14 pin digital input – output. Secara umum berfungsi sebagai port input – output biasa, namun ada beberapa pin yang mempunyai fungsi alternatif. No Pin 0 1 2 3 4 5 6 7 8 9 10 11 12 13
Fungsi Digital I/O 0 Digital I/O 1 Digital I/O 2 Digital I/O 3 Digital I/O 4 Digital I/O 5 Digital I/O 6 Digital I/O 7 Digital I/O 8 Digital I/O 9 Digital I/O 10 Digital I/O 11 Digital I/O 12 Digital I/O 13
Fungsi alternatif RX (serial – receiver) TX (serial – transmiter) Interupsi external Interupsi external & PWM PWM PWM PWM SPI – SS & PWM SPI – MOSI & PWM SPI – MISO SPI – SCK & LED
Analog Input. Arduino memiliki 6 pin analog input, berfungsi membaca sinyal masukan analog seperti sensor analog. No pin A0 A1 A2 A3 A4 A5
Fungsi Analog Input 1 Analog Input 2 Analog Input 3 Analog Input 4 Analog Input 5 Analog Input 6
Fungsi Alternatif TWI – SDA TWI – SCL
Meskipun demikian pin analog input dapat pula kita gunakan untuk keperluan digital I/O. Sudah tidak sabar untuk langsung mencoba Arduino ? Sabar sebentar, kita lihat bagaimana aturan main dalam pemrogramannya.
Nah, setelah kita pelajari struktur hardwarenya, sekarang kita lanjutkan pada pemrograman Arduino UNO. Tidak serumit bahasa pemrograman C untuk ATmega seperti Codevison-AVR (walaupun CodeVision AVR juga lebih mudah dibandingkan bahasa assembly), pemrograman Arduino menjadi lebih mudah. Struktur pemrogramannya memang bahasa C, bagi anda yang sudah menguasai bahasa C/C++
www.tokotronik.com
BELAJAR ARDUINO
3
maka akan menjadi lebih gampang memprogram Arduino. Bagi yang belum pernah apalagi menguasai jangan khawatir, karena nanti akan kita buktikan bahwa ternyata memang sangat mudah. Mekanisme permogramannya sama dengan memprogram mikrokontroler, mulai dari menulis program kemudian mengeksekusi (compile) selanjutnya proses upload yaitu mengisikan program kedalam memori program Arduino.
Tulis kode program
Verify (Compile)
Upload
Sebuah program Arduino minimal terdiri dari 2 bagian :
Inisialisasi. Inisialisasi merupakan proses mengatur hardware seperti port I/O, PWM, serial dan peripheral lain. Struktur ini ditulis diawal program. Sebagai contoh port I/O mempunyai beberapa fungsi : digital input, digital output, serial komunikasi dan PWM. Sebuah port hanya dapat berfungsi untuk 1 tujuan, jadi jika kita hendak menggunakan port tersebut sebagai digital output maka harus diinisialisasi terlebih dahulu sebagai port output. Inisialisasi menggunakan struktur setup(). Sebagai contoh :
void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); }
Program utama. Setelah melakukan inisialisasi selanjutnya program yang dikerjakan adalah program utama, tergantung dari aplikasi yang dibuat, isi dari program utama berbeda antara satu program dengan program yang lain. Struktur yang digunakan adalah loop(). Sebagai contoh :
void loop() { } Harap diperhatikan bahwa bahasa pemrograman Arduino (sebagaimana bahasa C) termasuk case
sensitive, artinya huruf besar dengan huruf kecil akan dianggap berbeda. Komentar digunakan untuk memberi keterangan pada program yang dibuat, sifatnya tidak wajib dan tidak akan berpengaruh pada jalannya program karena tidak ikut dieksekusi. Komentar dapat dibuat untuk 1 baris maupun lebih dari 1 baris, berikut ini caranya :
//komentar untuk 1 baris diawali dengan 2 garis miring. /*komentar untuk lebih dari 1 baris diawali dengan tanda garis miring + asterisk atau bintang (/*) Serta diakhiri dengan tanda asterisk + garis miring */
www.tokotronik.com
BELAJAR ARDUINO
4
Dalam pemrograman Arduino, bilangan dapat diekspresikan dalam beberapa format.
Desimal Ditulis biasa tanpa tambahan apapun. Contoh : 234.
Oktal Ditulis dengan awalan angka ‘0’ (nol) didepan. Contoh : 0631.
Biner Penulisan diawali dengan huruf ‘B’. Contoh : B11100011.
Heksadesimal Diawali dengan ‘0x’ . Contoh : 0x8C.
Sebuah program yang kita buat membutuhkan suatu kontrol, misalnya pengujian kondisi, melompat pada perintah yang lain dan sebagainya.
Pengujian Kondisi.
if Digunakan untuk menguji kondisi, jika kondisi tersebut benar maka perintah didalam If akan dikerjakan.
if (kondisi) { Pernyataan/perintah; } Contoh :
if(x>7) { x=x+1; }
if – else Hampir sama dengan if, hanya saja ada 2 pilihan pernyataan/perintah. Jika kondisi benar maka perintah didalam blok if yang dikerjakan, jika kondisi salah maka pernyataan di dalam else yang dikerjakan. if (kondisi) { Pernyataan/perintah 1: } else { Pernyataan/perintah 2; }
www.tokotronik.com
BELAJAR ARDUINO
5
Contoh :
if (x>7) { x=x+1; } else { x=x+2; }
if – else if Untuk pengujian dengan banyak kondisi maka digunakan if – else if.
if (kondisi 1) { Pernyataan/perintah 1; } else if (kondisi 2) { Pernyataan/perintah 2; } else if (kondisi ke-n) { Pernyataan/perintah ke-n; } Contoh :
if(tombol=='1'){ Serial.println("Angka 1"); } else if(tombol =='2'){ Serial.println("Angka 2"); } else if(tombol =='3'){ Serial.println("Angka 3"); }
www.tokotronik.com
6
BELAJAR ARDUINO
Operator =
Keterangan Pemberian nilai
+
Operasi penjumlahan
*
Operasi pengurangan Operasi perkalian
/
Operasi pembagian
%
Operasi sisa pembagian
Operator Perbandingan. Operator ==
Keterangan Operator persamaan. Jika kedua nilai yang dibandingkan sama hasilnya ‘true’.
!=
Pertidaksamaan. Jika kedua nilai yang dibandingkan tidak sama hasilnya ‘true’
>
Lebih besar.
<
Lebih kecil.
>=
Lebih besar atau sama dengan.
<=
Lebih kecil atau sama dengan.
Pada board Arduino UNO terdapat 13 pin I/O, dari namanya kita tahu bahwa fungsinya dapat sebagai pin input (masukan) maupun pin output (keluaran).
Inisialisasi Fungsi Pin I/O Sebuah pin pada saat yang sama hanya mempunyai satu fungsi, sebagai input saja atau output saja, untuk itu harus ditentukan dulu fungsinya, yaitu ketika inisialisasi (setup()), dengan cara :
pinMode(pin, mode); pin : nomor pin yang akan dikonfigurasi (nomor pin pada board Arduino UNO, 0 – 13 atau A0 –
A5).
mode : INPUT atau OUTPUT.
Sebagai contoh jika pin no 2 akan dibuat sebagai pin output, maka :
pinMode(2, OUTPUT); Contoh yang lain pin no 4 dibuat sebagai input :
pinMode(4, INPUT); Perhatikan penulisan huruf, besar kecilnya sangat berpengaruh.
Menulis Data Digital di Pin Output Setelah membuat pin sebagai digital output dengan fungsi pinMode(pin,OUTPUT) selanjutnya untuk menulis atau mengeluarkan data digital dengan perintah :
digitalWrite(pin, value); pin : nomor pin digital output.
www.tokotronik.com
7
BELAJAR ARDUINO
value : HIGH atau 1 (5 volt) atau LOW atau 0 (0 volt/ground).
Sebagai contoh, pin 3 sebagai pin digital output akan diberi logika 1 :
pinMode(3, OUTPUT); digitalWrite(3, HIGH); Atau dapat juga ditulis dengan cara lain, yaitu : digitalWrite(3, 1);
Membaca Data Digital di Pin Input Jika sebuah pin dibuat sebagai pin input, maka kita masih harus menentukan tipe inputnya : floating atau pullup. Jika kita pilih pullup maka resistor pullup internal (pada setiap pin) akan aktif. Caranya adalah :
digitalWrite(pin, value);
pin : nomor pin yang diset sebagai pin input.
value : HIGH atau 1 (pullup aktif) atau LOW atau 0 (floating).
Contoh pin no 4 akan dibuat sebagai pin input dengan pullup :
pinMode(4,INPUT); digitalWrite(4,HIGH); Setelah diset sebagai pin input, fungsi pembacaan data digitalnya adalah :
Var=digitalRead(pin); Misalnya akan dibaca pin no 4, hasil pembacaan disimpan dalan variabel baca :
baca=digitalRead(4);
Hubungkan kabel USB ke konektor USB Arduino, kemudian ujung yang satunya ke port USB komputer/laptop. Lampu LED pada Arduino akan nyala. Kalau belum nyala juga periksa koneksi kabel USB nya. Sesaat setelah dicolokkan ke komputer maka pada layar akan tampil informasi bahwa telah terdeteksi hardware baru seperti pada gambar.
Kemudian muncul dialog seperti gambar berikut.
www.tokotronik.com
8
BELAJAR ARDUINO
Pilih Install form a list or specific location (Advanced) , kemudian klik Next >.
Klik Browse untuk menentukan lokasi driver, sesuaikan dengan lokasi dimana anda menyimpannya. Cari di CD:\Arduino-1.0.1\drivers. Kemudian klik Next>, maka akan muncul dialog seperti pada gambar.
Pilih Continue Anyway . Proses instalasi akan berjalan, tunggu sampai selesai.
www.tokotronik.com
9
BELAJAR ARDUINO
Apabila telah selesai akan muncul kotak dialog seperti pada gambar.
Klik Finish dan board Arduino siap digunakan.
Software yang digunakan untuk membuat program berbasis board Arduino sifatnya free, dan instalasinya juga sangat gampang. Masih menggunakan OS Windows, silahkan explore folder Arduino1.0.1 (untuk versi terbaru bisa download di http://arduino.cc/en/Main/Software). Klik 2 kali (klik kanan terus open) file Arduino.exe.
Klik 2 kali
Untuk penggunaannya kita akan sering memakai toolbar, keterangan tombol toolbar terlihat pada gambar berikut.
www.tokotronik.com
10
BELAJAR ARDUINO
Upload
Verify
Open
New
Save
Gambar tersebut adalah tampilan software Arduino yang nantinya akan kita pakai untuk membuat program dan mengisikannya (upload) ke memori Arduino. Sekarang kita pelajari sebentar fungsi tombol pada toolbar.
Verify .
Berfungsi untuk mengeksekusi (proses compile) program.
New .
Membuat lembar kerja baru.
Open.
Membuka file yang pernah dibuat & disimpan.
Save.
Menyimpan program, secara otomatis akan berekstensi *.pde.
Upload .
Berfungsi untuk mentransfer program yang telah dieksekusi ke dalam memori Arduino, dalam beberapa software disebut dengan istilah program, ada juga yang menyebut dengan istilah download. Setelah kita pahami si Arduino ini, baik secara hardware maupun software sekarang saatnya kita mencoba ilmunya. Kita mulai dari yang paling dasar & sederhana, digital output.
Aplikasi digital output memanfaatkan pin I/O yang difungsikan sebagai pin output. Pada board Arduino terdapat sebuah LED berwarna kuning (built-in, LED SMD jadi agak kecil bentuknya), yang terhubung ke pin 13
LED
Perhatikan rangkaian LED-nya, jika pada pin 13 terdapat tegangan 5 volt (HIGH) maka terdapat perbedaan tegangan antara kaki anoda (5 volt) dengan kaki katoda (0 volt, ground) sehingga akan mengalir arus dan LED nyala (ON). Tegangan 0 volt (LOW) akan membuat LED padam (off).
www.tokotronik.com
BELAJAR ARDUINO
11
Baik, sekarang buka program Arduino.exe, kemudian tulis program 1. Silahkan sesuaikan setingan software Arduino dengan board Arduino anda, dalam hal ini kita memakai Arduino UNO. Klik Tools Board Arduino Uno .
Sesuaikan juga nomor port serial (USB to Serial).
Jika anda belum tahu nomornya dapat dilihat dengan cara : klik kanan My Computer , kemudian pilih Properties. Pada tab Hardware pilih Device Manager . Lihat pada kelompok Ports (COM & LPT). Baik, sekarang tulis/ketik program yang pertama.
//Program 1 : menghidupkan LED di pin 13 board Arduino void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); }
www.tokotronik.com
12
BELAJAR ARDUINO
2.
3. 1.
Setelah selesai, simpan (Save) dan beri nama, misalnya ‘program1’ (tanpa tanda petik). Secara otomatis terbentuk folder dengan nama ‘program1’.Didalamya terdapat file dengan nama ‘program1.pde’. Compile atau klik toolbar Verify .
Tunggu sampai proses compiling selesai.
Jika ada error silahkan perbaiki dulu, perhatikan penulisannya, karena pemrograman juga tentang ketelitian. Selanjutnya upload program ke board Arduino, klik Upload .
www.tokotronik.com
13
BELAJAR ARDUINO Tunggu sampai proses upload selesai.
Jalannya program : Lihat hasilnya pada led kuning. LED warna kuning (L) akan nyala.
LED Kuning nyala
Penjelasan program : Pada baris atas ada sebuah komentar (diawali dg //) :
//Program 1 : menghidupkan LED di pin 13 board Arduino Komentar sifatnya sebagai penjelas saja. Tidak wajib. Tidak berpengaruh terhadap jalannya program. Program dimulai dengan inisialisasi : void setup(), hanya ada satu perintah dalam inisialisasi ini. pinMode(13, OUTPUT); pin no 13 difungsikan sebagai pin output. Selanjutnya program utama : void loop() juga hanya ada satu perintah yaitu : digitalWrite(13, HIGH); pin no 13 ditulis HIGH, artinya pin 13 mengeluarkan logika HIGH /”1” (5 volt), maka kita lihat LED akan nyala (ON). //Program 1 : menghidupkan LED di pin 13 board Arduino Komentar void setup() { pinMode(13, OUTPUT);
Fungsi :
} No pin :
void loop() { digitalWrite(13, HIGH);
Pin 13 mengeluarkan logika HIGH
}
Sebenarnya ada cara lain untuk membuat logika pin menjadi ‘HIGH’ atau ‘LOW’. Dengan cara langsung ditulis nilai ‘1’ untuk ‘HIGH’ dan ‘0’ untuk ‘LOW. Langsung contoh aja ya, pada program 1 :
www.tokotronik.com
BELAJAR ARDUINO
14
//Program 1 : menghidupkan LED di pin 13 board Arduino void setup() { pinMode(13, OUTPUT); }
Pin 13 mengeluarkan logika ‘1’
void loop() {
HIGH
digitalWrite(13, 1); }
UNTUK MEMPELAJARI DASAR-DASAR ARDUINO DENGAN JELAS, MUDAH & LANGSUNG DIPRAKTEKKAN ANDA BISA MEMBELI PAKET MASTER MIKRO ARDUINO VER.2.
www.tokotronik.com