0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan34 halaman

Tutorial Pemrograman Arduino Dasar

Tutorial ini memberikan panduan langkah demi langkah untuk memprogram Arduino, termasuk cara menghubungkan board Arduino Uno, menggunakan Arduino IDE, dan membuat program sederhana seperti 'Blinking LED'. Selain itu, tutorial ini juga membahas cara membuat simulasi Arduino di Proteus dan pemrograman LCD 16x2 dengan Arduino, dengan penjelasan yang mudah dipahami untuk berbagai kalangan. Setiap bagian dilengkapi dengan instruksi dan contoh kode yang jelas.

Diunggah oleh

budi
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan34 halaman

Tutorial Pemrograman Arduino Dasar

Tutorial ini memberikan panduan langkah demi langkah untuk memprogram Arduino, termasuk cara menghubungkan board Arduino Uno, menggunakan Arduino IDE, dan membuat program sederhana seperti 'Blinking LED'. Selain itu, tutorial ini juga membahas cara membuat simulasi Arduino di Proteus dan pemrograman LCD 16x2 dengan Arduino, dengan penjelasan yang mudah dipahami untuk berbagai kalangan. Setiap bagian dilengkapi dengan instruksi dan contoh kode yang jelas.

Diunggah oleh

budi
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Tutorial Arduino 1: Cara Memprogram

Arduino
"Tutorial ini saya peruntukkan untuk semua kalangan, entah anak SMP, entah insinyur
sipil, entah ibu rumah tangga. Sehingga ada analogi-analogi yang saya buat dengan bahasa
'slank' (jawanya: agak slengekan, hehe) untuk memudahkan pemahaman. Apabila Anda
sudah mahir dengan mikrokontroler dan kurang berkenan dengan pemilihan kata-kata yang
saya gunakan, mohon dimaklumi."

Hai, selamat datang kembali. Di tutorial 2 ini saya akan membahas tentang bagaimana cara
memprogram board arduino. Yang diperlukan dalam tutorial ini adalah:

1. Board Arduino Uno (terserah mau yang asli maupun yang clone),

2. Kabel USB printer

3. Komputer yang sudah terisi aplikasi arduino IDE (dapat didownload di


[Link]
Baik, kita mulai saja langsung. Langkah pertama adalah sambungkan kabel usb seperti pada
gambar di bawah ini:

Sesudah itu, cek pada device manager, apakah Arduino Uno Anda telah terbaca:

Setelah arduino anda terdeteksi, jangan lupakan nomor portnya (di komputer saya adalah
COM21). Oke, di sini Anda telah melakukan 50% pekerjaan. Yang harus dilakukan selanjutnya
adalah buka aplikasi Arduino IDE, sehingga muncul tampilan seperti di bawah ini:
Ini adalah tampilan utama dari Arduino IDE. Baik, kita akan coba mempraktekkan tes
program yang paling mudah, yaitu 'Blinking LED'. Apa itu? Blinking bisa diartikan berkedip-
kedip, sehingga 'Blinking LED' dapat diartikan membuat LED berkedip-kedip. Apa itu LED?
Bagi yang belum tahu, lihat board Arduino anda, ketika sudah terkoneksi dengan komputer akan
ada lampu berwarna hijau yang menyala, nah itulah lampu LED. Mudah kan? :D

Untuk membuatnya, tidak perlu bingung, karena tim Arduino sudah menyediakan contoh
programnya. Cara membukanya adalah klik File --> Examples --> [Link] --> Blink:

Jika benar, maka akan muncul tampilan seperti ini:


Untuk mendownloadnya, ikuti langkah berikut. Pertama, klik Tools --> Board, pilih Arduino
Uno.

Kedua, klik Tools --> Serial Port, pastikan nomor COM Anda sama seperti yang tertera di
device manager (dalam hal ini, di komputer saya adalah COM21)
Ketiga, klik Tools --> Programmer, pilih Arduino as ISP.

Keempat, langkah terakhir, untuk mendownload program ke board Arduino, klik tombol
panah di bagian atas aplikasi,
Setelah itu, tunggu hingga proses download selesai.

Nah, setelah selesai, coba amati pada board Arduino Anda. Yup! akan ada LED berwarna
kuning (atau oranye) berkedip setiap 1detik. Kalau Anda bertanya, "kok bisa gini?", sabaaarrr...
Akan dijelaskan lebih lanjut di tutorial selanjutnya, insyaAllah.

Yang pasti, untuk penjelasan singkatnya, pin 13 pada Arduino Uno tersambung ke LED,
sehingga ketika kita beri logika High pada Pin 13, maka lampu LED akan menyala ^^
Tutorial Arduino 2: Membuat Simulasi
Arduino di Proteus
"Tutorial ini saya peruntukkan untuk semua kalangan, entah anak SMP, entah insinyur
sipil, entah ibu rumah tangga. Sehingga ada analogi-analogi yang saya buat dengan bahasa
'slank' (jawanya: agak slengekan, hehe) untuk memudahkan pemahaman. Apabila Anda
sudah mahir dengan mikrokontroler dan kurang berkenan dengan pemilihan kata-kata yang
saya gunakan, mohon dimaklumi."

Pada tutorial kali ini, kita akan membahas tentang bagaimana membuat simulasi Arduino di
Proteus. Hal ini berguna bagi yang ingin belajar mikrokontroler tapi terkendala tidak mempunyai
biaya untuk membeli hardware. Sebenarnya, jika ingin mahir untuk membuat alat berbasis
mikrokontroler, saya sarankan untuk mempraktekannya secara langsung. Karena apa yang kita
rancang di simulasi, belum tentu benar-benar bisa berjalan saat realisasinya. Tapi untuk berlatih
algoritma, yaaa, okelah :D .. Baik, jika proteus anda belum mempunyai komponen arduino, maka
Anda perlu menambahkannya, Silahkan download komponennya di sini. Proteus yang saya
gunakan adalah proteus 8. Setelah didownload, ekstrak folder tersebut. Lalu kopikan file
[Link] dan [Link] ke direktori: C:\ProgramData\Labcenter Electronics\
Proteus 8 Professional\LIBRARY

dan kopikan file [Link] ke direktori: C:\ProgramData\Labcenter Electronics\Proteus 8


Professional\MODELS
Sekarang, buka ISIS - Proteus Anda, lalu tekan tombol P. maka akan muncul tampilan daftar
komponen pada library proteus Anda. Ketik "arduino" pada kolom keywords, maka akan tampil
beberapa board arduino yang tersedia. Pilih arduino Uno dan klik tombol "Ok". Setelah itu klik
pada bidang kerja sehingga board arduino tampil, lalu klik sekali lagi. Untuk merotasi board,
klik kanan pada board, lalu pilih opsi rotasi yang tersedia. Selanjutnya kita akan membuat
rangkaian LED pada pin13. Langkahnya sama seperti saat kita mengambil komponen boar
arduino Uno pada library. Buat rangkaian sehingga sama seperti tampilan di bawah ini:

Nah, agar program yang dibuat di Arduino IDE dapat dijalankan di simulasi proteus, maka
perlu beberapa modif. Buka Arduino IDE Anda, Pilih File --> Preferences, lalu centang
'Compilation' seperti pada gambar:
Hal ini bertujuan agar alamat file ,hex hasil compile dapat ditampilkan. Setelah dicentang,
tekan tombol Ok. Selanjutnya, pilih File --> Example --> [Link] --> Blink, lalu klik icon
'Verify' (atau tekan Ctrl+R). Tunggu hingga proses compile selesai.

Setelah proses compile selesai, lihat bagian yang ber-background hitam. Scroll hingga paling
bawah, cari baris yang terdapat ........hex. Lalu blok tulisan dari "C:\\..." hingga ".hex" dan tekan
'Ctrl+C' untuk meng-copy ke clipboard. Selanjutnya buka ISIS Anda lagi, lalu double click
board arduino sehingga muncul jendela 'Edit Component', dan copy-kan ke kolom 'Program File'
(Lihat gambar di bawah jika Anda bingung)
Setelah alamat file .hex tadi kita copy-kan, tekan tombol Ok. Terakhir klik 'Run Simulation'
(icon play yang ada di pojok kiri bawah aplikasi ISIS), dan taraaaa.... Anda akan melihat led
berkedip-kedip seperti di tutorial 1
Tutorial Arduino 3: Memprogram LCD 16x2
menggunakan Arduino
"Tutorial ini saya peruntukkan untuk semua kalangan, entah anak SMP, entah insinyur
sipil, entah ibu rumah tangga. Sehingga ada analogi-analogi yang saya buat dengan bahasa
'slank' (jawanya: agak slengekan, hehe) untuk memudahkan pemahaman. Apabila Anda
sudah mahir dengan mikrokontroler dan kurang berkenan dengan pemilihan kata-kata yang
saya gunakan, mohon dimaklumi."

Selamat datang kembali di blog saya. Pada tutorial ke-3 ini saya akan membahas tentang
pemrograman LCD 16x2. Emmmm, sebenarnya, pada pembelajaran mikro secara umum, yang
dibahas pertama kali adalah tentang I/O (input/output). Namun, di sini saya tidak mengikuti
'kaidah' umum, dengan membahas tentang pemrograman LCD 16x2 terlebih dahulu. Kenapa?
Karena menurut saya, sesuai dengan namanya: I/O, ada 2 komponen, yaitu Input dan Output.
Input sendiri nantinya terdapat perbedaan saat menggunakan pull-up internal dan pull-up
eksternal. Nah, disinilah umumnya terdapat kesulitan jika dijelaskan dalam 1 sesi. Sedangkan
pemrograman LCD itu sangat mudah. Cukup koneksikan board LCD dengan board Arduino
secara benar, diprogram, tringggg, teks bisa ditampilkan!!! :D

Baiklah, untuk tutorial ini yang anda butuhkan sama seperti pada tutorial 2, yaitu Board
Arduino Uno+Kabel USB Printer+Laptop dannnn..... board LCD 16x2 + kabel jumper. Ada 2
pilihan untuk board LCD 16x2, anda membuat dengan menggunakan project board seperti di
bawah ini:

sumber: [Link]
atau menggunakan board LCD 16x2 buatan saya (yang dapat di beli di [Link]
[Link]. hahahaha) :
Hanya 85ribu rupiah!!!
"Board ini compatible dengan Arduino kah?", nah, ada 1 nasehat yang perlu saudara-saudara
sekalian ingat :D
"Semua sensor/display yang dapat dibaca oleh mikrokontroler pada umumnya, maka
SEMUANYA KOMPATIBEL DENGAN ARDUINO"
Memang, seiring dengan munculnya Arduino, muncul board-board sensor yang tertulis
"Arduino Compatible". Arti dari kalimat "Arduino Compatible" bukan sensor-sensor tersebut
hanya dapat di baca dengan modul arduino, tapi lebih kepada source code untuk pembacaaan
sensor-sensor tadi sudah tersedia dalam bahasa pemrograman Arduino :D ... jadi tentu saja,
karena board LCD saya ini bersifat universal (bahkan dapat digunakan baik oleh programmer
Code Vision maupun Bascom AVR) maka tentu saja board LCD saya kompatibel dengan
Arduino. Hanya saja bukan shield Arduino. "Maksudnya?", maksudnya, untuk dapat diprogram
dengan board Arduino, butuh dihubungkan dengan kabel. Sedangkan Arduino Shield, cukup
ditancapkan pada board Arduino karena bentuk dan ukuran port-nya Arduino Shield sudah sama
denga Arduino board (semoga Anda tidak bingung. Aamiin).

Baiklah, mari kita mulai untuk memprogram LCD menggunakan Arduino Uno. Untuk
mempermudah pengkabelan, saya menggunakan header tekuk pada port Arduino. Port pada
board Arduino yang digunakan adalah:
- 5V
- Gnd
- Pin2 s/d Pin7

Jika Anda menggunakan AP-LCD [Link] board, anda cukup menghubungkan dengan kabel
antara:
* LCD pin RS ke UNO digital pin 7
* LCD pin Enable ke UNO digital pin 6
* LCD pin D4 ke UNO digital pin 5
* LCD pin D5 ke UNO digital pin 4
* LCD pin D6 ke UNO digital pin 3
* LCD pin D7 ke UNO digital pin 2
* LCD pin R/W ke UNO ground
* LCD pin VCC ke UNO 5V
* LCD pin GND ke UNO GND

Hasilnya sebagai berikut:

Namun, jika Anda hendak menggunakan project board, anda bisa membuat rangkaian seperti
berikut di project board Anda:
Bingung? Intinya, yang dibutuhkan untuk memprogram LCD adalah Pin RS, E, D4, D5, D6,
D7. Pin inilah yang terhubung dengan pin Arduino Uno. Jika menggunakan pemrograman
CodeVision AVR, pin R/W juga dihubungkan dengan pin mikrokontroler. Sedangkan untuk
pemrograman Arduino, pin R/W dihubungkan ke Ground. Pin3 (Contrast) digunakan untuk
mengatur gelap terang tampilan teks di LCD. Sebenarnya Pin3 dapat langsung di hubungkan ke
Ground. Tetapi, pada beberapa tipe LCD, dibutuhkan pengaturan level tegangan menggunakan
Varible Resistor untuk mendapatkan settingan contrast terbaik. Untuk Pin15 dan Pin16
digunakan untuk menyalakan LED backlight, LED yang membuat LCD terlihat menyala
(gampangannya seperti itu). Tambahkan resistor dengan nilai antara 330 - 560ohm (lihat gambar
skematik) untuk membatasi arus yang mengalir pada LED backlight.

Setelah semua pin yang dibutuhkan sudah terkoneksi, buka aplikasi Arduino IDE anda, lalu
buat jendela baru dengan menekan tombol Ctrl+N. Setiap anda membuat program baru, maka
akan ada teks:

void setup() {
// put your setup code here, to run once:

void loop() {
// put your main code here, to run repeatedly:

Hapus semua teks tersebut sehingga tampilan pada Arduino IDE anda benar-benar bersih:
Lalu copikan code dibawah ini di Arduino IDE Anda:

Copy dari sini...:


/*

Tutorial 2: Pemrograman LCD 16*2


-Board menggunakan AP LCD-Push Button, yang dapat dibeli di
[Link]-

Koneksi Board LCD - Arduino:


* LCD RS pin to digital pin 7
* LCD Enable pin to digital pin 6
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* VCC to 5V
* GND to GND

Dibuat oleh
Syamsiar Kautsar, [Link].

*boleh diedit dan disalin untuk keperluan pendidikan

*/

// ini adalah code yang harus ditambahkan untuk mengimport


Library LCD 16*2
// jadi, jika menggunakan LCD, selalu ingat untuk menambahkan
code: #include <LiquidCrystal.h>
// "Bagaimana jika lupa tidak menambahkannya?" ya silahkan
dicoba sendiri :D Hehehehe..
#include <LiquidCrystal.h>

// ini adalah inisialisasi pin LCD yang terhubung dengan pin


Ardunio,
// code di bawah ini mempunyai arti: pin LCD RS, E, D4, D5, D6,
D7 secara berurutan terhubung ke pin Arduino 7, 6, 5, 4 , 3, 2
// "Apakah bisa diganti-ganti?" Tentu saja bisa, [Link] tinggal
menyesuaikan rangkaian Anda :D
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

void setup() {
// code di bawah ini mempunyai arti kita menggunakan LCD
karakter ukuran 16*2, kenapa?
// karena di pasaran ada LCD yang berukuran 16*4, 20*4 ataupun
LCD grafik
[Link](16, 2);
// code "[Link]" digunakan untuk menampilkan teks "..."
pada LCD,
// ingat, gunakan tanda petik diantara teks yang hendak
ditampilkan
[Link]("Belajar Arduino :D");

// delay = waktu tunggu, ga perlu dijelaskan kan fungsinya


untuk apa? :D
// namun, yang perlu diingat, nilai yang kita masukkan dalam
(xxx) adalah dalam satuan mili second
// artinya, jika kita ingin delay selama 1 detik, maka kita
isi dengan nilai 1000. Ok?
delay(2000);
}

// mari kita masuk ke program utama


// void loop digunakan agar program selalu dikerjakan berulang-
ulang
// urutan pengerjaan program adalah dari atas ke bawah, ingat:
dari atas ke bawah. Dan selalu begitu..

void loop() {
//------------------------------------------------------------
---------------------------------------------
// code ini untuk menghapus isi memori pada LCD, ini sama
halnya saat anda menghapus tulisan di papan tulis
[Link]();

// code "[Link]" (ingat bukan "[Link]", software


arduino bersifat case sensitif, artinya...
// "aku" tidak sama dengan "Aku") digunakan untuk memposisikan
cursor pada lokasi (kolom,baris)
// lokasi dimulai dari angka 0, artinya jika menggunakan LCD
16*2, maka ada baris 0 dan 1 serta kolom 0-15
[Link](0,0);
[Link]("teks di LCDnya");
[Link](0,1);
[Link]("nyala/mati kan?");

//------------------------------------------------------------
----------------------------------------------
// "[Link]" digunakan untuk menghilangkan tampilan teks
pada LCD, ini berbeda dengan "[Link]"
// "[Link]" hanya menghilangkan tampilan teks, tapi
tidak menghapus isi memori LCD
// ini sama halnya Anda menulis di papan tulis, lalu
menutupnya dengan tirai agar tulisannya tidak terlihat
// ketika tirainya dibuka, maka tulisannya akan tampak lagi ^^
[Link]();
delay(500);
// Turn on the display:

// "[Link]" digunakan untuk menampilkan kembali isi teks


yang ada pada memori LCD, mudah bukan?
[Link]();
delay(500);

// kita ulang 2x lagi :D


[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);

//------------------------------------------------------------
---------------------------------------------
[Link]();

[Link](0,0);
[Link]("saat ini,");
[Link](0,1);
[Link]("cursor nyala");

// [Link] digunakan untuk menampilkan cursor pada LCD


// ingat ketika mengetik menggunakan MS. Word? akan ada cursor
yang kelap-kelip sebagai penanda,
// nah, seperti itulah code ini bekerja,
[Link]();
delay(3000);

[Link](0,0);
[Link]("saat ini,");
[Link](0,1);
[Link]("cursor mati ");

// "[Link]" digunakan untuk menghilangkan tampilan


cursor pada LCD
// apabila kita tidak memerlukan tampilan cursor pada LCD
kita,
// kita bisa gunakan code ini
[Link]();
delay(3000);

//------------------------------------------------------------
---------------------------------------------
[Link]();

[Link](0,0);
[Link]("saat ini,");
[Link](0,1);
[Link]("blinking aktif");

// [Link] digunakan untuk menampilkan posisi pada LCD dalam


format blok yang berkedip-kedip
// code ini sebenarnya hampir sama dengan fungsi code
[Link],
// hanya berbeda pada bentuk tampilan di LCD,
[Link]();
delay(3000);

[Link](0,0);
[Link]("saat ini,");
[Link](0,1);
[Link]("blingking mati");

// "[Link]" digunakan untuk menghilangkan tampilan


blinking pada LCD
// apabila kita tidak memerlukan tampilan blink sebaga penanda
posisi cursor pada LCD kita,
// kita bisa gunakan code ini
[Link]();
delay(3000);

//------------------------------------------------------------
-------------------
[Link]();

[Link](0,0);
[Link]("0123456789ABCDEF");
[Link](2,1);
[Link]("geser kanan");
delay(1000);

[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
//[Link]();
//delay(500);

[Link](2,1);
[Link]("geser kiri ");
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
}
... sampai sini.

Silahkan disimpan dengan nama sesuka Anda. Selanjutnya, tinggal mendownload ke Arduino
anda, dan taraaaaaa!!! :D (bagi yang belum bisa mendownload program, silahkan dibaca Tutorial
2
Tutorial Arduino 4: Operasi Pengulangan
pada Pemrograman Arduino
Pada tutorial ke-4 ini, kita akan membahas mengenai operasi perulangan. Materi ini sengaja
tidak saya sampaikan di awal-awal, agar kita bisa belajar "learning by doing", jadi tidak terlalu
banyak membayangkan. Oke, sebenarnya, ketika kita membuka program Arduino IDE pertama
kali, sudah ada operasi perulangan yang muncul secara otomatis. Apa itu? Yup, itu adalah:

void loop() {
// put your main code here, to run repeatedly:
// tulis program di sini
}

Jadi, program yang ditulis di antara kurung kurawal { ... } itulah yang akan diulang. Jadi
misalkan programnya saya tulis jadi:
void loop() {
nyalakan_led1()
nyalakan_led2()
nyalakan_led3()
}

Anggaplah nyalakan_led(1) itu adalah perintah untuk menyalakan led1, nyalakan_led(2) untuk
menyalakan led2, dan nyalakan_led(3) untuk menyalakan led3. Source code di atas akan
menyalakan led1 untuk pertama kali, selanjutnya menyalakan led2, dan terakhir menyalakan
led3. Setelah itu, program akan kembali menyalakan led1 lagi, led2 lagi, dan led3 begitu
seterusnya berulang-ulang. Paham kan? "Pahaaaaam".. Alhamdulillah. :D

Nah, selain void loop ada juga perulangan bersyarat, yaitu menggunakan fungsi "for" dan
"while". Namanya juga perulangan bersyarat, maka pengulangan ini akan berhenti ketika sebuah
syarat yang kita buat telah terpenuhi. Oke, kita coba ambil contoh program yang ada di web
arduino, pertama untuk fungsi:
- For
for (syarat perulangan) {
isi dengan program yang ingin kita ulang secara bersyarat;

}
- While
while (syarat_perulangan) {
isi dengan program yang ingin kita ulang secara bersyarat;
}

Namun, untuk fungsi for dan while ada perbedaan pada format penulisan syarat perulangan.
Biar tidak bingung, silahkan copy-paste program di bawah ini (langkahnya sama seperti pada
tutorial 3 sebelumnya). Untuk koneksi board Uno dan LCD16*2 juga sama seperti pada tutorial
3.

Terdapat 2 program yang hasil tampilannya pada LCD 16x2 adalah sama, namun program
pertama menggunakan perulangan bersyarat for, yang kedua menggunakan while (jadi
langkahnya, copy-paste kedua program tersebut pada 2 jendela Arduino IDE yang berbeda,
download program pertama, amati hasilnya, lalu download program yang kedua dan amati juga
hasilnya).

copy-paste program pertama dari sini...


/*
Tutorial 4: Penggunaan For Loop
-Board menggunakan AP LCD-Push Button, yang dapat dibeli di
[Link]-

Koneksi Board LCD - Arduino:


* LCD RS pin to digital pin 7
* LCD Enable pin to digital pin 6
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* VCC to 5V
* GND to GND

Dibuat oleh
by Syamsiar Kautsar, [Link].

*boleh diedit dan disalin untuk keperluan pendidikan

tambahan: kenapa saya memasukkan materi looping pada tutorial


ke-3 setelah LCD?
Karena di beberapa tutorial, untuk looping, logika bersyarat
dkk biasanya dimasukkan di subbab
tersendiri, namun, hal itu sebatas pada teori dan format
penulisan.

Dan karena learning by doing itu menurut saya lebih mudah


diserap otak, maka saya sisipkan
beberapa fungsi-fungsi dalam pemrograman mikrokontroler.

*bagi yang sudah terbiasa dalam bahasa pemrograman, anda boleh


skip materi ini :D

*/

#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int led = 13;
boolean logicled;

void setup() {
logicled = 0;

pinMode(led, OUTPUT);

[Link](16, 2);
[Link]("Looping For");

delay(2000);
}

// mari kita masuk ke program utama


// dalam percobaan ini kita tetap menggunakan LCD, sama seperti
tutorial 2

void loop() {

//
----------------------------------------------------------------
-------
// sama seperti di tutorial - 2, list code berikut adalah
untuk menggeser
// teks di LCD
digitalWrite(led, LOW);

[Link]();

[Link](0,0);
[Link]("0123456789ABCDEF");
[Link](2,1);
[Link]("geser kanan");
delay(1000);

// bagian ini yang nantinya kita modifikasi


[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
// .......................................
[Link](2,1);
[Link]("geser kiri ");
delay(500);

// bagian ini yang nantinya kita modifikasi


[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
//........................................

//
----------------------------------------------------------------
-------
// kita akan membuat hasil tampilan yang sama dengan program
di atas,
// namun dengan fungsi for

digitalWrite(led, HIGH); // lampu LED hanya sebagai pembeda,


karna hasil tampilan di LCD...
// ..akan sama, hanya ditulis
dengan fungsi yang berbeda.
// LED menyala artinya yang sedang
dikerjakan adalah program...
// ..dengan fungsi for

[Link]();

[Link](0,0);
[Link]("0123456789ABCDEF");
[Link](2,1);
[Link]("geser kanan");
delay(1000);

// baiklah, tolong perhatikan code di bawah ini,


// penggunaan for memiliki beberapa bagian penting
// for ( "xxx", "yyy", "zzz") {
// .... isi program yang diulang-ulang
// .... terserah mau berapa baris
// } <--- penutup, jangan sampai lupa :D

// "xxx" berisi deklarasi variabel dan nilai awal untuk


pengulangan
// "yyy" murapakan syarat untuk terus dilakukan pengulangan
// "zzz" adalah penambahan/pengurangan nilai variabel
for (int nLooping = 0; nLooping < 3; nLooping++) {
[Link]();
delay(500);
}
// code di atas memiliki arti:
// "xxx" = "int nLooping = 0" artinya saya membuat sebuah
varibel...
// ..bertipe integer, dengan nilai = 0
// "yyy" = "nLooping < 3" artinya looping terus dilakukan
selama...
// ..bilangan nLooping tetap kurang dari 3
// "zzz" = "nLooping++" lakukan penambahan +1 tiap satu kali
perulangan

[Link](2,1);
[Link]("geser kiri ");

for (int nLooping = 5; nLooping < 8; nLooping++) { // anda


bebas ...
[Link](); //
mengganti nLooping = n
delay(500); //
nLooping < batas
} //hasilnya
sama saja dengan...
//nLooping =
0; nLooping <3
// setelah itu silahkan amati hasilnya :D

[Link]();
delay(500);

//------------------------------------------------------------
---------
// program dibawah adalah untuk menampilkan hitungan mundur
dari 5-0...
// ..menggunakan fungsi for

[Link](0,0);
[Link]("hitungan mundur:");

// "nHitungMundur--" berarti lakukan pengurangan -1 pada


variabel nHitungMundur...
// .. tiap satu kali looping
for (int nHitungMundur = 5; nHitungMundur >= 0 ;
nHitungMundur--) {
[Link](8,1); [Link](nHitungMundur);

logicled = ~logicled;
digitalWrite(led, logicled);

delay(1000);
}

[Link]();
delay(500);

[Link]("................");
delay(1000);

[Link]();
delay(500);

}
... sampai sini.

copy-paste program kedua dari sini...


/*
Tutorial 4: Penggunaan While Loop
-Board menggunakan AP LCD-Push Button, yang dapat dibeli di
[Link]-

Koneksi Board LCD - Arduino:


* LCD RS pin to digital pin 7
* LCD Enable pin to digital pin 6
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* VCC to 5V
* GND to GND

Dibuat oleh
by Syamsiar Kautsar, [Link].

*boleh diedit dan disalin untuk keperluan pendidikan

tambahan: kenapa saya memasukkan materi looping pada tutorial


ke-3 setelah LCD?
Karena di beberapa tutorial, untuk looping, logika bersyarat
dkk biasanya dimasukkan di subbab
tersendiri, namun, hal itu sebatas pada teori dan format
penulisan.

Dan karena learning by doing itu menurut saya lebih mudah


diserap otak, maka saya sisipkan
beberapa fungsi-fungsi dalam pemrograman mikrokontroler.

*bagi yang sudah terbiasa dalam bahasa pemrograman, anda boleh


skip materi ini :D

*/

#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);


int led = 13;
boolean logicled;

void setup() {
logicled = 0;

pinMode(led, OUTPUT);

[Link](16, 2);
[Link]("Looping While");

delay(2000);
}

// mari kita masuk ke program utama


// dalam percobaan ini kita tetap menggunakan LCD, sama seperti
tutorial 2

void loop() {

//
----------------------------------------------------------------
-------
// sama seperti di tutorial - 2, list code berikut adalah
untuk menggeser
// teks di LCD
digitalWrite(led, LOW);

[Link]();

[Link](0,0);
[Link]("0123456789ABCDEF");
[Link](2,1);
[Link]("geser kanan");
delay(1000);

// bagian ini yang nantinya kita modifikasi


[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
// .......................................

[Link](2,1);
[Link]("geser kiri ");
delay(500);

// bagian ini yang nantinya kita modifikasi


[Link]();
delay(500);
[Link]();
delay(500);
[Link]();
delay(500);
//........................................

//
----------------------------------------------------------------
-------
// kita akan membuat hasil tampilan yang sama dengan program
di atas,
// namun dengan fungsi while

digitalWrite(led, HIGH); // lampu LED hanya sebagai pembeda,


karna hasil tampilan di LCD...
// ..akan sama, hanya ditulis
dengan fungsi yang berbeda.
// LED menyala artinya yang sedang
dikerjakan adalah program...
// ..dengan fungsi while

[Link]();

[Link](0,0);
[Link]("0123456789ABCDEF");
[Link](2,1);
[Link]("geser kanan");
delay(1000);

// baiklah, tolong perhatikan code di bawah ini,


// penggunaan while memiliki beberapa bagian penting:
//
// int variabel = n; <-- deklarasi variabel
// while ( variabel < nbatas ) { <-- syarat jika nilai
variabel < nbatas,
// ...maka program akan
terus berulang
// ...bisa juga
'variabel > nbatas'
// ...
// ... <-- tulis program yang ingin Anda looping di sini
//
// variabel++; atau variabel--; <-- tambah(++) atau
kurangi(--) nilai variabel
// }

// gampangnya, jika kita menggunakan variabel < nbatas, maka


pasangannya adalah variabel ++
// jika kita menggunakan variabel > nbatas, maka pasangannya
adalah variabel --
//

int nLooping = 0;
while ( nLooping < 3 ) {
[Link]();
delay(500);

nLooping++;
}
// code di atas memiliki arti:
// "xxx" = "int nLooping = 0" artinya saya membuat sebuah
varibel...
// ..bertipe integer, dengan nilai = 0
// "yyy" = "nLooping < 3" artinya looping terus dilakukan
selama...
// ..bilangan nLooping tetap kurang dari 3
// "zzz" = "nLooping++" lakukan penambahan +1 tiap satu kali
perulangan

[Link](2,1);
[Link]("geser kiri ");

nLooping = 5; // anda bebas mengganti nilai ini


while ( nLooping < 8 ) { // karena tinggal menyesuaikan
nilai batasnya
[Link](); // hasilnya akan sama degan
nlooping = 0
delay(500); // while (nLooping <3)

nLooping++;
}

// setelah itu silahkan amati hasilnya :D

[Link]();
delay(500);

//------------------------------------------------------------
---------
// program dibawah adalah untuk menampilkan hitungan mundur
dari 5-0...
// ..menggunakan fungsi while

[Link](0,0);
[Link]("hitungan mundur:");

// "nHitungMundur--" berarti lakukan pengurangan -1 pada


variabel nHitungMundur...
// .. tiap satu kali looping
int nHitungMundur = 5;
while (nHitungMundur >=0){
[Link](8,1); [Link](nHitungMundur);

logicled = ~logicled;
digitalWrite(led, logicled);

delay(1000);

nHitungMundur --;
}

[Link]();
delay(500);

[Link]("................");
delay(1000);

[Link]();
delay(500);
}
... sampai sini.

Tutorial Arduino 5: Konsep I/O pada


Arduino (Bagian 1/3)

Selamat datang kembali.. Pada tutorial yang ke-5 ini, saya akan membahas tentang konsep
I/O pada arduino. Karena materi I/O terdiri dari 2 item: input dan output, maka saya bagi tutorial
ini menjadi 3 bagian. Bagian 1 dibahas tentang input, bagian 2 tentang output, dan bagian 3
adalah keduanya. Baiklah, kita langsung mulai saja.

Di pemrograman Arduino, nama port tidak ditulis seperti pada datasheet mikrokontroler
ATMega328. Coba lihat gambar di bawah ini:

Sumber: [Link]

Jika menggunakan pemrograman CV AVR ataupun Bascom AVR, pin pada mikrokontroler
disebut sesuai nama pinnya (portB.0, PortC.0, dll). Sedangkan pada arduino, diberi 'nama' pin1-
13 dan A0-A5 (untuk pin analog). Apa itu pin analog? akan kita bahas di bab tersendiri. Dalam
konsep digital I/O dalam mikrokontroler, hanya dikenal logika High (1) dan Low (0). Jika
berlaku sebagai output, sebuah pin yang berlogika High akan mengeluarkan tegangan 5 Volt,
sedangkan jika berlogika Low akan bertegangan 0 Volt. Jika berlaku sebagai input, sebuah pin
akan membaca kondisi High jika diberi tegangan 5 Volt, dan membaca kondisi Low jika diberi
tegangan 0 Volt. (Semoga tidak bingung :D)
"Konsep digital I/O itu pada dasarnya sangat mudah. Jika berlaku sebagai output, maka
'tugasnya' adalah mengeluarkan tegangan 0 Volt atau 5 Volt. Sedangkan jika berlaku sebagai
input, maka 'tugasnya' membaca apakah tegangan yang masuk pada pin tersebut 0 Volt atau
5Volt. Pin analog pada arduino juga bisa berfungsi sebagai digital I/O."
Dalam mikrokontroler AVR (termasuk juga Arduino), terdapat 2 macam konfigurasi input:
yaitu input dengan pull-up, dan input tanpa pull-up. Apa itu pull-up? Perhatikan gambar berikut:

Pin 13 terhubung dengan resistor, dimana ujung resistor yang lain terhubung dengan Vcc /
5Volt. Itulah yang disebut pull-up resistor. Nah, sebenarnya, tiap I/O pada arduino dilengkapi
dengan pull-up internal. Artinya, sudah ada rangkaian resistor pull up di dalam IC
mikrokontroler, yang dapat diaktifkan melalui program. Analoginya seperti laptop yang sudah
built-in dengan DVD player. Misalkan Anda ingin melihat film, Anda bisa langsung gunakan
DVD player internal Anda. Namun, misalkan Anda ingin menggunakan DVD player eksternal,
tentu bisa juga kan?
"Tiap pin I/O pada Arduino dilengkapi dengan pull-up internal yang dapat diaktifkan secara
program"
Untuk mengaktifkan pin sebagai input, menggunakan code:
- pinMode(Pinx, INPUT); //dimana Pinx merupakan nomor pin yang digunakan

Untuk mengaktifkan pin sebagai input dengan kondisi pull-up internal yang aktif,
menggunakan code:
- pinMode(Pinx, INPUT_PULLUP); //dimana Pinx merupakan nomor pin yang digunakan

Lalu apa bedanya dengan kedua code di atas? Mari kita lihat gambar berikut:

Pin12 dikonfigurasikan sebagai input pull-up, sedangkan pin11 dikonfigurasikan sebagai


input saja. Sebuah pin yang dikonfigurasikan sebagai input pull-up, dalam kondisi normal, akan
berlogika high. Sedang yang dikonfigurasikan sebagai input biasa, dalam kondisi normal, akan
ada dalam kondisi floating (mengambang). Oleh sebab itu, jika kita ingin menggunakan push
button sebagai logic input, terdapat perbedaan rangkaian.

Untuk input dengan pull-up, rangkaian push button-nya sangat sederhana. Cukup
hubungkan pin Arduino --> push button --> ground (push button 1 -pada gambar-). Sedangkan
untuk input tanpa pull up, hubungkan pin Arduino --> push button --> Vcc (push button 2 -pada
gambar-). Namun kita perlu menambahkan resistor ke ground, agar dalam kondisi normal, pin
berlogika low / tidak dalam kondisi iddle (mengambang). Rangkaian resistor --> ground ini
disebut pull down resistor. Selanjutnya, amati gambar berikut:

Gambar di atas menunjukkan push button dalam kondisi tertekan. Dalam kondisi tertekan,
rangkaian push button 1 akan berlogika Low. Sebaliknya, rangkaian push button 2 berlogika
High.

Untuk input dengan pull-up, Anda cukup menghubungkan pin Arduino --> push button -->
ground. Sedangkan untuk input tanpa pull-up, Anda perlu menghubungkan pin Arduino --> push
button --> Vcc dan menambahkan resistor pull-down pada pin arduino. Untuk input dengan
pull-up, jika push button ditekan, maka pin akan berubah dari logika High ke logika Low.
Sedangkan pada input biasa, jika push button ditekan, pin akan berubah dari logika Low ke
logika High.
Untuk lebih jelasnya, silahkan buat rangkaian di proteus seperti gambar berikut:
dan downloadkan program di bawah ini ke dalam chip Arduino (lihat tutorial 2 untuk referensi):
dari sini...
//konfigurasi LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

//inisialisasi tombol
int status_tombol1 = 12;
int status_tombol2 = 11;

void setup(){
//inisialisasi LCD
[Link](16, 2);
[Link]("Belajar Arduino :D");

//mengkonfigurasi pin Arduino


pinMode(12, INPUT_PULLUP);
pinMode(11, INPUT);

delay(2000);
[Link]();
[Link](0,0);
[Link]("Tombol1:");
[Link](0,1);
[Link]("Tombol2:");
}

void loop(){
status_tombol1 = digitalRead(12);
status_tombol2 = digitalRead(11);

if (status_tombol1 == LOW) {
[Link](8,0);
[Link]("ditekan");
}
else {
[Link](8,0);
[Link]("- ");
}

if (status_tombol2 == HIGH) {
[Link](8,1);
[Link]("ditekan");
}
else {
[Link](8,1);
[Link]("- ");
}

}
... sampai sini.

Program di atas akan menampilkan status tombol (ditekan atau tidak) pada LCD. Silahkan
Anda amati dan pelajari. Jika ada pertanyaan, silahkan comment atau kirim e-mail. Semoga
membantu.. ^^

Anda mungkin juga menyukai