Anda di halaman 1dari 59

SERI BELAJAR EMBEDDED SYSTEM

PENGENALAN ARDUINO

Disusun oleh:
Tim FIK Universitas Narotama

Diterbitkan oleh:

NAROTAM A University Press


NAROTAMA University Press

Seri Bel a ja r Embedded Sys tem: Pengena l a n Ardui no


di s usun oleh Tim FIK Universitas Narotama . Editor: M. Noor
Al Azam, M. Mizanul A., 50 ha l . (vi i)

Hak cipta © 2018 oleh Tim FIK Universitas Narotama

Penyusun : Tim FIK Universitas Narotama


Anggota : - Moh Noor Al Azam, S.Kom., M.MT.
- M. Mizanul Achlaq, S.T., MT.
- Cahyo Darujati, S.T., MT.
- Aryo Nugroho, S.Kom., MT.
Editor : M. Noor Al Azam, M. Mizanul A.
Ukuran buku : B5 (17,6 cm x 25 cm)
Disain halaman depan : FIK Narotama
Cetakan pertama : Oktober 2018
ISBN :-

didukung oleh:

Ciptaan ini dilisensikan di bawah lisensi Creative Commons Atribusi -


BerbagiSerupa 4.0 Internasional. Untuk melihat salinan lisensi ini, kunjungi
http://creativecommons.org/licenses/by-sa/4.0/ atau kirim surat ke Creative
Commons, PO Box 1866, Mountain View, CA 94042, USA.

© HAK CIPTA DILINDUNGI UNDANG-UNDANG


Diterbitkan oleh Narotama University Press
Jl. Arief Rachman Hakim No.51 Surabaya 60117
Telp: 031-5946404, 5995578 Fax: 031-5931213
Website: www.narotama.ac.id
Email: narotamapress@narotama.ac.id

II
Kata Pengantar

Perkembangan Teknologi Informasi dan Komunikasi (TIK) telah


memunculkan beberapa solusi yang dapat membantu manusia untuk
mendapatkan kualitas hidup yang lebih baik. Teknologi -teknologi baru
berbasiskan TIK terus bermunculan dengan ukuran yang lebih kecil, namun
memiliki kemampuan yang lebih besar.

Internet of Things atau IoT adalah salah satu iiiystemiiieiiigy yang


menandai keadaan di atas. Semua peralatan elektronik sudah mulai
terkoneksi satu dengan yang lainnya melalui bermacam-macam media
komunikasi. Mereka saling bertukar data dan perintah, dan yang akhirnya
akan bermuara pada sebuah server sebagai database yang dapat
dimanfaatkan suatu saat kelak.

Dalam seri buku ini dijelaskan bagaimana belajar membuat sebuah


iiiystem tertanam atau embedded system yang dapat ditanam dalam sebuah
peralatan atau iiiystem yang lebih besar untuk mendapatkan data melalui
sensor atau melakukan sesuatu sebagai actuator dan pada saat yang sama
berkomunikasi antara satu iiiystem dengan iiiystem yang lain.

Buku ini akan menjelaskan konsep awal bagaimana kita menggunakan


micro-controller yang sudah dikemas dalam papan Arduino Uno untuk
berbagai keperluan. Menjelaskan tahap demi tahap, bagaimana mendisain
Arduino Uno dan memprogramnya untuk dapat memberikan keluaran
digital.

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.

Semoga dengan adanya buku ini dapat mempermudah siswa-siswa


untuk belajar membuat ivystem tertanam secara mandiri. Meskipun bagi
siswa-siswa yang tidak memiliki latar belakang ilmu elektronik, namun tetap
dapat memahami disain perangkat keras. Juga bagi siswa-siswa yang tidak
berlatar belakang programming, namun tetap dapat melakukan
pemrograman di Arduino. Selamat belajar.

Penyusun

IV
Daftar Isi

KATA PENGANTAR ......................................................................... iii


DAFTAR ISI ...................................................................................... v
DAFTAR GAMBAR ........................................................................... vii
1. Menggunakan Arduino 1
1.1. Microcontroller vs Microprocessor ..................................... 1
1.2. Perangkat Yang Dibutuhkan .............................................. 2
1.3. Jenis-jenis Arduino dan kompatibelnya ............................. 5
1.4. Instalasi Perangkat Lunak .................................................. 6
1.5. Integrated Development Environment (IDE) ..................... 8
1.6. Memprogram Arduino ....................................................... 9
1.7. Program Pertama: “Selamat Datang Arduino” .................. 11
2. On/Off dan High/Low 15
2.1. Digital vs Analog ................................................................ 15
2.2. Pin Arduino Uno ................................................................. 17
2.3. Light Emitting Dioda (LED) & resistor ................................ 19
2.4. Sedikit tentang Papan Percobaan ...................................... 21
2.5. Rangkaian Lampu Berkedip ............................................... 23
2.6. Program Kedua: “Lampu Berkedip” .................................... 24
3. Lampu Flip Flop 27
3.1. Flip Flop .............................................................................. 27
3.2. Rancangan Elektronik dan Program #1 ............................. 27
3.3. Rancangan Elektronik dan Program #2 ............................. 30
4. Lampu Berjalan 33
4.1. Rancangan Elektronik ........................................................ 33
4.2. Program #1 ......................................................................... 35
4.3. Program #2 ......................................................................... 37
4.4. Program #3 ......................................................................... 39
V
5. Penutup 43
5.1. Structure ............................................................................. 43
5.2. Variable ............................................................................... 46
5.3. Function ............................................................................. 48
DAFTAR PUSTAKA .......................................................................... ?

VI
Daftar Gambar

Gambar 1-1: Arduino Uno R3 .............................................................. 3


Gambar 1-2: Papan percobaan (bread board)...................................... 4
Gambar 1-3: Multitester atau AVO Meter ........................................... 4
Gambar 1-4: Komponen yang akan diinstalasi..................................... 7
Gambar 1-5: Pilihan penempatan file instalasi ................................... 7
Gambar 1-6: Proses instalasi .............................................................. 8
Gambar 1-7: Arduino IDE ................................................................... 8
Gambar 2-1: Sinyal Digital ................................................................. 15
Gambar 2-2: Sinyal Analog ................................................................. 16
Gambar 2-3: Arduino Uno dan Pin-pinnya........................................... 17
Gambar 2-4: LED lambang (A); bagian-bagian (B); real (C) ................... 20
Gambar 2-5: Resistor (R) dalam lambang dan bentuk real ................... 21
Gambar 2-6: Pengkabelan Papan Percobaan ....................................... 22
Gambar 2-7: Skema LED Berkedip ....................................................... 23
Gambar 2-8: Layout Pemasangan di Papan Percobaan......................... 23
Gambar 3-1: Skema Elektronik Lampu Flip-Flop #1.............................. 28
Gambar 3-2: Rangkaian Lampu Flip Flop #1 di Papan Percobaan .......... 28
Gambar 3-3: Skema Elektronik Lampu Flip Flop #2 .............................. 30
Gambar 3-4: Rangkaian Elektronik Lampu Flip Flop #2......................... 31
Gambar 4-1: Skema Elektronik Lampu Berjalan .................................. 32
Gambar 4-2: Rangkaian Lampu Flip Flop #1 di Papan Percobaan .......... 33

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

Bab 1. Menggunakan Arduino

Selamat, anda sudah tertarik dengan Arduino -sebuah platform elektronika


sumber terbuka, yang menggunakan perangkat keras dan perangkat lunak
yang mudah digunakan. Dengan menggunakan Arduino, anda bisa membuat
hal yang sederhana -misalkan menyalakan dan mematikan lampu, sampai
dengan hal yang sangat canggih -misalkan mengukur berapa derajat suhu di
bulan yang menghadap ke bumi.

Sebelum kita memulai melakukan ‘hacking’ Arduino, ada baiknya kita paham
dulu apa perbedaan mikro-kontroler dan mikro-prosesor.

1.1. Microcontroller vs Microprocessor

Mikro-kontroler (microcontroller atau sering disingkat dengan MCU) adalah


sebuah komputer kecil pada satu sirkuit terpadu. Dalam terminologi saat ini
MCU mirip dengan sebuah sistem pada sebuah chip (System on Chip atau
SoC). Sebuah mikro-kontroler berisi satu atau lebih pusat pengolah (Central
Processing Unit ata CPU) beserta unit memori -biasanya dalam jumlah kecil,
dan perangkat input/output digital maupun analog yang dapat diprogram.

Mikro-kontroler dirancang sebagai inti dari aplikasi embedded dan berbeda


dengan mikro-prosesor yang biasanya dirancang sebagai inti dari komputer
umum (General Computer).

Hal lain yang membedakan antara mikro-kontroler dan mikro-prosesor


adalah, biasanya di dalam mikro-kontroler sudah dilengkapi dengan Analog-

ISBN: xxxx
2 Belajar Embedded System: Pengenalan Arduino

to-Digital Converter (ADC) dan Digital-to-Analog Converter (DAC) meski


dengan kemampuan terbatas.

Berbeda dengan MCU, mikro-prosesor (microprocessor atau µP)

Sementara itu di dalam mikro-prosesor tidak dilengkapi dengan kemampuan


tersebut.

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.

Dengan kemampuan yang spesifik seperti di atas, maka mikro-kontroler


dapat dengan mudah kita temui dalam perangkat-perangkat tertanam
(embedded device) yang melakukan suatu tugas yang spesifik.

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.

1.2. Perangkat Yang Dibutuhkan

Sebelum memulai mempelajari membuat perangkat embedded system, kita


harus menyiapkan beberapa perangkat keras dan perangkat lunak yang akan
diperlukan dalam buku ini.

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

Kedua, kita juga memerlukan perangkat lunak Arduino IDE. Penjelasan


tentang perangkat lunak ini bisa dibaca pada sub-bab 1.4 dan 1.5 di bawah
ini.

Selanjutnya kita juga akan memerlukan sebuah papan percobaan atau proto
board atau beberapa orang juga menyebutnya sebagai bread board (gambar
1.2).

Gambar 1- 1: Arduino Uno R3

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

Gambar 1- 2: Papan percobaan (bread board)

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.

Gambar 1- 3: Multitester atau AVO Meter

ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 5

1.3. Jenis-jenis Arduino dan kompatibelnya

Di dalam situsnya, Arduino membagi produk board dalam 4 segmen: entry


level, enhanced feature, Internet of Things, dan wearable. Pembagian ini
bukanlah pembagian yang “kaku”, karena pada dasarnya semua board
adalah sama dan pasti bisa dipakai untuk semua bidang. Perbedaan yang ada
pada masing-masing segmen tersebut hanyalah tentang kemampuan board
tersebut dalam untuk fitur tertentu.

Misalkan dalam segment Internet of Things, board Arduino sudah dilengkapi


dengan fitur komunikasi (WiFi, Ethernet atau GSM) atau memiliki jumlah
port digital atau port analog yang lebih banyak atau memiliki lebar bit
ADC/DAC yang lebih lebar.

Tabel 1- 1: Jenis-jenis Arduino

POSITIONING BOARDS MODULES SHIELDS


ENTRY LEVEL UNO, LEONARDO, 101, MIKRO, NANO, MINI MKR2UNO
ESPLORA
ENHANCED MEGA, ZERO, DUE, MKR ZERO MOTOR SHIELD, USB
FEATURED MEGA ADK, MO, MO- HOST SHIELD, PROTO
PRO SHIELD, MKR PROTO
SHIELD, 4 RELAYS
SHIELD, MEGA PROTO
SHIELD
INTERNET YUN, ETHERNET, TIAN, MKR 1000, YUN SHIELD,
OF THINGS INDUSTRIAL 101, YUN MINI WIRELESS SD SHIELD,
LEONARDO ETH,MKR WIRELESS PROTO
FOX 120, MKR WAN SHIELD, ETHERNET
1300, MKR GSM 1400, SHIELD v-2, GSM
MKR WIFI 1010, UNO SHIELD v-2, MKR ETH
WIFI rev.2, MKR NB SHIELD
1500, MKR VIDOR
4000
WEARABLE GEMMA, LILYPAD, - -

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.

1.4. Instalasi Perangkat Lunak

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.

Pemrograman board ini bisa menggunakan banyak cara. Arduino sendiri


menawarkan 2 cara, yaitu menggunakan daring melalui Arduino Web Editor
dan cara luring menggunakan aplikasi Arduino Software (IDE). Pada buku ini,
kita hanya akan membahas pemrograman menggunakan cara luring.

Instalasi aplikasi Arduino IDE dapat dilakukan dengan tahapan sebagai


berikut:

1. Unduh perangkat lunak Arduino IDE melalui situs resmi Arduino


(https://www.arduino.cc/en/Main/Software). Pilih dan unduh
Arduino IDE yang sesuai dengan sistem operasi komputer yang anda
gunakan.
2. Setelah pengunduhan selesai, jalankan aplikasi dan ijinkan instalasi
driver (jika diminta oleh sistem operasi).
3. Pilih komponen yang akan diinstall. Petunjuk: jika anda baru dalam
hal ini, pilih semua komponen (gambar 1.4).

ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 7

Gambar 1- 4: Komponen yang akan diinstalasi

4. Pilih lokasi tempat penyimpanan. Petunjuk: kecuali anda paham,


sebaiknya lokasi instalasi tidak perlu diganti (gambar 1.5).

Gambar 1- 5: Pilihan penempatan file instalasi

ISBN: xxxx
8 Belajar Embedded System: Pengenalan Arduino

5. Proses akan melakukan instalasi Arduino IDE sesuai dengan pilihan


anda di atas (gambar 1.6).

Gambar 1- 6: Proses instalasi

1.5. Integrated Development Environment (IDE)

Menu

Verify/Compile

Upload

New Sketch

Open Sketch

Save Sketch

Serial Monitor

Sketch Editor

Arduino Type & port

Console Gambar 1- 7: Arduino IDE

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:

• Verifikasi/Compile, digunakan untuk melakukan pengecekan


(utamanya dalam hal syntax) pada program yang kita buat.
• Upload, digunakan untuk mengirimkan Sketch ke Arduino, dan akan
langsung dijalankan.
• New Sketch, untuk membuka tab Sketch baru.
• Open Sketch, untuk membuka file Sketch yang sudah tersimpan
sebelumnya.
• Save Sketch, untuk menyimpan Sketch.
• Arduino Type & port, adalah informasi jenis Arduino yang terkoneksi
dengan komputer kita dan terkoneksi pada port yang mana.
• Console, digunakan untuk komunikasi antara Arduino IDE dan
pemrogram -di antaranya menampilkan error messages.
• Line number, adalah informasi cursor kita ada pada nomor baris
berapa pada Sketch yang aktif di layar.

1.6. Memprogram Arduino

Jika anda sudah memiliki Arduino board, sudah mengunduh dan


menginstalasi Arduino IDE di komputer, maka anda sudah siap untuk
membuat program Arduino untuk pertama kali.

ISBN: xxxx
10 Belajar Embedded System: Pengenalan Arduino

Langkah pertama, koneksikan komputer anda dengan Arduino melalui kabel


USB yang tersedia (biasanya sudah disertakan saat membeli Arduino),
kemudian jalankan Arduino IDE yang sudah diinstal sebelumnya.

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.

Sementara itu, local variable -variabel yang didefinisikan di dalam sebuah


fungsi, hanya dapat diakses dari fungsi tersebut saja. Fungsi yang lain tidak
akan dapat mengakses local variable tersebut.

1.7. Program Pertama: “Selamat Datang Arduino”

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);
}

Program di atas diawali dengan deklarasi 2 global variable: angka bertipe


integer dan kalimat bertime array character atau kita biasa sebut sebagai
string.

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\””.

Gambar 1- 8: Tampilan Serial Monitor

Langkah berikutnya program masuk pada fungsi setup(), yaitu membuka


komunikasi serial dengan komputer menggunakan kecepatan 9.600 bps,
kemudian memberi inisial nilai 0 (nol) pada variabel angka.

ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 13

Setelah selesai fungsi setup(), program akan memulai menjalankan fungsi


loop() yang isinya adalah perintah untuk mencetak isi variabel angka pada
serial, menambahkan karakter tab dan mencetak isi variabel kalimat serta
mengakhirinya dengan baris baru.

Langka selanjutnya program akan menambahkan nilai angka dengan 1 dan


diakhiri dengan berhenti selama 1 detik (1.000 mS) sebelum mengulangi lagi
fungsi loop() dari awal. Gambar 1-8 adalah tampilan pada serial monitor
penulis untuk program di atas.

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

Bab 2. On/Off dan High/Low

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).

2.1. Digital vs Analog

Sebagai perangkat elektronik, data digital hanya mengenal 2 kondisi keadaan


yaitu ada aliran listrik atau tidak ada aliran listrik, atau bisa juga kita
mengatakan kondisi on dan kondisi off. Dalam terminologi digital, kita
menyebutnya sebagai kondisi High dan kondisi Low.

Jika kita melihat sinyal digital, kondisi sinyal bisa digambarkan seperti pada
gambar 2-1.

Gambar 2- 1: Sinyal Digital

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.

Gambar 2- 2: Sinyal Analog

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

Saat melakukan proses dengan sinyal analog, Arduino dilengkapi dengan


ADC (Analog to Digital Converter), suatu fungsi yang dapat menerjemahkan
nilai sebuah sinyal voltase analog menjadi nilai digital.

2.2. Pin Arduino Uno

Sebenarnya, Arduino Uno memiliki pins yang sangat kompleks. Masing-


masing pin bisa digunakan untuk fungsi yang berbeda pada pemrograman
yang berbeda. Untuk mendapatkan informasi peta pins yang lengkap, dapat
dilihat pada situs Arduino di https://arduino.cc atau pada forum pengguna
Arduino di https://forum.arduino.cc.

DIGITAL PINS

POWER PINS ANALOG PINS

Gambar 2- 3: Arduino Uno dan Pin-pinnya

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.

Seperti sudah dijelaskan pada bab pertama, salah satu pembeda


mikrokontroler dari mikroprosesor adalah adanya Analog-to-Digital
Converter (ADC). Port-port ADC yang dimiliki oleh mikrokontroler Arduino
terhubung dengan pin-pin analog ini.

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

2.3. Light Emitting Dioda (LED) & resistor

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

Gambar 2- 4: LED lambang (A); bagian-bagian (B); real (C)

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

Gambar 2- 5: Resistor (R) dalam lambang dan bentuk real

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.

2.4. Sedikit tentang Papan Percobaan

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

Gambar 2- 6: Pengkabelan Papan Percobaan

Dalam gambar 2-6 digambarkan pengkabelan yang ada di dalam sebuah


papan percobaan. Pengkabelan ini dibagi menjadi 2 kelompok besar, yaitu
secara vertikal dan secara horizontal.

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.

Kita akan banyak memakai pin-pin tersebut untuk menghubungkan dengan


Vcc dan GND untuk.

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.

Pada bagian ini, kita akan menempatkan komponen-komponen yang akan


kita koneksikan dengan Arduino Uno dan memberi perintah pada Arduino
Uno melalu program untuk melakukan sesuatu pada komponen tersebut.

ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 23

2.5. Rangkaian Lampu Berkedip

Proyek kita yang pertama adalah membuat sebuah LED berkedip. Perhatikan
skema elektronik pada gambar 2-7.

Gambar 2- 7: Skema LED Berkedip

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.

Untuk membuatnya di papan percobaan, perhatikan gambar 2-8 di bawah


ini.

Gambar 2- 8: Layout Pemasangan di Papan Percobaan

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.

2.6. Program Kedua: “Lampu Berkedip”

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);
}

Pertama kali yang harus dilakukan adalah mendefinisikan bahwa pin 5


(digital 5) akan digunakan sebagai OUTPUT atau keluaran. Perintah ini
menggunakan syntax pinMode() pada prosedur setup() -karena definisi ini
cukup dilakukan satu kali.

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

resistor, sementara katoda LED juga benilai 0 karena terhubung ke GND,


maka LED akan dalam posisi mati.

Syntax berikutnya adalah membuat sebuah perlambatan dengan syntax


delay. Perintah ini kita perlukan agar kita melihat perubahan yang terjadi,
karena kecepatan proses dalam Arduino sangat cepat bagi mata kita. Nilai
1000 dalam syntax delay artinya kita memberi jeda waktu 1000 mS atau 1 S
sebelum Arduino melanjutkan prosesnya.

Setelah perlambatan 1 detik selesai, nilai D5 diubah menjadi HIGH dengan


perintah digitalWrite(5, HIGH). Pada posisi ini, D5 akan bernilai 1 atau
memiliki tegangan 5 volt. Hal ini mengakibatkan anoda pada LED memiliki
voltase 5 volt dan katoda LED terhubung ke GND. Akibatnya LED akan
menyala.

Syntax berikutnya adalah membuat perlambatan kembali dengan


delay(1000), agar LED yang menyala bisa terlihat oleh mata manusia.

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

Bab 3. Lampu Flip Flop

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.

3.1. Flip Flop

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.

3.2. Rancangan Elektronik dan Program #1

Perhatikan skema rangkaian gambar 3-2. Skema rangkaian tersebut


sebenarnya sama seperti skema rangkaian lampu berkedip yang kita
gunakan pada bab 1. Tapi kita membuatnya menjadi 2 rangkaian terpisah
dan menyatukan katoda LED bertemu dan terkoneksi ke GND (0).

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

anoda masing-masing LED melalui resistor ke pin yang berbeda di Arduino.


Dalam hal ini kita akan koneksikan ke D-5 dan D-6.

Gambar 3- 1: Skema Elektronik Lampu Flip-Flop #1

Kalau kita pasang di dalam papan percobaan lebih kurang seperti pada
gambar 3-2 di bawah ini.

Gambar 3- 2: Rangkaian Lampu Flip Flop #1 di Papan Percobaan

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

3.3. Skema Elektronik dan Program #2

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.

Gambar 3- 3: Skema Elektronik Lampu Flip Flop #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.

ISBN: xxxxx
Belajar Embedded System: Pengenalan Arduino 31

Gambar 3- 4: Rangkaian Elektronik Lampu Flip Flop #2 di Papan Percobaan

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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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;
}

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel

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

Bab 4. Lampu Berjalan

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.

4.1. Rancangan Elektronik

Perhatikan skema rangkaian gambar 3-2. Skema rangkaian tersebut


sebenarnya sama seperti skema rangkaian lampu berkedip yang kita
gunakan pada bab 1. Tapi kita membuatnya menjadi 2 rangkaian terpisah
dan menyatukan katoda LED bertemu dan terkoneksi ke GND (0).

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.

Gambar 3- 1: Skema Elektronik Lampu Flip-Flop #1

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

Gambar 3- 2: Skema Elektronik Lampu Flip Flop #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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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;
}

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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;
}

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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;
}

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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;
}

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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

Selesai membaca buku ini, anda diharapkan sudah mengenali bagaimana


menggunakan sebuah Arduino untuk menghasilkan beberapa macam output
LED.

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

Perhatikan skema rangkaian kkema rangkaian tersebut sebenarnya sama


seperti skema rangkaian lampu berkedip yang kita gunakan pada bab 1. Tapi
kita membuatnya menjadi 2 rangkaian terpisah dan menyatukan katoda LED
bertemu dan terkoneksi ke GND (0).

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

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
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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

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

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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.

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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.

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.

Programnya juga disederhanakan, menjadi seperti di bawah ini:

int pin_1 = 5;

ISBN: 978-602-6557-41-4
Belajar Embedded System: Pengenalan Arduino 49

int tunggu= 1000;


int lampu = HIGH;

void setup(){
pinMode(pin_1, OUTPUT);
}

void loop(){
digitalWrite(pin_1, lampu);
delay(tunggu);
lampu = !lampu;
}

Program di atas adalah program sederhana yang sudah kita kenal


sebelumnya. Yang berbeda hanyalah kita menggunakan sebuah variabel
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().

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

Arduino, 2018, Arduino Uno Board, https://www.arduino.cc/en/Main/


ArduinoBoardUno, diakses 11 Februari 2018
Artanto D. 2012. Interaksi Arduino dan Lab View. Jakarta (ID): PT
Elex Media Komputindo.
Ginting NB. 2002. Penggerak antena modem USB tiga dimensi
berbasis mikrokomputer menggunakan Arduino UNO. J Fisika.
2(1): 17-18.
Ichwan M, Husada MG, Rasyid MI. 2013. Pembangunan prototipe
sistem pengendalian peralatan listrik pada platform android. J
Informatika. 4(1): 13-25.
Suarga. 2012. Algoritma dan Pemrograman. Yoyakarta (ID): Andi
Offset.
Syafriyudin, Purwanto DP. 2009. Oven pengering kerupuk berbasis
mikrokontroler ATmega 8535 menggunakan pemanas pada
industri rumah tangga. J Teknol. 2(1): 70-79.
Wardhana L. 2006. Belajar Sendiri Mikrokontroler AVR Seri
ATmega32. Yogyakarta (ID): Andi Offset.

ISBN: 978-602-6557-41-4

Anda mungkin juga menyukai