Academia.eduAcademia.edu

Seri Belajar Embedded System: PENGENALAN ARDUINO

2018, Narotama University Press

IoT atau Internet of Things adalah sebuah periode yang pada saat itu perangkat dengan sistem tertanam (embedded system) dapat kita temui dengan mudah dimana pun kita berada. Perangkat tertanam itu mengambil data-data -melalui sensor-sensor yang ditanamkan padanya, atau melakukan suatu tindakan-tindakan -melalui actuator, atas data-data yang diterimanya. Cara belajar membuat sebuah sistem tertanam IoT seperti di atas, dapat dengan mudah dilakukan dengan bantuan papan Arduino. Arduino adalah sebuah papan elektronik open-source yang berbasis pada perangkat lunak. Pertama kali lahir di Ivrea Interaction Design Institute sebagai sebuah alat yang mudah untuk pembuatan purwarupa dengan cepat, dan ditujukan untuk siswa dengan tanpa latar belakang bidang elektronik dan pemrograman. Semua papan Arduino benar-benar open source, dengan memberdayakan pengguna untuk membangunnya secara mandiri dan menyesuaikannya untuk kebutuhan khusus mereka. Perangkat lunak yang digunakan juga merupakan kode sumber terbuka, dan berkembang melalui kontribusi pengguna di seluruh dunia. Seri buku ini mempelajari penggunaan sebuah papan Arduino, dimulai dari buku pengenalan Arduino dengan menyalakan dan memadamkan LED, dan membuat sebuah pola penyalaan dan pemadaman LED. Buku ini sesuai untuk yang baru belajar sistem tertanam dan pemrograman. Pada seri berikutnya akan dilanjutkan dengan pembacaan sensor-sensor dan menggerakkan actuator -seperti menggerakkan motor, serta komunikasi M2M atau machine-to-machine.

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 Anggota Editor Ukuran buku Disain halaman depan Cetakan pertama ISBN : Tim FIK Universitas Narotama : - Moh Noor Al Azam, S.Kom., M.MT. - M. Mizanul Achlaq, S.T., MT. - Cahyo Darujati, S.T., MT. - Aryo Nugroho, S.Kom., MT. : M. Noor Al Azam, M. Mizanul A. : B5 (17,6 cm x 25 cm) : FIK Narotama : Oktober 2018 :- 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. Microcontroller vs Microprocessor ..................................... 1.2. Perangkat Yang Dibutuhkan .............................................. 1.3. Jenis-jenis Arduino dan kompatibelnya ............................. 1.4. Instalasi Perangkat Lunak .................................................. 1.5. Integrated Development Environment (IDE) ..................... 1.6. Memprogram Arduino ....................................................... 1.7. Program Pertama: “Selamat Datang Arduino” .................. 1 1 2 5 6 8 9 11 2. On/Off dan High/Low 2.1. Digital vs Analog ................................................................ 2.2. Pin Arduino Uno ................................................................. 2.3. Light Emitting Dioda (LED) & resistor ................................ 2.4. Sedikit tentang Papan Percobaan ...................................... 2.5. Rangkaian Lampu Berkedip ............................................... 2.6. Program Kedua: “Lampu Berkedip” .................................... 15 15 17 19 21 23 24 3. Lampu Flip Flop 3.1. Flip Flop .............................................................................. 3.2. Rancangan Elektronik dan Program #1 ............................. 3.3. Rancangan Elektronik dan Program #2 ............................. 27 27 27 30 4. Lampu Berjalan 4.1. Rancangan Elektronik ........................................................ 4.2. Program #1 ......................................................................... 4.3. Program #2 ......................................................................... 4.4. Program #3 ......................................................................... 33 33 35 37 39 V 5. Penutup 5.1. Structure ............................................................................. 5.2. Variable ............................................................................... 5.3. Function ............................................................................. 43 43 46 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 ENTRY LEVEL ENHANCED FEATURED INTERNET OF THINGS WEARABLE ISBN: xxxx BOARDS UNO, LEONARDO, 101, ESPLORA MEGA, ZERO, DUE, MEGA ADK, MO, MOPRO MODULES MIKRO, NANO, MINI SHIELDS MKR2UNO MKR ZERO YUN, ETHERNET, TIAN, INDUSTRIAL 101, LEONARDO ETH,MKR FOX 120, MKR WAN 1300, MKR GSM 1400, MKR WIFI 1010, UNO WIFI rev.2, MKR NB 1500, MKR VIDOR 4000 GEMMA, LILYPAD, MKR 1000, YUN MINI MOTOR SHIELD, USB HOST SHIELD, PROTO SHIELD, MKR PROTO SHIELD, 4 RELAYS SHIELD, MEGA PROTO SHIELD YUN SHIELD, WIRELESS SD SHIELD, WIRELESS PROTO SHIELD, ETHERNET SHIELD v-2, GSM SHIELD v-2, MKR ETH SHIELD - - 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 masingmasing 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 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 7 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 Gambar 1- 7: Arduino IDE 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/EmbeddedSystem-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. Masingmasing 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, digitalWrite(pin_2, delay(tunggu); digitalWrite(pin_1, digitalWrite(pin_2, delay(tunggu); } HIGH); LOW); LOW); HIGH); 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