PENGENALAN ARDUINO
Disusun oleh:
Tim FIK Universitas Narotama
Diterbitkan oleh:
didukung oleh:
II
Kata Pengantar
III
Dalam penutupan akan dibahas sekali lagi secara ringkas tentang tipe
data, ivystemive, static, fungsi, prosedur, operand Arduino yang digunakan
dalam buku ini sehingga akan mudah mencari suatu saat nanti.
Penyusun
IV
Daftar Isi
VI
Daftar Gambar
VII
SANKSI PELANGGARAN PASAL 113
Unda ng-Unda ng Nomor 28 Ta hun 2014 tenta ng Ha k Ci pta :
(1) Seti ap Ora ng ya ng dengan tanpa hak melakukan pelanggaran hak ekonomi seba ga i ma na
di maksud dalam Pasal 9 a yat (1) huruf i untuk Penggunaa n Seca ra Komers i a l di pi da na
dengan pidana penjara paling l ama 1 (satu) ta hun dan/atau pidana denda pa l i ng ba nya k
Rp 100.000.000 (s era tus juta rupi a h).
(2) Seti ap Ora ng ya ng dengan tanpa hak dan/atau ta npa i zin Penci pta a ta u pemega ng Ha k
Ci pta melakukan pelanggaran hak ekonomi Pencipta s ebagaimana dimaksud dalam Pa s a l
9 a ya t (1) huruf c, huruf d, huruf f, dan/atau huruf h untuk Penggunaan Secara Komers i a l
di pidana dengan pidana penjara paling lama 3 (ti ga) tahun dan/atau pidana denda pa l i ng
ba nya k Rp 500.000.000,00 (l i ma ra tus juta rupi a h).
(3) Seti ap Ora ng ya ng dengan tanpa hak dan/atau ta npa i zin Penci pta a ta u pemega ng Ha k
Ci pta melakukan pelanggaran hak ekonomi Pencipta s ebagaimana dimaksud dalam Pa s a l
9 a ya t (1) huruf a , huruf b, huruf e, dan/atau huruf g untuk Penggunaan Secara Komersia l
di pidana dengan pidana penjara paling lama 4 (empa t) ta hun da n/a ta u pi da na denda
pa l i ng ba nya k Rp 1.000.000.000,00 (s a tu mi l i a r rupi a h).
(4) Seti ap Ora ng ya ng memenuhi unsur sebagaimana dimaksud pada ayat (3) ya ng dilakuka n
da l am bentuk pembajakan, dipidana dengan pidana penja ra pa l i ng l a ma 10 (s epul uh)
ta hun dan/atau pidana denda paling banyak Rp 4.000.000.000,00 (empat mi l i a r rupi a h).
VIII
Belajar Embedded System: Pengenalan Arduino 1
Sebelum kita memulai melakukan ‘hacking’ Arduino, ada baiknya kita paham
dulu apa perbedaan mikro-kontroler dan mikro-prosesor.
ISBN: xxxx
2 Belajar Embedded System: Pengenalan Arduino
Jika melihat dari sebuah papan perangkat keras yang ada, yang cukup mudah
untuk membedakan adalah bahwa papan mikro-kontroler tidak memerlukan
adanya sistem operasi dan kita bisa langsung melakukan pemrograman di
atasnya. Sementara itu sebuah papan mikro-prosesor memerlukan sistem
operasi.
Papan Arduino yang akan digunakan dalam buku ini adalah salah satu jenis
papan yang dilengkapi dengan mikro-kontroler. Jenis-jenis Arduino dan
kompatibelnya bisa dibaca pada penjelasan berikutnya.
Pertama, tentu saja kita akan memerlukan sebuah Arduino. Dalam contoh
buku ini akan menggunakan Arduino Uno (gambar 1.1). Jangan lupa kita juga
akan memerlukan kabel USB dengan konektor USB A – USB B, yang akan
digunakan untuk komunikasi antara komputer kita dan Arduino.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 3
Selanjutnya kita juga akan memerlukan sebuah papan percobaan atau proto
board atau beberapa orang juga menyebutnya sebagai bread board (gambar
1.2).
Sesuai dengan namanya, papan percobaan ini nantinya akan kita gunakan
sebagai tempat percobaan. Jangan lupa juga dengan persiapan jumper cable
-kabep pendek untuk men-jumper di dalam papan percobaan dan ke
Arduino. Penjelasan tentang papan percobaan dapat dilihat pada bab
selanjutnya.
ISBN: xxxx
4 Belajar Embedded System: Pengenalan Arduino
Terakhir tetapi bukan yang paling akhir, kita juga memerlukan Light Emitting
Diode (LED), hambatan atau resistor 220 ohm, potensio meter, mini switch,
LCD, sensor-sensor -secara spesifik dijelaskan pada bab-bab selanjutnya,
multitester atau AVO. Semua perlengkapan ini akan dapat dilihat di gambar
1.3.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 5
ISBN: xxxx
6 Belajar Embedded System: Pengenalan Arduino
Selain adanya beberapa pilihan tipe Arduino, di pasaran juga beredar banyak
merek board yang compatible dengan Arduino. Seperti juga dengan tipe
Arduino, semua board tersebut pada intinya adalah sama dan yang
membedakan hanyalah pada tipe dan fitur yang tertanam dalam board
tersebut.
Pada buku ini tidak dijelaskan secara spesifik tentang penggunaan masing-
masing segmen board atau board merek lain. Kita hanya menggunakan
Arduino Uno.
Setelah mengenal lebih dekat dengan board yang akan digunakan, sekarang
saatnya kita mengenal perangkat lunak yang akan digunakan membuat
program yang nanti akan di tanam di dalam board tersebut.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 7
ISBN: xxxx
8 Belajar Embedded System: Pengenalan Arduino
Menu
Verify/Compile
Upload
New Sketch
Open Sketch
Save Sketch
Serial Monitor
Sketch Editor
Line number
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 9
Gambar 1.7 adalah tampilan Arduino IDE pada komputer dengan sistem
operasi MacOS. IDE ini digunakan untuk membuat program yang akan
dijalankan oleh Arduino (biasa disebut sebagai “sketch”) -yang merupakan
kumpulan langkah-langkah yang harus dilakukan oleh Arduino sesuai dengan
keinginan kita.
Kita dapat memfungsikan IDE ini baik dengan menggunakan Menu maupun
menggunakan tombol fungsi. Kegunaan tombol fungsi adalah sebagai
berikut:
ISBN: xxxx
10 Belajar Embedded System: Pengenalan Arduino
Langkah berikutnya, kita lakukan tes apakah Arduino yang kita gunakan
sudah dikenali oleh Arduino IDE? Caranya klik pada menu Tools – Get Board
Info. Jika semua persiapan anda sudah benar, maka IDE akan
memberitahukan board apa yang terpasang pada komputer anda. Jika tidak
ada, coba periksa lagi koneksi, driver apakah sudah terpasang dengan benar
dan apakah pilihan port pada menu Tools – Port sudah sesuai. Sesuaikan
setting anda dan ulangi melakukan tes lagi.
Pada saat membuat Sketch yang baru, secara bawaan IDE akan membuatkan
2 fungsi secara otomatis, yaitu fungsi setup() dan fungsi loop() -yang
keduanya tidak memiliki return value atau bertipe void.
Fungsi setup() hanya akan dijalankan satu kali oleh Arduino. Biasanya
digunakan untuk membuat persiapan sebelum sebuah sistem dijalankan
dengan normal, misalkan contohnya melakukan POST atau Power-On Self
Test -yaitu mengecek semua yang dibutuhkan oleh sistem apakah sudah
terpasang dengan benar dan tidak ada hambatan untuk menjalankannya.
Yang paling sering kita lihat, misalkan jarum speedometer yang bergerak dari
0 sampai dengan maksimal, atau printer head yang bergerak dari ujung kiri
sampai ujung kanan.
Sedangkan fungsi loop() adalah tempat program utama kita. Pada fungsi
inilah semua perintah-perintah kepada Arduino akan dijalankan terus
menerus tanpa berhenti. Jika perintah sudah sampai pada baris terakhir,
maka akan diulangi lagi mulai baris pertama pada fungsi loop().
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 11
Sama seperti bahasa pemrograman yang lain, Arduino juga mengenai global
variable yang didefinisikan di luar fungsi (biasanya di atas sendiri sebelum
fungsi setup()). Global variable ini dapat diakses dari semua fungsi yang ada.
Pada program pertama ini, kita akan menggunakan 2 tipe variabel (int dan
char), menggunakan fungsi komunikasi serial dan delay().
Salinlah program Sketch di bawah ini ke Arduino IDE anda. Program ini juga
bisa didapatkan di github dengan URL https://github.com/Embedded-
System-Narotama/PENGENALAN-ARDUINO/tree/master/bab_1. Setelah itu
lakukan dahulu verify/compile dan pastikan tidak ada kesalahan apa pun dari
program yang ditulis.
Sebelum dilakukan upload, buka terlebih dahulu Serial Monitor yang ada
pada button kanan atas. Serial Monitor ini wajib dibuka pada program ini
karena keluaran dari program memerlukan serial yang nanti akan
menuliskan output-nya di monitor anda.
TIPS:
Sebaiknya anda mengetik ulang program di atas, karena akan membuat
kita lebih ingat daripada copy & paste atau mengunduh dari github.
int angka;
char kalimat[] = "Selamat Datang Arduino";
void setup() {
Serial.begin(9600);
angka = 0;
}
void loop() {
ISBN: xxxx
12 Belajar Embedded System: Pengenalan Arduino
Serial.print(angka);
Serial.print("\t");
Serial.println(kalimat);
angka+=1;
delay(1000);
}
Perbedaan pada kedua deklarasi di atas adalah, pada variabel angka tidak
langsung diisikan inisial nilainya, sementara pada variabel kalimat langsung
diisikan nilai inisialnya, yaitu “Selamat Datang Arduino”.
INGAT!!
Tanda petik “…” hanya digunakan sebagai penanda nilai yang bertipe char
atau string (kumpulan char). Jika ingin memasukkan nilai tanda petik itu
sendiri, maka gunakan awalan backslash atau \ seperti pada contoh
“Selamat Datang \”Arduino\””.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 13
TIPS:
Jika program sudah berjalan sempurna, coba ganti nilai variabel angka dan
kalimat sesuka anda dan amati perbedaan yang ada.
ISBN: xxxx
14 Belajar Embedded System: Pengenalan Arduino
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 15
Dalam belajar mikrokontroler (dan tentu saja mikroprosesor juga), kita harus
memahami konsep-konsep digital. Dalam bab ini dibahas sedikit tentang
digital dan analog untuk mengawali pemahaman bagaimana data-data yang
nantinya akan dihasilkan untuk menjadi output pada Arduino (dan tentu saja
pada akhirnya nanti juga dibutuhkan untuk menjadi input juga).
Jika kita melihat sinyal digital, kondisi sinyal bisa digambarkan seperti pada
gambar 2-1.
ISBN: xxxx
16 Belajar Embedded System: Pengenalan Arduino
Sementara bila kita melihat sinyal analog, kondisi sinyal dapat digambarkan
pada gambar 2-2 di bawah ini.
Perbedaan yang menyolok dari kedua sinyal ini adalah bentuknya. Yang
digital berbentuk kotak -karena dia hanya memiliki niai 1 atau 0, sementara
yang analog bentuknya lengkung -karena memiliki nilai yang tidak terbatas
antara Vmax dan Vmin.
Sebuah kabel atau pin digital dikatakan memiliki nilai 1 atau kondisi high
adalah saat kabel atau pin tersebut ada arus listrik atau terhubung ke Vcc -
dalam hal ini bisa 5 volt atau 3.3 volt (tergantung perangkat yang
digunakan). Sementara kabel atau pin dikatakan memiliki nilai 0 atau kondisi
low adalah saat kabel atau pin terhubung dengan GND atau 0v.
Sementara dalam analog, kita tidak bisa menentukan berapa Vmax dan
berapa Vmin yang ada, kecuali kita melakukan pengukuran dengan alat ukur.
Sebagai contoh, arus jala-jala listrik rumah di Indonesia menggunakan
standar 220 volt. Sehingga bila dilihat dalam osciloscope, maka sinyal yang
kita lihat Vmax adalah +220 volt dan Vmin adalah -220 volt. Berbeda dengan
pabrik atau perkantoran yang menggunakan daya besar, ada kemungkinan
mereka menggunakan 380 volt bukan 220 volt.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 17
DIGITAL PINS
Untuk memudahkan kita dalam belajar, pada buku ini kita bagi pins Arduino
Uno menjadi 3 kelompok pins yang terpisah (gambar 2-3). Pin-pin ini
nantinya akan kita gunakan sebagai jalur komunikasi input maupun output,
serta sebagai jalur power supply atau referensi power supply dengan
perangkat yang ada di luar Arduino -misalkan LED, sensor, dan actuator.
ISBN: xxxx
18 Belajar Embedded System: Pengenalan Arduino
Pertama adalah pin digital. Arduino dilengkapi dengan 14 pin digital. Dalam
buku ini kita sebut saja pin-pin ini sebagai D-0 sampai dengan D-13. Pin
digital ini dapat berfungsi sebagai OUTPUT (dari Arduino ke perangkat luar)
atau sebagai INPUT (dari perangkat luar ke Arduino).
TIPS:
Untuk sementara, hindari penggunaan pin D-0 dan D-1, karena pin-pin
tersebut memiliki fungsi lain yang akan dibicarakan pada buku seri
berikutnya.
Selain pin digital, Arduino juga dilengkapi dengan pin analog, yang dalam
buku ini disebut sebagai Analog Pins.
Pada dasarnya pin-pin analog ini hanya dapat digunakan sebagai input sinyal
yang bersifat analog dengan tegangan antara 0 volt sampai dengan 5 volt.
Dengan program yang kita buat, kita dapat “melihat” sinyal tersebut dalam
format digital yaitu dengan mengubah nilai tegangan yang dibaca oleh pin
analog menjadi sebuah nilai integer (0 – 1023).
INGAT!!
Untuk pembacaan ADC, Arduino memerlukan waktu selama 100 mili-detik
atau 0.0001 detik. Oleh karenanya, yakinkan pembacaan ADC ini tidak
melebihi 10.000 pembacaan per-detik.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 19
Kelompok pin ketiga dalam buku ini disebut sebagai Power Pins.
Pin-pin dalam kelompok ini digunakan sebagai INPUT maupun OUTPUT catu
daya. Pada buku ini, pin-pin yang digunakan hanyalah pin GND dan 5v atau
3.3v untuk catu daya perangkat di luar Arduino.
INGAT!!
Beberapa sensor memiliki tegangan catu daya 3,3 volt. Jadi sebelum
menggunakannya, pastikan tegangan catu daya yang digunakan sudah
sesuai dengan kebutuhan.
INGAT!!
Setiap pin Arduino dapat mengalirkan daya MAKSIMAL sebesar 40 mA, dan
direkomendasikan sebesar 20 mA
Dalam 1 Arduino, MAKSIMAL daya yang bisa digunakan sebesar 200 mA
Dalam buku ini, percobaan masih dilakukan di sekitar LED. Karena itu kita
perlu paham apakah LED dan resistor itu?
LED adalah sebuah dioda yang dapat memancarkan cahaya bila ada arus
listrik yang mengalirinya. Pada gambar 2-4, lambang LED dalam skema
elektronik digambarkan pada gambar A, sementara bagian-bagian LED dapat
dilihat pada gambar B, dan gambar LED pada kondisi real dapat dilihat pada
gambar C. Perhatikan pada kondisi real, kaki anoda pada LED lebih panjang
daripada kaki katoda.
ISBN: xxxx
20 Belajar Embedded System: Pengenalan Arduino
Sesuai dengan hukum dioda pada umumnya, LED baru akan bekerja bila kaki
anoda berada pada sumber daya + dan kaki katoda berada pada sumber
daya 0 atau -. Oleh karena itu, dalam dunia digital, LED baru akan
memancarkan sinar bila kaki anoda diberi nilai 1 atau high, dan kaki katoda
diberi nilai 0 atau low.
Selain LED, kita juga akan menggunakan resistor atau hambatan dan
dilambangkan dengan R dalam skema elektronik. Sesuai dengan namanya, R
atau hambatan ini fungsinya untuk menghambat arus listrik sehingga dapat
mengamankan komponen lain yang dilewati arus listrik agar tidak terlalu
besar arus yang melewatinya. Nilai sebuah hambatan dilambangkan dengan
W dan dibaca Ohm.
Pada gambar 2-5 diperlihatkan lambang (A) dan bentuk real (B) dari salah
satu jenis resistor.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 21
Berbeda dengan LED, resistor tidak memiliki polarisasi sumber daya. Jadi
dipasang dalam posisi bagaimanapun, resistor tetap akan bekerja dengan
baik. Tidak peduli mana yang polarisasi positif dan mana yang polarisasi
negatif.
Pada bagian ini kita akan membahas tentang papan percobaan atau
breadboard seperti yang salah satu jenis fisiknya diperlihatkan pada gambar
1-2. Sementara dalam buku ini akan digambarkan seperti pada gambar 2-6.
ISBN: xxxx
22 Belajar Embedded System: Pengenalan Arduino
4 baris pin yang ada di atas dan di bawah (2 baris pin di atas dan 2 baris pin
di bawah) terhubung secara horizontal. Sehingga pin-pin pada baris pertama
dari atas semuanya terhubung dari nomor 1 sampai dengan nomor 24.
Demikian juga untuk pin-pin pada baris kedua dari atas, serta pin-pin pada
baris pertama dan baris kedua dari bawah.
Sementara pada pin-pin yang ada di tengah, terhubung secara vertikal dan
membentuk kolom-kolom. Sehingga pada kolom nomor 1, dari A sampai
dengan E terhubung, dan dari F sampai dengan J juga terhubung.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 23
Proyek kita yang pertama adalah membuat sebuah LED berkedip. Perhatikan
skema elektronik pada gambar 2-7.
Pada proyek ini, diperlukan 1 buah LED dan 1 buah resistor (gunakan nilai
220 Ohm atau 330 Ohm). Ujung anoda LED dihubungkan resistor dan ujung
katoda LED dihubungkan dengan ground. Sementara ujung lain dari resistor
dihubungkan dengan pin D5 dari Arduino.
ISBN: xxxx
24 Belajar Embedded System: Pengenalan Arduino
Pada papan percobaan, kaki anoda LED ditempatkan pada 5-C dan kaki
katoda LED ditempatkan pada 4-B (atau 4-C juga bisa). Kemudian salah satu
kaki resistor ditempatkan pada 5-E dan kaki satu lagi ditempatkan pada 5-F
(atau pin manapun di antara 5-F, 5-G, 5-H, 5-I, atau 5-J).
Dari pin 4-A, hubungkan dengan jumper cable ke pin GND pada Arduino. Bisa
dicari pada kelompok pin Power. Dan pin 5-J hubungkan dengan jumper
cable ke D5 pada Arduino (kelompok pin digital).
Bila semua sudah selesai maka, perangkat keras kita sudah siap dan tinggal
memasukkan perintah-perintah ke Arduino melalui sebuah program.
Pada program lampu berkedip ini, tujuan kita membuat program adalah
membuat nilai pada pin digital 5 (D5) menjadi HIGH dan LOW secara
bergantian. Berikut adalah programnya:
void setup(){
pinMode(5, OUTPUT);
}
Void loop(){
digitalWrite(5, LOW);
delay(1000);
digitalWrite(5, HIGH);
delay(1000);
}
Kemudian kita harus lakukan pengiriman sinyal ke dalam pin D5 dengan data
LOW atau 0 atau terkoneksi ke GND dengan syntax digitalWrite(5, LOW).
Karena pin D5 bernilai 0 dan terhubung ke anoda LED melalui sebuah
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 25
Setelah mencapai akhir dari prosedur loop(), program akan kembali lagi
memproses syntax digitalWrite(5, LOW) yang artinya LED akan padam
kembali.
Demikian seterusnya.
ISBN: xxxx
26 Belajar Embedded System: Pengenalan Arduino
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 27
Setelah kita berhasil membuat sebuah LED menyala dan padam secara
bergantian, pada bab ini kita akan kembangkan disain elektronika dan
programnya dengan lebih dari satu LED.
Lampu flip flop adalah 2 buah lampu -dalam hal ini kita akan menggunakan
LED, yang akan menyala dan padam secara bergantian. Rangkaian LED flip
flop ini biasanya menggunakan rangkaian dasar resistor (R) dan kapasitor (C)
yang akan membuka dan menutup arus dari sebuah transistor. Lama periode
LED menyala dan mati akan ditentukan oleh kombinasi R dan C tersebut.
Namun pada buku ini, kita akan menggunakan rangkaian sederhana seperti
pada bab 2 dan mengubah pemrograman sehingga menghasilkan kondisi
yang sama seperti lampu flip flop.
Tidak ada hal yang baru di dalam skema rangkaian ini, hanya karena kita
memiliki 2 buah rangkaian lampu berkedip, maka kita perlu koneksikan
ISBN: xxxx
28 Belajar Embedded System: Pengenalan Arduino
Kalau kita pasang di dalam papan percobaan lebih kurang seperti pada
gambar 3-2 di bawah ini.
Kita pasti sudah bisa membayangkan, LED 1 dapat kita nyalakan dengan
memberi nilai HIGH pada D-5. Demikian juga LED 2 dapat kita nyalakan
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 29
dengan memberi nilai HIGH pada D-6. Jika ingin mematikan, maka kita bisa
memberi nilai LOW pada D-5 untuk LED 1 dan D-6 untuk LED 2.
Dengan memberi nilai HIGH dan LOW secara bergantian pada D-5 dan D-6,
maka kita bisa menciptakan sebuah efek LED 1 dan LED 2 menyala dan
padam secara bergantian pula. Berikut kode programnya:
int pin_1 = 5;
int pin_2 = 6;
int tunggu= 1000;
void setup(){
pinMode(pin_1, OUTPUT);
pinMode(pin_2, OUTPUT);
}
void loop(){
digitalWrite(pin_1, HIGH);
digitalWrite(pin_2, LOW);
delay(tunggu);
digitalWrite(pin_1, LOW);
digitalWrite(pin_2, HIGH);
delay(tunggu);
}
Kode program di atas juga tidak berbeda jauh dengan yang sudah kita
kerjakan dalam lampu berkedip di bab 1. Perbedaannya hanya kita
menggunakan variabel global untuk menentukan nomor pin digital yang
digunakan dan waktu tunggu atau delay. Penggunaan variabel global ini akan
menguntungkan bagi pemrogram untuk manajemen kode sumber program.
Kita tidak perlu mengganti satu per-satu nilai sebuah resource yang
dibutuhkan, cukup diganti pada inisialisasi maka seluruh resource akan
menggunakan nilai yang sama.
Misalkan kita memindah D-6 ke D-7, maka kita cukup mengubah nilai pin_2
menjadi 7 dan tidak perlu mengubah seluruh syntax digitalWrite() yang
berhubungan dengan D-7. Atau bila kita ingin mengubah delay() menjadi
100mS, maka kita cukup mengganti inisialisasi variabel tunggu, maka seluruh
delay() akan menggunakan waktu 100mS.
ISBN: xxxx
30 Belajar Embedded System: Pengenalan Arduino
Sekarang kita akan coba modifikasi skema rangkaian lampu flip flop ini
menjadi seperti gambar 3-3 dan rancangan rangkaian di papan percobaan
bisa dilihat di gambar 3-4. Konsep yang benar-benar berbeda dengan konsep
di atas.
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 31
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}
ISBN: xxxx
32 Belajar Embedded System: Pengenalan Arduino
integer lampu untuk menyimpan nilai HIGH. Nilai ini perlu disimpan dalam
sebuah variabel karena kita akan memainkan nilai ini dengan menyimpan
negasi atau NOT dari nilai yang lama dan menjadikannya sebagai nilai yang
baru (perhatikan baris terakhir) dengan operator “!” atau NOT atau negasi.
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
INGAT!!
Disain skema elektronik dan program adalah 2 sejoli yang selalu
berpasangan. Disain skema elektronik bisa berbeda untuk mendapatkan
hasil yang sama, namun akan diikuti dengan program yang berbeda pula.
INGAT!!
Tidak ada rumus baku bagaimana disain skema elektronik dan program
yang benar, selama disain skema elektronik dan program itu memberikan
hasil yang dibutuhkan.
ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 33
Pada bab ini kita akan membuat perbedaan sedikit dari kebiasaan bab-bab
sebelumnya. Bila sebelumnya untuk satu rancangan elektronik terdapat satu
program untuk menjalankannya, maka pada bab ini kita akan membuat satu
rancangan elektronik namun akan kita jalankan dengan beberapa logika
pemrograman yang berbeda.
Rancangan dan program yang akan kita buat dalam bab ini adalah tentang
lampu berjalan.
ISBN: 978-602-6557-41-4
34 Belajar Embedded System: Pengenalan Arduino
Tidak ada hal yang baru di dalam skema rangkaian ini, hanya karena kita
memiliki 2 buah rangkaian lampu berkedip, maka kita perlu koneksikan
anoda masing-masing LED melalui resistor ke pin yang berbeda di Arduino.
Dalam hal ini kita akan koneksikan ke D-5 dan D-6.
Kalau kita pasang di dalam papan percobaan lebih kurang seperti pada
gambar 3-2 di bawah ini.
Kita pasti sudah bisa membayangkan, LED 1 dapat kita nyalakan dengan
memberi nilai HIGH pada D-5. Demikian juga LED 2 dapat kita nyalakan
dengan memberi nilai HIGH pada D-6. Jika ingin mematikan, maka kita bisa
memberi nilai LOW pada D-5 untuk LED 1 dan D-6 untuk LED 2.
Dengan memberi nilai HIGH dan LOW secara bergantian pada D-5 dan D-6,
maka kita bisa menciptakan sebuah efek LED 1 dan LED 2 menyala dan
padam secara bergantian pula. Berikut kode programnya:
int pin_1 = 5;
int pin_2 = 6;
int tunggu= 1000;
void setup(){
pinMode(pin_1, OUTPUT);
pinMode(pin_2, OUTPUT);
}
void loop(){
digitalWrite(pin_1, HIGH);
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 35
digitalWrite(pin_2, LOW);
delay(tunggu);
digitalWrite(pin_1, LOW);
digitalWrite(pin_2, HIGH);
delay(tunggu);
}
Kode program di atas juga tidak berbeda jauh dengan yang sudah kita
kerjakan dalam lampu berkedip di bab 1. Perbedaannya hanya kita
menggunakan variabel global untuk menentukan nomor pin digital yang
digunakan dan waktu tunggu atau delay. Penggunaan variabel global ini akan
menguntungkan bagi pemrogram untuk manajemen kode sumber program.
Kita tidak perlu mengganti satu per-satu nilai sebuah resource yang
dibutuhkan, cukup diganti pada inisialisasi maka seluruh resource akan
menggunakan nilai yang sama.
Misalkan kita memindah D-6 ke D-7, maka kita cukup mengubah nilai pin_2
menjadi 7 dan tidak perlu mengubah seluruh syntax digitalWrite() yang
berhubungan dengan D-7. Atau bila kita ingin mengubah delay() menjadi
100mS, maka kita cukup mengganti inisialisasi variabel tunggu, maka seluruh
delay() akan menggunakan waktu 100mS.
4.2. Program #1
Sekarang kita akan coba modifikasi skema rangkaian lampu flip flop ini
menjadi seperti gambar 3-3 dan rancangan rangkaian di papan percobaan
bisa dilihat di gambar 3-4. Konsep yang benar-benar berbeda dengan konsep
di atas.
ISBN: 978-602-6557-41-4
36 Belajar Embedded System: Pengenalan Arduino
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 37
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
4.3. Program #2
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
ISBN: 978-602-6557-41-4
38 Belajar Embedded System: Pengenalan Arduino
delay(tunggu);
lampu = !lampu;
}
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 39
delay(tunggu);
lampu = !lampu;
}
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
4.4. Program #3
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
ISBN: 978-602-6557-41-4
40 Belajar Embedded System: Pengenalan Arduino
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 41
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
ISBN: 978-602-6557-41-4
42 Belajar Embedded System: Pengenalan Arduino
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 43
Bab 5. Penutup
Sebagai penutup serial pertama buku belajar embedded system, pada bab
ini dijelaskan kembali beberapa perintah yang sudah kita gunakan pada buku
Pengenalan Arduino. Dengan penjelasan singkat mengenai struktur, variabel
dan fungsi yang digunakan, diharapkan imajinasi akan tumbuh untuk
membuat hal-hal yang lain dalam koridor Arduino sebagai sebuah otak
dalam embedded system
5.1. Structure
Tidak ada hal yang baru di dalam skema rangkaian ini, hanya karena kita
memiliki 2 buah rangkaian lampu berkedip, maka kita perlu koneksikan
anoda masing-masing LED melalui resistor ke pin yang berbeda di Arduino.
Dalam hal ini kita akan koneksikan ke D-5 dan D-6.
Kalau kita pasang di dalam papan percobaan lebih kurang seperti pada
gambar 3-2 di bawah ini.
ISBN: 978-602-6557-41-4
44 Belajar Embedded System: Pengenalan Arduino
Kita pasti sudah bisa membayangkan, LED 1 dapat kita nyalakan dengan
memberi nilai HIGH pada D-5. Demikian juga LED 2 dapat kita nyalakan
dengan memberi nilai HIGH pada D-6. Jika ingin mematikan, maka kita bisa
memberi nilai LOW pada D-5 untuk LED 1 dan D-6 untuk LED 2.
Dengan memberi nilai HIGH dan LOW secara bergantian pada D-5 dan D-6,
maka kita bisa menciptakan sebuah efek LED 1 dan LED 2 menyala dan
Kode program di atas juga tidak berbeda jauh dengan yang sudah kita
kerjakan dalam lampu berkedip di bab 1. Perbedaannya hanya kita
menggunakan variabel global untuk menentukan nomor pin digital yang
digunakan dan waktu tunggu atau delay. Penggunaan variabel global ini akan
menguntungkan bagi pemrogram untuk manajemen kode sumber program.
Kita tidak perlu mengganti satu per-satu nilai sebuah resource yang
dibutuhkan, cukup diganti pada inisialisasi maka seluruh resource akan
menggunakan nilai yang sama.
Misalkan kita memindah D-6 ke D-7, maka kita cukup mengubah nilai pin_2
menjadi 7 dan tidak perlu mengubah seluruh syntax digitalWrite() yang
berhubungan dengan D-7. Atau bila kita ingin mengubah delay() menjadi
100mS, maka kita cukup mengganti inisialisasi variabel tunggu, maka seluruh
delay() akan menggunakan waktu 100mS.
Kita pasti sudah bisa membayangkan, LED 1 dapat kita nyalakan dengan
memberi nilai HIGH pada D-5. Demikian juga LED 2 dapat kita nyalakan
dengan memberi nilai HIGH pada D-6. Jika ingin mematikan, maka kita bisa
memberi nilai LOW pada D-5 untuk LED 1 dan D-6 untuk LED 2.
Dengan memberi nilai HIGH dan LOW secara bergantian pada D-5 dan D-6,
maka kita bisa menciptakan sebuah efek LED 1 dan LED 2 menyala dan
Kode program di atas juga tidak berbeda jauh dengan yang sudah kita
kerjakan dalam lampu berkedip di bab 1. Perbedaannya hanya kita
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 45
Misalkan kita memindah D-6 ke D-7, maka kita cukup mengubah nilai pin_2
menjadi 7 dan tidak perlu mengubah seluruh syntax digitalWrite() yang
berhubungan dengan D-7. Atau bila kita ingin mengubah delay() menjadi
100mS, maka kita cukup mengganti inisialisasi variabel tunggu, maka seluruh
delay() akan menggunakan waktu 100mS.
Kita pasti sudah bisa membayangkan, LED 1 dapat kita nyalakan dengan
memberi nilai HIGH pada D-5. Demikian juga LED 2 dapat kita nyalakan
dengan memberi nilai HIGH pada D-6. Jika ingin mematikan, maka kita bisa
memberi nilai LOW pada D-5 untuk LED 1 dan D-6 untuk LED 2.
Dengan memberi nilai HIGH dan LOW secara bergantian pada D-5 dan D-6,
maka kita bisa menciptakan sebuah efek LED 1 dan LED 2 menyala dan
Kode program di atas juga tidak berbeda jauh dengan yang sudah kita
kerjakan dalam lampu berkedip di bab 1. Perbedaannya hanya kita
menggunakan variabel global untuk menentukan nomor pin digital yang
digunakan dan waktu tunggu atau delay. Penggunaan variabel global ini akan
menguntungkan bagi pemrogram untuk manajemen kode sumber program.
Kita tidak perlu mengganti satu per-satu nilai sebuah resource yang
dibutuhkan, cukup diganti pada inisialisasi maka seluruh resource akan
menggunakan nilai yang sama.
Misalkan kita memindah D-6 ke D-7, maka kita cukup mengubah nilai pin_2
menjadi 7 dan tidak perlu mengubah seluruh syntax digitalWrite() yang
ISBN: 978-602-6557-41-4
46 Belajar Embedded System: Pengenalan Arduino
berhubungan dengan D-7. Atau bila kita ingin mengubah delay() menjadi
100mS, maka kita cukup mengganti inisialisasi variabel tunggu, maka seluruh
delay() akan menggunakan waktu 100mS.
5.2. Variable
Sekarang kita akan coba modifikasi skema rangkaian lampu flip flop ini
menjadi seperti gambar 3-3 dan rancangan rangkaian di papan percobaan
bisa dilihat di gambar 3-4. Konsep yang benar-benar berbeda dengan konsep
di atas.
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
int tunggu= 1000;
int lampu = HIGH;
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 47
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
ISBN: 978-602-6557-41-4
48 Belajar Embedded System: Pengenalan Arduino
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
5.3. Function
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
int pin_1 = 5;
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 49
void setup(){
pinMode(pin_1, OUTPUT);
}
void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}
Perubahan ini akan mengakibatkan nilai variabel lampu akan berganti HIGH
atau LOW saat mencapai akhir dari program dan mengulangi program dalam
prosedur loop().
Pada konsep yang baru ini kita memanfaatkan nilai HIGH dan LOW secara
bersamaan pada LED yang berbeda. Perhatikan skema gambar 3-2. Pada saat
D-5 dalam kondisi HIGH, maka LED 1 akan menyala karena anoda terkoneksi
dengan tegangan 5 volt sementara katoda terkineksi dengan GND.
Sementara itu LED 2 akan padam, karena anoda pada LED 2 terkoneksi ke
VCC atau 5 volt dan katoda juga terkoneksi ke 5 volt.
Sementara itu, saat D-5 dalam kondisi LOW maka LED 1 akan padam karena
anoda dan katoda LED 1 terkoneksi pada GND. Sementara itu LED 2 akan
menyala karena anoda LED 2 terkoneksi ke 5 volt dan katoda terkoneksi ke
GND.
ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 51
Daftar Pustaka
ISBN: 978-602-6557-41-4