Fundamental Arduino Microcontroller Kit
Catatan Pembuka
Buku ini diperuntukan bagi para pemula yang ingin mempelajari mengenai pengembangan
menggunakan Arduino Microcontroller Kit. Sekaligus buku ini digunakan sebagai bahan
acuan untuk melakukan pengajaran baik pada materi online maupun offline yang
diselenggarakan oleh PascalRobotik. Materi yang dibuka adalah materi gratis, itu artinya
siapapun dapat menggunakan materi ini baik untuk pengajaran maupun untuk pribadi.
Buku ini dilisensikan di atas lisensi Creative Commons Attribution NonCommercial
ShareAlike 4.0 International License dimana Anda diizinkan untuk membuat karya turunan,
namun karya tersebut harus dilisensikan dengan lisensi yang compatible dan Anda tidak
diizinkan untuk menggunakan karya ini untuk kegiatan komersil. Jika Anda ingin
menggunakan buku ini sebagai kegiatan belajar mengajar, maka tim penulis sedang
mempersiapkan slide yang dapat digunakan untuk kegiatan tersebut dengan link yang akan
dibagikan pada buku ini. Untuk sementara berikut Slide yang telah dibuat:
Bagi yang ingin mendapatkan buku ini diharapkan tidak mengunduhnya dalam bentuk
format dokumen selain dokumen Google Docs. Hal ini dikarenakan setiap harinya dokumen
ini akan selalu diperbarui, sehingga untuk menjaga agar para pembaca dapat terus
memperoleh pembaruan tersebut maka penulis tidak mengizinkan dokumen ini diunduh ke
dalam format lain. Adapun jika Anda memiliki kebutuhan khusus mengenai penggunaan
buku ini yang terpaksa harus digunakan secara offline untuk suatu kegiatan, maka silahkan
hubungi penulis untuk mendapatkan izin penggunaan.
Salam,
1
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Buku ini dibuat untuk para pemula dan generasi muda, terutama yang menurut sudut
pandang penulis banyak yang masih bingung mengenai alur ilmu apa yang seharusnya
mereka pelajari sehingga sesuai dengan passion mereka. Akhirnya karena kurangnya
masukan tersebut menjadikan para generasi muda Indonesia terjun dengan mempelajari hal
yang kurang positif seperti hal nya kegiatan cyber crime yang dibenarkan menurut pendapat
pribadi dan kelompoknya.
Dengan hadirnya buku ini dan kelas gratis yang dibuka, penulis berharap para generasi muda
dapat terus termotivasi untuk membuat karya-karya positif yang luar biasa.
Buku ini juga ditujukan bagi para pelajar sebagai media referensi untuk memulai membuat
mesin-mesin otomatisasi, IoT (Internet of Things), dan bidang lainnya yang memanfaatkan
teknologi.
2
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Setelah dokumen ini dibagikan, maka Anda dapat menyimpan nya secara offline namun
tetap harus menggunakan Google Docs untuk membukanya sehingga saat komputer Anda
terhubung ke internet maka akan secara otomatis dokumen pada komputer Anda diperbarui
ke versi yang terbaru.
Untuk membuat dokumen ini tersedia secara offline maka Anda perlu menggunakan aplikasi
Google Docs di Android maupun iOS. Bagi Anda yang menggunakan Laptop / PC,
diwajibkan menggunakan browser Google Chrome (hanya jika ingin tersedia secara offline)
dengan terlebih dahulu melakukan login ke akun Google Anda.
3
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Daftar Isi
Pengenalan Komponen Elektronik 8
Breadboard 9
Resistor (Hambatan) 9
Resistor Variabel (VR) 12
Resistor Peka Suhu dan Cahaya 13
Dioda 13
Kapasitor (Kondensator) 15
Saklar 16
Relay 17
Bentuk Sinyal 20
PWM (Pulse Width Modulation) 20
Alur Data 21
Dasar Arduino 25
Pinout Arduino UNO 26
Power Supply 26
Analog In 27
Analog to Digital Conversion 28
Pin Digital 28
Protokol Komunikasi 29
Komunikasi Serial 29
Apa Itu SPI? 30
I2C 31
ICSP Header 32
Memulai Memprogram 32
Membuat Kode Pada Arduino 35
Menyimpan Sketsa 36
Mengkompilasi Sketsa 36
Kesalahan Pada Sketsa 36
Upload (Unggah) Sketsa 37
Gagal Melakukan Upload 37
Penjelasan Kode Dalam Sketsa 38
Membuat Kedipan Yang Cepat 39
4
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dasar LED 39
Eksperimen Lebih Lanjut 40
Meniru Lampu Lalu Lintas Menggunakan LED 42
Membuat LED Redup 44
Serial Monitor 47
Komentar 61
Tipe Data 62
Variabel 64
Deklarasi Variabel 64
Sistem Bilangan 67
Perbedaan Antara 9 Dan ‘9’? 68
Operator Aritmatika 68
Prioritas Pada Aritmatika 69
Increment dan Decrement 70
Ekspresi Boolean 71
Operator Pembanding 71
Operator Logika 72
Struktur Kontrol 72
Pernyataan IF 74
Pernyataan IF … ELSE 76
Kasus Banyak Pilihan 78
Switch 79
Perulangan 84
While 84
5
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
DO .. WHILE 87
FOR 88
Break Pada Perulangan 90
Penerapan Pada Perangkat Keras 91
Objek 94
Fungsi 94
Array 97
Sensor 129
6
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Komponen Elektronika dan Perkakas Kerja
BAB I
Ikhtisar Materi
Pada materi ini Anda dikenalkan pada beberapa komponen elektronik
yang umum digunakan (tidak akan dijelaskan secara detail dan
terperinci).
Pelajaran
Syarat Pengetahuan
- Dasar Elektronika (Materi Fisika SMA / SMK kelas 1)
Bahan
Perangkat Aksesoris Bahan Lain
- - -
Deskripsi
Tujuan Belajar 1. Mengenal beberapa perangkat elektronik
2. Mengetahui cara membaca nilai resistor
Kosa Kata
elektromagnetik
skematik
power, input, output
7
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sebelum melakukan percobaan lebih lanjut ke Arduino, ada baiknya kita terlebih dahulu
memahami berbagai bentuk komponen utama sehingga kita benar-benar dapat
menggunakannya.
1. Komponen Pasif
Komponen ini merupakan komponen yang dapat bekerja tanpa adanya sumber
tegangan. Komponen pasif sendiri terdiri dari resistor, kapasitor, induktor, dan
transformator.
2. Komponen Aktif
Kebalikan dari komponen pasif, dimana komponen aktif adalah komponen yang tidak
dapat bekerja tanpa adanya sumber tegangan. Komponen ini terdiri dari dioda dan
transistor.
Akan dijelaskan berbagai macam komponen seperti potensiometer, kapasitor, LDR, dan
transistor. Sekalipun kita belum akrab dengan nama-nama tersebut namun tidak perlu
khawatir karena kita akan mempelajarinya satu per satu.
8
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Breadboard
Breadboard memiliki banyak titik-titik. Titik ini lah yang kita gunakan untuk memasang
komponen-komponen elektronika. Tiap titik tersebut memiliki hubungan satu sama lainnya,
artinya satu titik ini memiliki jalur listrik yang terhubung dengan titik yang lain. Berikut
hubungan antar jalur listrik tersebut.
Resistor (Hambatan)
Hambatan adalah komponen yang selalu digunakan dalam setiap rangkaian elektronika
karena dia berfungsi sebagai pengatur arus listrik. Hambatan disingkat dengan huruf “R”
(huruf R besar). Satuan Hambatan adalah Ohm, yang menemukan adalah George Simon
Ohm (1787-1854), seorang ahli fisika berkebangsaan Jerman. Resistor juga memiliki simbol
yaitu Ω, bisa dibaca “Ohm”; KΩ, bisa dibaca “kilo Ohm”; MΩ, bisa dibaca “mega Ohm”.
9
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pada gambar diatas adalah salah satu bentuk dari Hambatan. Masih banyak bentuk dan
jenis dari Hambatan, coba saja buka salah satu alat elektronika yang sudah rusak dan tidak
terpakai, misalnya charger Handphone atau radio saku. Disitu kita akan melihat banyak
sekali Hambatan terpasang. dari yang berbentuk bulat panjang seperti gambar diatas,
persegi empat, seperti tapal kuda, bahkan tombol pengatur volume suara yang ada di radio
tape, itu juga Hambatan.
Nilai Resistor bisa dilihat dari kode-kode warna yang terdapat di resistor tersebut dalam
bentuk gelang. Biasanya ada 4 gelang dalam 1 buah Resistor, namun ada juga yang memiliki
5 gelang. Berikut tabel gelang warna Resistor:
10
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Perhatikan gambar disamping, sebuah Hambatan
mempunyai jumlah gelang sebanyak 4 diantaranya
yaitu gelang pertama (paling kiri), gelang kedua,
gelang ketiga (multiplier), gelang keempat
(toleransi). Sekarang kita mencoba membaca nilai
suatu Hambatan. Pada gambar tersebut kita
dapatkan bahwa Hambatan tersebut berwarna Hijau, Biru, Orange, dan Emas.
Untuk membaca kode warna Hambatan seperti yang dipermasalahkan di atas, kita
mulai menerjemahkan satu persatu kode tersebut. Untuk dapat menentukan nilai warna
yang terdapat Hambatan dapat Anda lihat pada tabel. Warna gelang pertama hijau berarti
angka 5, warna gelang kedua warna biru berarti angka 6, warna gelang ketiga orange berarti
angka 3 digunakan untuk multiplier perkalian dengan 10 pangkat 3 (sesuai warna gelang).
Jika diterjemahkan:
= 56 X 103
= 56 X 1000
11
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
= 56000
= Atau 56K Ohm
Berarti 56.000 Ohm dengan nilai toleransi sebesar 5 %.
Mengapa terdapat nilai toleransi (pada contoh diatas sebesar 5%)? Karakteristik dari bahan
baku pembuatan Hambatan tidak sama, walaupun pabrik sudah mengusahakan agar dapat
menjadi standar tetapi apa daya prosesnya menjadi tidak standar. Untuk itulah pabrik
mencantumkan nilai toleransi dari sebuah Hambatan agar para perancang dapat
memperkirakan seberapa besar faktor x yang harus mereka hitung agar menghasilkan nilai
yang mereka kehendaki.
Untuk mempermudah menghafalkan warna di Resistor, kita memakai singkatan seperti
berikut:
12
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Ada lagi resistor jenis lain ialah LDR (Light Dependent Resistor) yang nilai resistansinya
tergantung pada sinar / cahaya dimana cahaya semakin terang maka resistansinya semakin
berkurang.
Dioda
Dioda adalah komponen elektronika yang terdiri dari dua kutub dimana kutub ini kita sebut
dengan Anoda dan Katoda yang berfungsi untuk menghantarkan arus listrik ke satu arah
tetapi menghambat listrik dari arah sebaliknya, oleh karena itu dioda ini sering digunakan
sebagai penyearah dalam rangkaian. Bergantung pada polaritas tegangan yang diberikan
kepadanya, dioda bisa berlaku sebagai sebuah saklar tertutup (apabila bagian anoda
mendapatkan tegangan positif sedangkan katodenya mendapatkan tegangan negatif) dan
berlaku sebagai saklar terbuka (apabila bagian anoda mendapatkan tegangan negatif
13
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
sedangkan katode mendapatkan tegangan positif). Kondisi tersebut terjadi hanya pada
dioda ideal-konseptual. Pada dioda faktual (riil), perlu tegangan lebih besar dari 0,7V (untuk
dioda yang terbuat dari bahan silikon) pada anoda terhadap katode agar dioda dapat
menghantarkan arus listrik. Tegangan sebesar 0,7V ini disebut sebagai tegangan halang
(barrier voltage). Dioda yang terbuat dari bahan Germanium memiliki tegangan halang
kira-kira 0,3V.
● LED
Light Emitting Diode atau lebih dikenal dengan sebutan LED adalah suatu
semikonduktor yang memancarkan cahaya monokromatik.
● Dioda Foto
14
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan
dioda biasa, komponen elektronika ini akan mengubah cahaya menjadi arus listrik.
Cahaya yang dapat dideteksi oleh dioda foto ini mulai dari cahaya inframerah, cahaya
tampak, ultra ungu sampai dengan sinar-X. Aplikasi dioda foto mulai dari penghitung
kendaraan di jalan umum secara otomatis, pengukur cahaya pada kamera serta
beberapa peralatan di bidang medis.
Dioda foto dan LED ini seringkali dijadikan sebagai satu kesatuan untuk membuat
sensor yang menggunakan cahaya inframerah misalnya televisi dan remotenya,
sensor pendeteksi gerak, sensor jarak, dll
Alat yang mirip dengan Dioda foto adalah Transistor foto (P
hototransistor).
Transistor foto ini pada dasarnya adalah jenis transistor bipolar yang menggunakan
kontak (junction) base-collector untuk menerima cahaya. Komponen ini mempunyai
sensitivitas yang lebih baik jika dibandingkan dengan Dioda Foto. Hal ini disebabkan
karena elektron yang ditimbulkan oleh foton cahaya pada junction ini di-injeksikan di
bagian Base dan diperkuat di bagian Kolektornya. Namun demikian, waktu respons
dari Transistor-foto secara umum akan lebih lambat dari pada Dioda-Foto.
Kapasitor (Kondensator)
Kondensator (Kapasitor) adalah suatu alat yang dapat menyimpan energi di dalam medan
listrik, dengan cara mengumpulkan ketidak seimbangan internal dari muatan listrik.
Kondensator memiliki satuan yang disebut Farad. Ditemukan oleh Michael Faraday
(1791-1867). Kondensator kini juga dikenal sebagai “kapasitor”, namun kata “kondensator”
masih dipakai hingga saat ini. Pertama disebut oleh Alessandro Volta seorang ilmuwan Italia
pada tahun 1782 (dari bahasa Italia condensatore), berkenaan dengan kemampuan alat
untuk menyimpan suatu muatan listrik yang tinggi dibanding komponen lainnya. Kebanyakan
bahasa dan negara yang tidak menggunakan bahasa Inggris masih mengacu pada
perkataan bahasa Italia “condensatore”, seperti bahasa Perancis condensateur, Indonesia
dan Jerman Kondensator atau Spanyol C
ondensador.
15
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pada kondensator terdapat 2 (dua) buah kaki dimana dari berbagai macam kondensator ini
terdapat 2 (dua) jenis:
● Kondensator yang memiliki kutub positif dan negatif serta memiliki cairan elektrolit
dan biasanya berbentuk tabung.
● Jenis lainnya adalah kondensator yang nilai kapasitasnya lebih rendah, tidak
mempunyai kutub positif dan negatif pada kaki nya. kebanyakan berbentuk bulat
pipih, berwarna coklat, merah, hijau, dan lainnya seperti tablet atau kancing baju yang
sering disebut dengan kapasitor.
16
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Saklar
Saklar adalah sebuah perangkat yang digunakan untuk memutuskan dan menghubungkan
jaringan listrik. Selain untuk jaringan listrik arus kuat, saklar berbentuk kecil juga dipakai
untuk alat komponen elektronika arus lemah.
Relay
Relay hampir mirip fungsinya seperti saklar dimana relay adalah
komponen listrik yang bekerja berdasarkan prinsip induksi medan
elektromagnetik. Jika sebuah penghantar dialiri oleh arus listrik,
maka di sekitar penghantar tersebut timbul medan magnet. Medan
magnet yang dihasilkan oleh arus listrik tersebut selanjutnya
diinduksikan ke logam feromagnetik.
Logam feromagnetik adalah logam yang mudah terinduksi medan elektromagnetik. Ketika
ada induksi magnet dari lilitan yang membelit logam, logam tersebut menjadi "magnet
buatan" yang sifatnya sementara. Cara ini kerap digunakan untuk membuat magnet non
17
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
permanen. Sifat kemagnetan pada logam feromagnetik akan tetap ada selama pada
kumparan yang melilitinya teraliri arus listrik. Sebaliknya, sifat kemagnetannya akan hilang
jika suplai arus listrik ke lilitan diputuskan. Untuk memahami cara kerja relay, Anda bisa
membayangkan sebuah saklar yang dioperasikan menggunakan magnet. Ketika ada magnet
maka listrik tersambung, dan ketika magnet hilang maka listrik terputus.
Sebenarnya aplikasi relay banyak sekali. Dari mobil mainan, kulkas, lampu sein motor dan
mobil, pompa air otomatis, hingga peralatan pada pesawat terbang. Dari relay yang jenisnya
kecil hingga yang mempunyai daya besar. Dari relay DC 5 volt, 12 volt hingga yang
bervoltase tinggi.
18
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dasar Arduino
BAB II
Ikhtisar Materi
Pada materi ini Anda akan dikenalkan dengan dasar-dasar dari
Arduino seperti definisi Arduino, cara pengoperasian, sampai dengan
berinteraksi dengan output menggunakan Arduino.
Pelajaran
Syarat Pengetahuan
- Dasar Elektronika (Materi Fisika SMA / SMK kelas 1)
- Pernah Mencoba Salah Satu Bahasa Pemrograman
Bahan
Perangkat Aksesoris Bahan Lain
Arduino UNO Resistor 220Ω -
Kabel USB Kabel Jumper
Komputer LED
Deskripsi
Tujuan Belajar 1. Mengenal dasar pengembangan dengan
Arduino
Kosa Kata
arduino, genuino
microcontroller
19
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Bentuk Sinyal
Sebelum mempelajari lebih lanjut mengenai Arduino, maka kita harus mengetahui dahulu
mengenai bentuk sinyal. Bentuk sinyal / data ini terdapat 2 (dua) bentuk yaitu analog dan
digital.
Sinyal digital hanya terdapat 2 nilai yaitu 0 atau 1, tinggi atau rendah, ya atau tidak, basah
atau kering, bergerak atau berhenti, dan seterusnya. Sedangkan data analog dapat memiliki
banyak nilai bukan hanya 2, seperti suhu ruangan sebesar 45 derajat celcius, ketinggian air
sungai 5 meter, intensitas cahaya 78%, dan seterusnya. Perbandingan dari perbedaan antara
sinyal analog dan digital tersebut dapat dilihat pada tabel berikut.
Contoh Sinyal Digital Sinyal Analog
20
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Berikut contoh penerapan teknik PWM. Anggaplah dari garis hijau ke garis hijau yang lain
tersebut memiliki lama 0,2 detik.
Alur Data
Setiap pengolahan data untuk menjadi informasi selalu minimal terdapat 3 (tiga) elemen
yaitu Input, Proses, dan Output. Tanpa tiga elemen ini maka data tidak akan dapat diolah
menjadi informasi. Sama hal nya seperti pada Arduino, selalu harus ada input, proses, dan
21
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
output. Sebagai contoh tombol saklar ditekan (input) kemudian akan diproses oleh Arduino
untuk mengalirkan listrik (proses), akhirnya lampu pun menyala karena ada listrik (output).
Jika tidak ada input maka hanya ada proses dan output dimana Arduino tidak akan paham
apa yang harus dilakukan dan apa yang harus diproses, jika tidak ada output maka Arduino
pun akan bingung apa yang harus dilakukan dan proses nya akan menghasilkan apa.
Pada mekatronika dasar, kita mengenal input sebagai sensor, proses sebagai processor, dan
aktuator serta display sebagai output. Bayangkan tubuh manusia, manusia memiliki 5 indera
yaitu untuk merasa menggunakan lidah, meraba menggunakan kulit, melihat menggunakan
mata, mencium menggunakan hidung, dan mendengar menggunakan telinga. Seluruh indera
itulah yang kita sebut dengan sensor atau perangkat input. Otak manusia ini yang
memproses. Lalu manusia memiliki otot dan sendi untuk bergerak dan mulut untuk
mengeluarkan suara, ini lah yang disebut dengan aktuator atau perangkat output.
Seperti yang telah dijelaskan bahwa Arduino terdiri dari perangkat keras dan perangkat
lunak. Dari sisi perangkat lunak Arduino memiliki lingkungan pengembangan yang
dinamakan dengan Arduino IDE, inilah yang akan kita gunakan untuk memprogram papan
Arduino kita. Dari sisi perangkat keras, Arduino memiliki banyak jenis. Bayangkan sebuah
merek laptop memiliki berbagai jenis laptop, dari jenis-jenis laptop tersebut memiliki
spesifikasi dan fitur yang berbeda-beda. Begitu juga Arduino dimana ada banyak sekali jenis
22
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Arduino. Yang membedakan dari semua jenis Arduino ini adalah spesifikasi dan fiturnya.
Untuk cara penggunaan dan cara memprogramnya adalah sama, tidak memiliki perbedaan.
Jika kita merujuk ke laman resmi Arduino yaitu http://arduino.cc lalu membuka halaman
produk maka kita akan dapat melihat semua jenis Arduino lengkap dengan spesifikasi teknis
dan fiturnya. Dan pada pembelajaran ini, Arduino yang akan kita gunakan adalah Arduino
UNO dengan alasan penggunaan jenis ini adalah karena harganya yang relatif murah, mudah
didapatkan, serta penggunaannya yang simple dan juga memiliki spesifikasi dan fitur yang
sangat cukup untuk belajar.
23
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Masalah muncul pada sekitar bulan November ketika Martino dan Federico Musto (CEO baru
Smart Srl) mengubah nama perusahaannya dari Smart Project Srl menjadi Arduino Srl dan
mendaftarkan domain arduino.org (dengan argumen domain ini lebih baik dari domain lama
yaitu arduino.cc). Apakah ini merupakan pelanggaran atau bukan, saat itu sedang menunggu
untuk disidangkan di Pengadilan Distrik Massachusetts.
Menurut artikel Wired, penyebab perpecahan adalah bahwa Banzi dan tiga lainnya ingin
menginternasionalkan merek dan produksi lisensi ke perusahaan lain secara bebas,
sementara Martino dan Musto di perusahaan yang sebelumnya dikenal sebagai Smart
Projects ingin mendaftar di pasar saham dan menjaga semua produksi di pabrik Italia
miliknya. Hal ini saling bertentangan, terjadilah Arduino VS Arduino.
Agar Arduino tetap dapat dijual di pasar internasional maka dibuatlah merek Genuino.
Dimana Genuino ini adalah merek yang digunakan untuk pasar internasional di luar wilayah
Amerika Serikat, sementara Arduino ini adalah merek yang digunakan untuk pasar Amerika
Serikat. Jadi pada intinya antara Arduino dan Genuino ini adalah sama, tidak berbeda, dan
satu pengembang. Hanya berbeda di nama saja.
24
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dasar Arduino
Arduino menyatakan lingkungan yang menggabungkan perangkat keras dengan perangkat
lunak yang memungkinkan siapa saja dapat membangun prototipe proyek elektronika
dengan mudah dan cepat.
Lalu apakah Arduino itu salah satu jenis microcontroller? Jawabannya adalah bukan, Arduino
ini lebih tepat disebut lingkungan pengembangan berupa perangkat lunak dan perangkat
keras. Mengenai ini sudah dijelaskan sebelumnya. Lalu apa hubungan Arduino dengan
microcontroller? Untuk lebih jelasnya, silahkan lihat pada pada gambar berikut yang
menjelaskan bagian-bagian dari Arduino.
Dapat kita lihat pada gambar tersebut bahwa Arduino UNO menggunakan microcontroller
ATmega (jenis Arduino lain bisa saja menggunakan microcontroller lain). Jadi jelas bahwa
Arduino bukanlah microcontroller akan tetapi Arduino menggunakan microcontroller sebagai
salah satu komponennya.
Dari sisi perangkat lunak, Arduino dilengkapi dengan program yang digunakan untuk
membuat sketsa, mengkompilasikan sketsa, dan mengunggah sketsa ke papan Arduino
dimana perangkat lunak tersebut dinamakan Arduino IDE. Pada pemrograman lain kita
mengenal kode program dalam satu berkas dinamakan kode program, dalam Arduino
25
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
berkas tersebut dinamakan sketch atau sketsa dalam Bahasa Indonesia. Jadi antara kode
program dan sketch secara arti itu sama hanya perbedaan penamaan saja.
Power Supply
Terdapat 3 (tiga) cara untuk memberikan tenaga listrik pada papan Arduino:
26
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
1. Barrel Jack, atau DC Power Jack dapat digunakan untuk memberikan tenaga listrik
pada Arduino. Biasanya barrel jack ini dihubungkan dengan adaptor (bisa
dihubungkan dengan colokan listrik di tembok rumah). Papan Arduino dapat disuplai
listrik sebesar 5 - 20 volt namun pabrik sendiri merekomendasikannya hanya di
kisaran 7- 12 volt. Jika kita mensuplai diatas 12 volt maka regulator akan terbakar,
dan jika kita mensuplai dibawah 7 volt maka Arduino tidak dapat beroperasi.
2. VIN Pin, Pin ini digunakan untuk memberikan tenaga listrik dari sumber external.
Tegangannya seperti yang telah dijelaskan di atas.
Terdapat dioda perlindungan polaritas yang menghubungkan antara positif dari jack
barel ke pin VIN, dengan nilai 1 Ampere.
5. GND, pada papan Arduino UNO (dengan pabrikan Arduino LLC) kita dapat
menemukan 5 buah pin GND yang kesemua pin tersebut terhubung satu sama
lainnya. Pin GND digunakan untuk listrik negatif.
7. IOREF, Pin ini adalah sebagai Input/Output Reference. Untuk memberikan referensi
tegangan mana microcontroller akan beroperasi.
27
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Analog In
Arduino UNO memiliki 6 pin analog dimana pin ini menggunakan ADC (Analog to Digital
Converter). Pin tersebut disediakan untuk input berupa sinyal analog namun dapat juga
digunakan untuk inputan sinyal digital maupun output sinyal digital namun tidak dapat
sebagai output sinyal analog. Untuk membuat output sinyal analog maka menggunakan pin
PWM (akan dijelaskan nanti).
ADC adalah kependekan dari Analog to Digital Converter. ADC adalah sirkuit elektronik yang
digunakan untuk mengkonversi sinyal analog ke sinyal digital. Representasi digital dari sinyal
analog ini memungkinkan prosesor (yang merupakan perangkat digital) untuk mengukur
sinyal analog dan menggunakan melalui operasinya.
Pin Arduino A0 - A5 mampu membaca sinyal analog. Pada Arduino, ADC memiliki resolusi
10 bit yang artinya pin ini dapat memberikan nilai tegangan analog 1024 dalam bilangan
desimal. ADC ini mengkonversikan tegangan ke bentuk bit yang dimana bentuk bit inilah
yang dapat dimengerti oleh processor.
Contoh paling umum dari ADC ini adalah pada penerapan VoIP (Voice over Internet Protocol),
biasanya kita menggunakan media komunikasi seperti whatsapp, telegram, dan aplikasi lain
yang memiliki fitur voice call melalui internet. Setiap smartphone yang kita gunakan memiliki
microphone yang mengubah gelombang suara ke sinyal analog. Hal ini terjadi melalui
perangkat ADC pada smartphone, sinyal analog tersebut diubah menjadi data digital yang
kemudian ditransmisikan ke penerima melalui jaringan internet.
28
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pin Digital
Pin 0 - 13 pada Arduino UNO sebagai pin digital untuk input maupun output. Pada pin 13
Arduino UNO terhubung dengan LED yang ada pada papan Arduino UNO. Pada pin digital ini
terdapat pin PWM (mengenai PWM telah dijelaskan sebelumnya) yaitu pada pin 3, 5, 6, 9, 10,
11. Tidak perlu menghafal pin mana saja yang merupakan PWM, pada papan Arduino label
pin PWM ditandai dengan simbol tilde (simbol ~). Contoh pada pin 3 adalah pin PWM oleh
karena itu Arduino memberi label pada pin 3 menjadi ~3.
Pada pin PWM ini berbeda dengan pin analog, perbedaannya selain karena PWM ini adalah
sebenarnya sinyal digital, perbedaan lainnya adalah bahwa PWM ini hanya dapat
memberikan tegangan analog maksimal 255 karena hanya memiliki resolusi 8 bit (berbeda
dengan pin analog yang memiliki resolusi 10 bit).
Catatan penting:
Protokol Komunikasi
Serial (TTL), Pin digital 1 dan 0 adalah pin serial untuk Arduino UNO. Jalur pada pin ini
digunakan untuk modul U
SB onboard.
29
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Komunikasi Serial
Komunikasi serial digunakan untuk bertukar data (berkomunikasi) antara papan Arduino
dengan perangkat lain seperti komputer, display, sensor, dll. Setiap jenis papan Arduino
setidaknya memiliki 1 port serial. Komunikasi serial terjadi di pin 0 (RX) dan pin 1 (TX) serta
melalui USB. Arduino mendukung komunikasi serial melalui pin digital dengan pustaka
SoftwareSerial, hal ini memungkinkan kita untuk menghubungkan lebih dari satu perangkat
serial dan membiarkan port serial utama untuk USB.
Sekarang kita bahas mengenai software serial dan hardware serial. Sebagian besar
microcontroller memiliki perangkat keras yang dirancang untuk berkomunikasi dengan
perangkat lainnya. Port serial perangkat lunak menggunakan sistem interupsi pin-change
untuk berkomunikasi. Ada pustaka bawaan untuk komunikasi Serial Perangkat Lunak. Serial
perangkat lunak digunakan oleh prosesor untuk mensimulasikan port serial tambahan.
Satu-satunya kelemahan dengan serial perangkat lunak adalah ia membutuhkan lebih
banyak pemrosesan dan tidak dapat mendukung kecepatan tinggi yang sama dengan serial
perangkat keras.
Pin SPI - SS / SCK / MISO / MOSI adalah pin khusus untuk komunikasi SPI. Pin ini dapat
ditemukan pada pin digital 10 - 13 dari Arduino UNO dan pada header I CSP.
Serial Peripheral Interface (SPI) adalah protokol data serial yang digunakan oleh
microcontroller untuk berkomunikasi dengan satu atau lebih perangkat eksterna. SPI juga
dapat digunakan untuk menghubungkan 2 microcontroller. Di bus SPI, selalu ada satu
perangkat yang dilambangkan sebagai perangkat Master dan sisanya sebagai Slave. Dalam
kebanyakan kasus, microcontroller adalah perangkat Master. Pin SS (Slave Select)
menentukan perangkat mana yang sedang berkomunikasi dengan Master.
30
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
● MISO (Master In Slave Out) - Jalur untuk mengirimkan data dari slave ke master
● MOSI (Master Out Slave In) - Jalur untuk mengirimkan data dari master ke slave
● SCK (Serial Clock) - Sinyal jam yang dihasilkan oleh perangkat Master untuk
menyinkronkan transmisi data.
I2C
Pin I2C - SCL / SDA adalah pin khusus untuk komunikasi I2C. Pada Arduino UNO, pin ini
ditemukan pada pin Analog A4 dan A5.
I2C adalah protokol komunikasi yang biasa disebut "I2C bus". Protokol I2C dirancang untuk
memungkinkan komunikasi antar komponen pada satu papan sirkuit. Dengan I2C ada 2
kabel yang disebut sebagai S
CL dan SDA.
Setiap perangkat pada bus I2C memiliki alamat unik, hingga 255 perangkat dapat
dihubungkan pada bus yang sama.
Interrupt - I NT0 dan INT1. Arduino UNO memiliki dua pin interupsi eksternal.
● External
● Pin Change
Ada dua pin interupsi eksternal pada ATmega168 / 328 yang disebut INT0 dan INT1. baik
INT0 dan INT1 dipetakan ke pin 2 dan 3. Sebaliknya, interupsi Pin Change dapat diaktifkan
pada salah satu pin.
31
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
ICSP Header
ICSP adalah kependekan dari In-Circuit Serial Programming. Nama ini berasal dari
Pemrograman Dalam Sistem (ISP). Pabrikan seperti Atmel yang bekerja dengan Arduino
telah mengembangkan header pemrograman serial in-circuit mereka sendiri. Pin ini
memungkinkan pengguna untuk memprogram firmware papan Arduino. Ada enam pin ICSP
yang tersedia di papan Arduino yang dapat dihubungkan ke perangkat programmer melalui
kabel pemrograman.
Dari sekian banyak pin pada Arduino UNO, kita tidak perlu berpusing terlebih dahulu karena
yang perlu kita ketahui untuk pembelajaran awal ini adalah pin digital, pin analog, pin 5V dan
3.3V, pin GND, dan pin PWM. Cukup itu saja karena kita hanya akan menggunakan sensor
dan aktuator.
32
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Memulai Memprogram
Pada Arduino ada 2 (dua) tahapan untuk memberikan perintah dan mengupload perintah
tersebut ke papan Arduino yaitu:
Jika Anda telah membaca buku ini dari halaman awal sampai halaman ini secara berurut
tanpa melompat-lompat maka selamat! Anda punya semangat yang luar biasa untuk
mempelajari Arduino. Satu langkah, awal berharga telah Anda tempuh. Sekarang, marilah
untuk menghubungkan komputer dan Arduino melalui kabel USB.
Perhatikan gambar diatas, Arduino UNO menggunakan USB tipe B untuk berkomunikasi
dengan komputer kita. Slot USB ini memiliki 2 (dua) fungsi yaitu untuk berkomunikasi
dengan komputer kita dan sebagai sumber tegangan listrik sama seperti handphone kita,
slot Micro USB handphone kita memiliki dua fungsi yaitu sebagai sumber daya listrik saat
melakukan pengisian ulang baterai dan sebagai jalur komunikasi untuk bertukar data
dengan komputer.
33
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
USB tipe B ini juga biasanya digunakan untuk melakukan komunikasi antara komputer
dengan mesin printer di rumah, jadi jika kalian tidak memiliki USB ini maka cobalah
sementara untuk menggunakan USB printer rumah kalian.
Langkah pertama kita sekarang adalah memprogram papan Arduino kita. Jika kalian
perhatikan pada papan Arduino di dekat pin digital nomor 13 maka kalian akan melihat label
dengan karakter L. Label itulah yang menandakan bahwa terdapat lampu LED pada papan
Arduino kita, lampu LED tersebut terhubung ke pin nomor 13. Artinya jika kita memberikan
listrik pada pin nomor 13, maka LED tersebut akan menyala.
Langkah pertama, lakukan instalasi Arduino IDE pada komputer Anda. Arduino IDE dapat
diunduh di laman resmi Arduino (jangan mencari link lain apalagi link tempat download
software), hanya gunakan link dari website resmi Arduino.
https://www.arduino.cc/en/Main/Software
Langkah selanjutnya setelah sukses memasang Arduino IDE pada komputer adalah:
1. Hubungkan kabel USB ke port USB komputer dan port USB papan Arduino.
2. Pastikan L
ED ON pada papan Arduino menyala.
3. Buka aplikasi Arduino IDE pada komputer Anda.
34
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
35
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Langkah selanjutnya adalah memilih port atau jalur yang kita gunakan untuk berkomunikasi
dengan Arduino. Tools -> Port. Jika kalian menggunakan sistem operasi Windows maka port
yang tersedia akan diawali dengan COM dan jika kalian menggunakan sistem operasi
Unix-Like (Seperti MacOS dan distribusi Linux) maka port yang tersedia akan diawali dengan
/dev/tty/ACM.
36
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sekarang kita bisa segera memulai menuliskan sketsa. Sketsa adalah nama khusus di
Arduino yang sebenarnya adalah kode program. Buatlah sketsa berikut ini (penjelasan kode
program akan diterangkan setelahnya).
void setup() {
void loop() {
delay (1000);
delay (1000);
Menyimpan Sketsa
Untuk menyimpan sketsa masuklah ke menu File -> Save. Maka kotak dialog untuk
menyimpan sketsa kan ditampilkan.
37
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Mengkompilasi Sketsa
Kita perlu memperbaiki kode program jika terdapat kesalahan pada proses verifikasi.
Pedomannya, lakukan perubahan berdasarkan pesan error yang ditampilkan. Sebagai
contohnya pinMode pada sketsa tertulis sebagai pinMod (kurang e). Jika sketsa
dikompilasi, akan didapatkan hasil seperti gambar dibawah.
38
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Baris yang memiliki kesalahan akan ditandai dengan warna merah muda dan pesan error
nya akan ditampilkan di bagian bawah Arduino IDE.
Sketch uses 928 bytes (2%) of program storage space. Maximum is 32256
bytes. Global variables use 9 bytes (0%) of dynamic memory, leaving 2039
bytes for local variables. Maximum is 2048 bytes.
39
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Kode program yang terdapat dalam setup() hanya akan dieksekusi oleh Arduino 1 (satu)
kali yaitu pada saat Arduino baru dinyalakan ataupun pada saat sketsa baru selesai
diunggah. Lalu kode program yang terdapat pada fungsi loop() akan dijalankan oleh
Arduino berulang-ulang secara terus menerus sampai dengan Arduino tidak memiliki suplai
listrik.
● Pernyataan berikut digunakan untuk menentukan bahwa pin 13 adalah pin untuk
keluaran (OUTPUT):
pinMode(13,OUTPUT);
Artinya, kita memberi tahu kepada Arduino bahwa pin nomor 13 ini akan digunakan
sebagai output. Pengaturan seperti ini hanya perlu dilakukan sekali saja. Itulah
sebabnya, pernyataan ini diletakkan pada fungsi setup().
● Pernyataan
digitalWrite(13, HIGH);
40
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dipakai untuk menghidupkan LED, yang terhubung ke pin 13. Nilai HIGH pada kode
program ini menyatakan bahwa Arduino harus memberikan arus listrik ke pin 13.
Perintah digitalWrite artinya kita memberikan sinyal digital pada pin nomor 13.
● Pernyataan berikut digunakan untuk menunda eksekusi di Arduino selama 1000
milidetik (1000 milidetik = 1 detik):
delay(1000);
dengan memberikan perintah ini kepada Arduino maka Arduino akan menunda
eksekusi kode program berikutnya selama 1 detik, oleh karena itu listrik akan tetap
mengalir selama 1 detik sehingga LED tetap menyala.
● Pernyataan
digitalWrite(13,LOW);
Sama seperti pernyataan sebelumnya, hanya nilai yang digunakan disini adalah LOW
yang berarti Arduino tidak memberikan aliran listrik ke pin nomor 13. Data digital
pada Arduino dinyatakan dengan HIGH ataupun LOW.
Perintah HIGH atau LOW tersebut bisa kita ganti dengan 1 atau 0. Dimana 1 berarti
HIGH dan 0 berarti LOW seperti pada contoh berikut:
digitalWrite(13, 1);
digitalWrite(13, 0);
Lampu LED yang ada pada papan Arduino secara internal terhubung ke pin 13. Kalau Anda
ingin mengontrol LED melalui pin selain 13, gunakan LED eksternal. Eksperimen seperti ini
mulai dibahas pada materi selanjutnya.
41
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dasar LED
Light Emitting Diode (LED) adalah komponen elektronika yang biasa digunakan sebagai
lampu kecil. Komponen ini mempunyai dua kaki. Salah satu kaki disebut anode dan kaki
lainnya dinamakan katode. LED menyala jika ada aliran listrik yang cukup dari anode ke
katode.
Selalu ingat bahwa listrik selalu mengalir dari sisi
positif ke sisi negatif. Dalam hal LED maka sisi
positif nya adalah anoda dan sisi negatifnya
adalah katoda.
Untuk memahami prinsip LED menyala atau tidak
menggunakan Arduino, lakukan eksperimen
seperti gambar berikut dan pastikan Arduino
sudah menyala.
Pada sisi positif kita berikan listrik 5 volt dari Arduino, inilah listrik positif yang keluar. Lalu
bagian negatif selalu kita hubungkan ke Ground (GND) pada Arduino.
Resistor adalah komponen yang berfungsi untuk membatasi arus listrik yang mengalir
dalam suatu rangkaian. Pada rangkaian di atas, resistor digunakan untuk mencegah LED
terbakar sekiranya dihubungkan dengan tegangan 5V. Nah, resistor 220Ω digunakan agar
LED mendapatkan arus yang cukup sehingga LED bisa menyala dan tidak merusak LED.
Anda perlu menyiapkan sejumlah perangkat keras seperti breadboard, resistor, dan kabel
dupont. Rincian komponen yang diperlukan paling tidak adalah seperti berikut.
Material Keterangan
42
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
LED Hijau Jumlah : 1
LED Kuning Jumlah : 1
Resistor Resistansi : 220Ω (merah,merah,coklat)
Watt :1/4
Jumlah : 3
Breadboard Jenis: Half Breadboard
Jumlah : 1
Kabel Dupont Jenis : (male - male) dan (male - female)
Breadboard merupakan material yang wajib disediakan jika ingin bereksperimen dengan
Arduino. Dengan menggunakan peranti ini, Anda bisa bereksperimen berbagai proyek
elektronika tanpa perlu menggunakan solder. Rangkaian yang diperlukan dalam suatu
proyek elektronika dapat disusun dengan melakukan hubungan melalui breadboard.
43
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
skematis ke perwujudan dengan breadboard tidak salah pasang. Jika Anda menginginkan
untuk menghubungkan dua lubang secara internal yang tidak terhubung, kabel dupont
diperlukan. Kabel ini juga biasa digunakan untuk menghubungkan pin-pin pada papan
Arduino dengan lubang di breadboard.
Nah, sekarang rangkaian yang digunakan untuk mengontrol ketiga LED adalah seperti
gambar.
Setelah rangkaian seperti di depan disusun, anda bisa mengunggah sketsa berikut:
Sketsa : lalu_lintas.ino
const int PIN_LED_MERAH = 7;
44
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
pinMode(PIN_LED_MERAH, OUTPUT);
pinMode(PIN_LED_KUNING, OUTPUT);
pinMode(PIN_LED_HIJAU, OUTPUT);
}
void loop() {
// Merah
digitalWrite(PIN_LED_MERAH, HIGH);
delay(8000);
digitalWrite(PIN_LED_MERAH, LOW);
// Kuning
digitalWrite(PIN_LED_KUNING, HIGH);
delay(1000);
digitalWrite(PIN_LED_KUNING, LOW);
// Hijau
digitalWrite(PIN_LED_HIJAU, HIGH);
delay(2000);
digitalWrite(PIN_LED_HIJAU, LOW);
}
45
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Definisi konstanta ditandai dengan kata kunci const. Dengan menggunakan pernyataan
konstanta maka nilai variabel (PIN_LED_MERAH, KUNING, dan HIJAU) tidak dapat diubah
sewaktu sketsa dieksekusi.
Di setup(), tiga pertanyaan berikut digunakan untuk menentukan mode untuk pin yang
dihubungkan ke LED merah, kuning dan hijau berupa OUTPUT:
pinMode(PIN_LED_MERAH, OUTPUT);
pinMode(PIN_LED_KUNING, OUTPUT);
pinMode(PIN_LED_HIJAU, OUTPUT);
Artinya, Arduino dapat mengubah nilai dari ketiga pin tersebut.
Contohnya sebagai berikut digunakan untuk menyalakan LED merah selama 8000 milidetik:
digitalWrite(PIN_LED_MERAH, HIGH);
delay(8000);
digitalWrite(PIN_LED_MERAH, LOW);
Seperti yang sudah dijelaskan sebelumnya, untuk menggunakan data analog maka kita
dapat menggunakan pin Analog yang berada sebelah kiri (A0 - A5). Namun pin tersebut
hanya akan kita gunakan sebagai input (walaupun kita bisa menggunakannya sebagai
output sinyal digital). Untuk mendapatkan output dengan data analog maka kita dapat
menggunakan pin PWM (Pulse Width Modulation) yaitu terdapat pada pin digital dengan
nomor pin yang diawali dengan simbol tilde (~). Yaitu pin 3, 5, 6, 7, 10, 11.
Pertama-tama, rangkaian seperti berikut perlu disusun terlebih dahulu menggunakan pin 5.
46
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
-
Sketsa : intensitasLED.ino
const int PIN_LED = 5; // Pin PWM
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
analogWrite(PIN_LED, 255);
delay(200);
analogWrite(PIN_LED, 191);
delay(200);
analogWrite(PIN_LED, 127);
delay(200);
analogWrite(PIN_LED, 64);
delay(200);
analogWrite(PIN_LED, 0);
delay(200);
}
Pada fungsi loop kita menggunakan perintah analogWrite. Perintah ini digunakan untuk
memberikan sinyal analog terhadap PIN_LED yaitu pin 5. Pada pin PWM Arduino, lebar data
yang dimiliki adalah 8 bit oleh karena itu nilai maksimal dari data analog adalah 255
(konversi dari bilangan biner 8 bit ke bilangan desimal yaitu 255).
47
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Komunikasi Serial
BAB III
Ikhtisar Materi
Pada materi ini Anda akan dikenalkan dengan komunikasi serial
mulai dari definisi sampai dengan cara penggunaan komunikasi
serial. Tentunya fungsi dan penerapan komunikasi serial ini pun akan
dijelaskan.
Pelajaran
Syarat Pengetahuan
- Dasar Elektronika (Materi Fisika SMA / SMK kelas 1)
- Pernah Mencoba Salah Satu Bahasa Pemrograman
Bahan
Perangkat Aksesoris Bahan Lain
Arduino UNO Resistor 220Ω -
Kabel USB Kabel Jumper
Komputer LED
Push Button
Deskripsi
Tujuan Belajar 1. Mengenal dasar penggunaan komunikasi
serial
Kosa Kata
arduino, genuino
microcontroller
serial communication, serial monitor
48
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Komunikasi serial adalah salah satu metode komunikasi data untuk mengirimkan data
sekian bit pada satu waktu tertentu (misalnya 1 detik) melalui seutas kabel. Pada dasarnya
komunikasi serial adalah kasus khusus komunikasi paralel dengan nilai n = 1, atau dengan
kata lain adalah suatu bentuk komunikasi paralel dengan jumlah kabel hanya satu dan hanya
mengirimkan satu bit data secara simultan.
Serial Monitor
Serial Monitor adalah fasilitas di Arduino IDE yang memungkinkan kita bisa memantau data
komunikasi antara Arduino dan perangkat komputer kita. Hal ini sangat berguna untuk
memastikan sketsa yang kita buat sesuai dengan yang kita kehendaki. Selain itu, serial
monitor dapat kita gunakan untuk melihat hasil suatu eksperimen dengan cepat, tanpa perlu
menggunakan peranti keluaran seperti penampilan LCD, sebagai contoh kita ingin
mengetahui berapa persen tingkat kelembaban tanah yang dideteksi oleh sensor
kelembaban tanah maka kita tidak perlu menggunakan LCD tambahan, cukup dengan serial
monitor ini data dapat ditampilkan. Bentuk jendela serial monitor adalah seperti gambar
dibawah ini.
Di samping itu, serial monitor juga dapat digunakan untuk mengirimkan data dalam bentuk
teks dari komputer kita ke Arduino. Hal ini juga bermanfaat dalam beberapa eksperimen,
49
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
tanpa perlu melibatkan peranti masukan tambahan seperti keypad. Untuk membuka serial
monitor maka kita cukup mengklik icon di sebelah kanan atas Arduino IDE.
Sketsa : kirimSerial.ino
void setup() {
Serial.begin(9600);
void loop() {
}
50
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Kemudian lihat kembali kode program tersebut dimana terdapat perintah Serial.print()
dan Serial.println(). Perintah tersebut digunakan untuk memberitahu Arduino bahwa di
harus mengirimkan data sesuai dengan isi dari Serial.print() tersebut. Perbedaan print
dan println adalah dimana jika menggunakan print maka data yang dikirimkan tidak akan
membuat baris baru, berbeda dengan println setelah data dikirimkan maka akan dibuat
baris baru untuk menampilkan data yang lainnya.
51
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : sistemBilangan.ino
void setup() {
Serial.begin(9600);
Serial.println(bilangan);
Serial.println(bilangan, DEC);
Serial.println(bilangan, OCT);
Serial.println(bilangan, HEX);
Serial.println(bilangan, BIN);
Serial.println((char) bilangan);
}
void loop() {
}
Untuk menguji sketsa ini, kita cukup menggunakan serial monitor. Hasilnya seperti berikut:
52
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : digitPecahan.ino
void setup() {
Serial.begin(9600);
Serial.println(bilangan, 6);
Serial.println(bilangan, 5);
Serial.println(bilangan, 4);
Serial.println(bilangan, 3);
Serial.println(bilangan, 2);
Serial.println(bilangan, 1);
Serial.println(bilangan, 0);
}
void loop() {
}
Serial.println(bilangan, 6);
Membuat isi variabel bilangan ditampilkan dengan jumlah digit pecahan sebanyak 6. Hasil
eksekusi sketsa ini adalah seperti berikut:
53
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
if (Serial.available() > 0) {
…
if (Serial.available()) {
…
54
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pernyataan if adalah pernyataan yang digunakan untuk menjalankan suatu perintah atau
tindakan tergantung pada kondisi if. Jika kondisi terpenuhi, bagian yang tergantung oleh if
akan dijalankan. Pada contoh dibawah ini , sekiranya serial.avaible() memberikan nilai
balik berupa bilangan bukan nol, perintah yang berada di dalam tanda { dan } akan
dijalankan. Namun, jika serial.available() menghasilkan 0 (berarti tidak ada data di port
serial), perintah yang berada didalam tanda { dan } tidak dijalankan.
Tentu saja, didalam tanda { dan } perlu diberikan perintah untuk membaca data yang
terdapat di port serial. Salah satu caranya adalah dengan membaca setiap byte data dalam
bentuk karakter. Caranya adalah dengan menuliskan pernyataan seperti berikut: char
karakter = Serial.read();
Sketsa : bacakarakter.ino
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
char karakter = Serial.read();
Serial.print(karakter);
}
}
Setelah serial monitor terbuka, Anda bisa mengetik “PascalRobotik” lalu klik tombol send
maka diperoleh hasil seperti berikut:
55
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
56
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : bacaInteger.ino
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
int bilangan = Serial.parseInt();
Serial.println(bilangan);
}
}
Digunakan untuk mendeklarasikan bilangan sebagai variabel bertipe int (yang digunakan
untuk menampung bilangan bulat) dan kemudian variable ini diisi dengan bilangan bulat
yang dibaca melalui Serial.parseInt().
Hasilnya seperti berikut jika Newline disetel di Serial Monitor dan data 123 dimasukan di
Serial Monitor.
Sketsa : bacaFloat.ino
void setup() {
Serial.begin(9600);
}
void loop() {
57
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
if (Serial.available()) {
float bilangan = Serial.parseFloat();
Serial.println(bilangan);
}
}
58
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : controlled.ino
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
while (!Serial);
void loop() {
if (Serial.available()) {
int state = Serial.parseInt();
if (state == 1) {
digitalWrite(13, HIGH);
Serial.println("Perintah diterima, LED menyala");
}
if (state == 2){
digitalWrite(13, LOW);
Serial.println("Perintah diterima, LED mati");
}
}
}
Lalu setelah sketsa berhasil di compile dan diunggah, bukalah serial monitor dan masukan
angka 1 atau 2.
59
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Anda bisa menggunakan modul tombol untuk mempermudah perwujudannya. Modul ini
mengandung tombol tekan dan komponen lain seperti resistor sehingga Anda bisa
menggunakan modul ini tanpa perlu menyediakan resistor
tambahan.
Mari kita praktekkan untuk mengetahui isyarat digital yang dihasilkan oleh modul tombol
ketika ditekan. Rangkaian yang perlu disusun kalau menggunakan model KY-004 adalah
seperti berikut:
60
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : ujiTombol.ino
const int PIN_TOMBOL = 3;
const int PIN_LED = 2;
void setup() {
pinMode(PIN_TOMBOL, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int keadaanTombol = digitalRead(PIN_TOMBOL);
digitalWrite(PIN_LED, keadaanTombol);
}
Kita lihat pada kode program digitalRead(PIN_TOMBOL); yang berarti bahwa kita
memerintahkan Arduino untuk membaca nilai sinyal digital dari pin tombol yaitu pin 3.
Dimana sinyal digital ini berupa 0 atau 1.
Setelah Arduino membaca sinyal digital tersebut lalu pada kode program
digitalWrite(PIN_LED, keadaanTombol); yang berarti bahwa Arduino memberikan
sinyal digital pada pin led yaitu pin 2 sesuai dengan variabel PIN_TOMBOL. Jika pin tombol
ditekan (bernilai 1) maka pin led pun bernilai 1, jika tidak ditekan (bernilai 0) maka pin led
pun bernilai 0.
Untuk data input yang berupa analog maka kita akan menggunakan perintah
analogRead();. Ini akan kita bahas kembali nanti.
61
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pemrograman Arduino
BAB IV
Ikhtisar Materi
Pada materi ini Anda akan dikenalkan dengan dasar-dasar cara
memprogram di Arduino IDE dan perintah-perintah pada bahasa
pemrograman Arduino yang menjadi dasar pemrograman di Arduino
IDE. Sekaligus mempraktekannya menggunakan salah satu inputan
ke Arduino.
Pelajaran
Syarat Pengetahuan
- Pengetahuan Mengenai Variabel dan Tipe Data
- Pernah Mencoba Salah Satu Bahasa Pemrograman
Bahan
Perangkat Aksesoris Bahan Lain
Arduino UNO Resistor 220Ω -
Kabel USB Kabel Jumper
Komputer LED
Push Button
Deskripsi
Tujuan Belajar 1. Mengenal dasar pemrograman
Kosa Kata
programming
sketsa, arduino
struktur kontrol
62
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Seperti yang sudah dijelaskan sebelumnya bahwa Arduino ini adalah perangkat
pengembangan yang terdiri dari perangkat lunak dan perangkat keras dimana pada sisi
perangkat keras, Arduino berdasar pada Wiring (http://www.wiring.org.co/), sebuah papan
pengembangan seperti hal nya Arduino dan pada sisi perangkat lunak Arduino IDE berdasar
pada Processing (https://processing.org/), sebuah perangkat lunak dan bahasa untuk
mempelajari mengenai pemrograman dalam konteks seni visual. Lalu pada Arduino IDE
sendiri mendukung bahasa C dan C++ dengan tambahan aturan khusus mengenai struktur
kode nya dimana bahasa pemrograman inilah yang kita namakan dengan Arduino
Programming Language (Bahasa Pemrograman Arduino), jadi bahasa yang digunakan untuk
memprogram Arduino menggunakan Arduino IDE adalah bahasa Arduino.
Komentar
Simbol // adalah simbol komentar. Semua kode program yang dimulai dengan simbol
tersebut hingga akhir baris diperlakukan sebagai komentar. Komentar adalah keterangan di
dalam sketsa yang ditujukan untuk memberikan penjelasan. Dalam praktiknya, komentar
dapat digunakan untuk mematikan perintah-perintah tertentu selama pengembangan sketsa
dilakukan. Sebagai contoh, ujilah sketsa berikut:
Sketsa : komentar.ino
void setup() {
Serial.begin(9600);
//Serial.println("Ini tidak dieksekusi");
Serial.println("Ini diekseskusi");
}
void loop() {
}
63
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Hal ini dikarenakan komentar tidak akan di compile oleh Arduino IDE, melainkan
akan diabaikan sehingga komentar ini hanya berguna bagi kita yaitu pengembang
untuk menguji dan memberi catatan tersendiri bagi kita.
64
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Tipe Data
Tipe data ini dapat kita katakan sebagai himpunan dari semua data. Data apapun bentuknya
dan bagaimanapun nilai nya maka memiliki jenis atau tipe. Contohnya dalam keseharian kita
mengenal bilangan bulat digunakan pada harga barang, Rp. 3.500, digunakan pada data
jumlah buku (jumlah buku ada 6 buah). Atau ada juga data bilangan riil seperti ukuran berat
56,4 Kg, ukuran kecepatan 45,3 Km/Jam, dll.
Di Arduino dan pemrograman lain tipe data digunakan untuk menentukan jenis data dan
jangkauan nilai yang dapat disimpan dalam memori. Ketika kita menggunakan tipe data
char sebagai contoh maka data yang dapat disimpan berupa karakter seperti ‘A’, ’b’, ’*’, ‘9’,
dsb. Ketika tipe data int digunakan nilai yang disimpan berupa bilangan bulat seperti 5,
2342, 946, -20, dsb.
Nah, Arduino menyediakan sejumlah tipe data. Kita dapat memilih yang paling tepat untuk
menyimpan atau memproses data. Tipe data yang perlu kita kenali adalah seperti berikut:
65
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
“1” + “1” = 11
Hasilnya adalah 11 karena “1” dan “1” adalah karakter. Sama seperti contoh berikut ini:
Lalu kenapa tidak ada spasi disana? Hal itu karena dalam karakter yang kita tambahkan
tersebut tidak ada karakter spasi, kecuali:
Variabel
Variabel adalah suatu tempat yang digunakan untuk menyimpan data dan nilai yang dapat
diubah sewaktu-waktu ketika sketsa dieksekusi. Bayangkan sebuah gelas, gelas tersebut
hanya boleh digunakan untuk diisi dengan air yang cair (tidak boleh batu, tidak boleh pasir,
tidak boleh besi, tidak boleh es). Kita beri nama gelas tersebut dengan gelasKaca. Dalam hal
ini gelas adalah suatu variabel untuk menampung air, gelasKaca adalah nama variabel, dan
air adalah tipe data. Air yang ada dalam gelas ini bisa 10ml, 100ml, 1L. 1,6L, dst. Jumlah air
ini lah nilai atau besar dari data nya.
Sama seperti pada pemrograman, variabel tersebut memiliki tipe data, nama variabel, dan
nilai yang ditampung variabel tersebut. Nantinya variabel ini bisa digunakan dan diubah nilai
nya pada saat program dieksekusi. Sebelumnya kita pernah menggunakan variabel dalam
praktek kita yaitu seperti PIN_LED_MERAH, PIN_LED_KUNING, PIN_LED_HIJAU, dll.
Pemberian nama variabel memang tidak boleh dilakukan sembarangan. Nama variabel
harus memenuhi ketentuan-ketentuan berikut.
66
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
1. Nama variable hanya dapat diawali dengan huruf atau garis bawah Sebagai
contohnya, 1resistor tidak memenuhi aturan ini. Tapi satuResistor memenuhi
aturan ini.
2. Nama variabel boleh mengandung huruf, digit, dan garis bawah (_) pada karakter
kedua dan seterusnya Sebagai contoh, nama barang tidak memenuhi aturan ini
karena mengandung spasi. Begitu juga id# tidak memenuhi aturan ini karena
mengandung simbol #.
3. Huruf kecil dan kapital dibedakan (case sensitive). Dengan demikian, namaKomponen
dan namakomponen adalah dua nama variabel yang berbeda.
Deklarasi Variabel
Deklarasi variabel dapat berupa seperti:
● char x;
● char x= “aku”;
Pada contoh pertama, variabel x bertipe char dan tidak ada pemberian nilai ke variabel
tersebut. Pada keadaan seperti ini, nilai variabel x pada saat itu tidak ditentukan. Jadi,
nilainya bisa berupa apa saja. Pada bentuk kedua, variabel x dideklarasikan bertipe char dan
diberi nilai awal berupa “aku”. Artinya isi dari variabel x adalah “aku” ;
Bentuk seperti
Char x=’a’;
Identik dengan
Char x;
x=’a’;
Variabel yang dideklarasikan di luar fungsi seperti setup() maupun loop() dan biasanya
diletakkan sebelum kedua fungsi tersebut dinamakan variable global. Variabel global adalah
variabel yang dapat diakses dimana saja, termasuk di loop(). Sebaliknya, variable local
adalah variabel yang dideklarasikan dalam suatu fungsi.
67
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Variabel global diperlukan jika nilainya ditunjukan agar tetap dikenali dari satu pemanggilan
loop() ke pemanggilan berikutnya. Pada contoh berikut, nilai pencacah dapat dinaikan oleh
loop().
void setup() {
Serial.begin(9600);
}
void loop() {
pencacah++;
Serial.println(pencacah);
delay(1000);
}
pencacah++;
Digunakan untuk menaikkan nilai di pencacah sebesar 1. Contohnya hasil di Serial Monitor:
68
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : lokal.ino
void setup() {
Serial.begin(9600);
}
void loop() {
long int pencacah = 0;
pencacah++;
Serial.println(pencacah);
delay(1000);
}
69
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Kapan const digunakan sebagai pengganti variabel? Kita telah mencoba untuk membuang
const pada sketsa-sketsa contoh di modul sebelum ini. ternyata, hasilnya sama saja. Ya,
memang begitu. Kata kunci const digunakan untuk menegaskan bahwa nama yang
digunakan menyatakan suatu konstanta, bukan variable. Konstanta berarti nilai yang tidak
dapat diubah sewaktu-waktu di sketsa dieksekusi. Sebagai konsekuensi penambahan kata
kunci const, isi nama tersebut tidak dapat diubah.
Sistem Bilangan
Arduino mengizinkan bilangan ditulis dalam bentuk desimal (sistem bilangan berbasis 10)
oktal (sistem bilangan berbasis 8), heksadesimal (sistem bilangan berbasis 16) ataupun
biner (sistem bilangan berbasis 2). Nah dasar penulisan bilangan dalam suatu sistem
bilangan adalah seperti berikut.
● Bilangan yang ditulis dengan awalan berupa angka merupakan konstanta dalam
sistem desimal. Angka yang digunakan dapat berkisar dari 0 dan 9. Contohnya 34
dan 123.4.
● Bilangan yang ditulis dengan awalan 0x dan 0X merupakan konstanta dalam sistem
heksadesimal. Angka yang digunakan dapat berkisar dari 0 hingga 9 dan huruf A
hingga F. Contohnya : 0x34 dan 0xAF.
70
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
● Bilangan yang ditulis dengan awalan 0 merupakan konstanta dalam sistem oktal.
Angka yang digunakan dapat berkisar dari 0 hingga 7. Contohnya : 023 dan 017.
● Bilangan yang ditulis dengan awalan b atau B merupakan konstanta dalam sistem
biner. Angka yang digunakan dapat berupa 0 dan 1. Contohnya : b1001.
Operator Aritmatika
Untuk kepentingan menangani operasi aritmatika, Arduino menyediakan operator +, - , * , / ,
dan %. Kelima operator tersebut dapat digunakan untuk bilangan bulat maupun riil. Berikut
adalah makna kelima operator tersebut:
Pada operator + ,- ,* , dan /, jika kedua operand bertipe bilangan bulat, hasilnya berupa
bilangan bulat. Jika terdapat operand yang bertipe float, hasilnya bertipe float.
71
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Operator sisa pembagian berguna untuk memperoleh sisa pembagian bilangan bulat.
Sebagai contoh, 3 % 2 memberikan 1. Nilai 1 merupakan nilai sisa pembagian 3 dangan 2.
Jika x mencatat hasil pembagian a dengan b, maka a % b menghasilkan a – b * x.
Fungsi itu suatu nama yang menyatakan sejumlah perintah. Jika nama fungsi dipanggil,
perintah-perintah yang berada di dalamnya dijalankan dan biasanya satu nilai akan
dikembalikan. Nilai inilah yang disebut nilai balik.
Berikut adalah sejumlah fungsi yang berguna untuk menangani operasi aritmatika:
Fungsi Keterangan
abs(x) Fungsi ini memberikan nilai balik berupa
nilai mutlak bilangan argumennya. Nilai
mutlak berupa bilangan positif.
constrain(x,a,b) Fungsi ini memberikan nilai balik berupa:
● x jika x berada dalam jangkauan a
dan b.
● a jika x lebih kecil daripada a.
● b jika x lebih besar dari pada b.
72
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
3 + 2 * 5
3 * 2 % 4
Pernyataan tersebut digunakan untuk menaikan nilai pada variabel x sebesar 1.
x++;
y--;
pernyataan x++; identik dengan x = x + 1;, sedangkan pernyataan y--; identik dengan y
= y – 1.
73
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Terdapat operator lain seperti operator += yang merupakan salah satu operator penugasan
majemuk. Pernyataan x
+=1 identik dengan x
= x + 1;
- - Decrement x- -
Artinya kurangi nilai x sebesar 1
+= Penjumlahan x += y
gabungan Artinya x = x + y
-= Pengurangan x -= y
gabungan Artinya x = x - y
*= Perkalian x *= y
gabungan Artinya x = x * y
/= Pembagian x /= y
gabungan Artinya x = x / y
|= OR Gabungan x |= y
(Biner) Artinya x = x OR y
Ekspresi Boolean
Ekspresi Boolean adalah ekspresi yang menghasilkan nilai benar (true) atau salah (false), 0
atau 1, HIGH atau LOW, dst. Ekspresi seperti ini sering digunakan pada pengambilan
keputusan dan perulangan (akan dibahas di materi selanjutnya). Operator Boolean biasanya
melibatkan operator perbandingan dan operator logika.
74
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Operator Pembanding
Operator pembanding atau kadang dinamakan operator relasional digunakan untuk
melakukan pembandingan. Arduino menyediakan sejumlah operator pembanding seperti
yang tercantum pada tabel berikut:
Operator Logika
Operator logika adalah operator yang dikenakan pada operand bertipe Boolean. Arduino
memiliki tiga jenis operator logika, yaitu &&, ||, dan !. Operator && dinamakan operator “dan”
dan operator || dinamakan “atau”. Adapun operator ! dinamakan operator “bukan”.
Operator && dan || melibatkan dua operator. Tabel berikut memperlihatkan sifat operasi
pada operator && dan ||.
Struktur Kontrol
Struktur kontrol adalah susunan perintah yang menentukan cara memperlakukan
perintah-perintah tersebut untuk dieksekusi. Secara prinsip, terdapat tiga jenis struktur
kontrol, yaitu: 1). Sekuensial, 2). Seleksi, 3). Perulangan. Gambar berikut menunjukan
perbedaan ketiga struktur kontrol tersebut secara visual:
Bisa tidaknya untuk menentukan urutan perintah dalam struktur kontrol sekuensial
ditentukan oleh tujuan yang terkandung di dalam perintah-perintah tersebut. Sebagai contoh,
dikehendaki untuk memberikan nilai 1 ke A, 2 ke B dan 3 ke C. Pada kasus ini, urutan
perintah tidak penting. Anda boleh menuliskan perintah seperti berikut:
A = 1;
76
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
B = 2;
C = 3;
B = 2;
C = 3;
A = 1;
Tmp = A;
A = B;
B = Tmp;
Tiga pernyataan ini digunakan untuk menukar isi variabel A dan B. Apabila urutan perintah
diubah, A dan B tidak bisa dipertukarkan.
Pernyataan IF
Arduino menyediakan pernyataan if, if…else, dan switch untuk menangani seleksi. Selain
itu, terdapat pula satu operator yang digunakan untuk menangani seleksi.
Bentuk i
f yang paling sederhana adalah seperti berikut;
if(kondisi) {
Pernyataan-pernyataan;
Sketsa : if.ino
77
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
Serial.begin(9600);
void loop() {
if (Serial.available()) {
float tegangan = Serial.parseFloat();
String keterangan = "Digital = 1";
if (tegangan < 2.5)
keterangan = "Digital = 0";
Serial.print("Tegangan: ");
Serial.print(tegangan);
Serial.println(" volt");
Serial.println(keterangan);
if (Serial.available())
Pernyataan berikut digunakan untuk membaca nilai tegangan yang dimasukkan dari Serial
Monitor:
78
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pernyataan:
digunakan untuk mengisi string “Digital = 1” ke variabel keterangan. Lalu, pernyataan
akan mengubah isi keterangan menjadi “Digital = 0” hanya kalau nilai tegangan lebih
kecil daripada 2,5. Sekiranya nilai tegangan tidak lebih kecil dari 2,5, isi keterangan tetap
berupa “Digital = 1”.
Contoh hasil pengujian dengan memasukan bilangan 3.5, 2.1, dan 2.5 secara berturut-turut
di Serial Monitor:
Pernyataan IF … ELSE
Pernyataan if..else digunakan untuk memilih salah satu dari dua kemungkinan yang akan
dieksekusi. Bentuk penggunaannya seperti berikut:
if (kondisi) {
Pernyataan-pernyataan A;
} else {
79
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pernyataan-pernyataan B; }
Sebagai contoh, kasus untuk menentukan isi keterangan pada sketsa if yang berupa
Else
Sketsa : if else.ino
void setup() {
Serial.begin(9600);
void loop() {
if (Serial.available()) {
float tegangan = Serial.parseFloat();
String keterangan;
if (tegangan < 2.5)
keterangan = "Digital = 0";
else
keterangan = "Digital = 1";
Serial.print("Tegangan: ");
80
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Serial.print(tegangan);
Serial.println(" volt");
Serial.println(keterangan);
Contoh hasil pengujian dengan memasukan bilangan 3.5, 2.1 dan 2.5 secara berurutan di
Serial Monitor:
Sketsa : tigakemungkinan.ino
void setup() {
Serial.begin(9600);
81
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
if (Serial.available()) {
int nilaiAnalog = Serial.parseInt();
Serial.println(nilaiAnalog);
Pada contoh ini, jika nilaiAnalog >=700 menghasilkan true, dimana pernyataan
Serial.println("Media kering"); dijalankan. Jika hasilnya berupa false, bagian if
berikutnya akan dijalankan. Dalam hal ini, jika nilaiAnalog >= 300 bernilai true,
pernyataan Serial.println("Media cukup basah"); dijalankan. Jika bernilai false,
pernyataan Serial.println("Media basah"); dijalankan.
Contoh hasil pengujian dengan memasukan bilangan 1000, 400 dan 200 secara
berturut-turut di Serial Monitor:
82
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Switch
Pernyataan switch digunakan untuk menangani pemilihan terhadap satu pilihan diantara
witch:
banyak pilihan. Bentuk penggunaan s
Switch (ekspresi) {
Case Nilai A:
Pernyataan-pernyataanA;
Break;
Case Nilai B:
Pernyataan-pernyataanB;
Break;
….
Case Nilai…:
Pernyataan-pernyataan…;
Break;
Default:
Pernyataan-pernyataan…; }
Apabila nilai ekspresi dengan Nilai A, maka pernyataan-pernyataan A sampai dengan break
dijalankan. Dalam hal ini, break akan mengakhiri switch. Jika ekpresi tidak berupa Nilai A,
Pernyataan-pernyataanB hingga break akan dijalankan sekiranya jika ekspresi bernilai sama
dengan Nilai B dan break menyebabkan switch berakhir. Hal ini dilakukan terus-menerus
83
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
hingga nilai terakhir. Jika pada case terakhir, nilai ekspresi tidak cocok, bagian default
akan dieksekusi.
Contoh berikut menggambarkan penggunaan switch:
void setup() {
Serial.begin(9600);
void loop() {
if (Serial.available()) {
int angka = Serial.parseInt();
Serial.println(angka);
switch(angka) {
case 1:
Serial.println("Transistor");
break;
case 2:
Serial.println("Resistor");
break;
case 3:
Serial.println("Diode");
break;
case 4:
Serial.println("Kapasitor");
break;
case 5:
Serial.println("Potensiometer");
break;
default:
84
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Contoh hasil pengujian dengan memasukkan bilangan 1, 2, 3, 4, 5 dan 6 secara berturut-turut
di Serial Monitor:
x ? a : b
85
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
dalam hal ini, x berupa ekspresi Boolean. Adapun a dan b menyatakan dua nilai yang salah
satu dari keduanya menjadi nilai balik ungkapan x ? a : b. Dalam hal ini, hasil ungkapan
rue atau b bernilai false.
tersebut berupa a jika x bernilai t
Contohnya:
Sketsa : operatorBerkondisi.ino
void setup() {
Serial.begin(9600);
void loop() {
if (Serial.available()) {
float tegangan = Serial.parseFloat();
Serial.print("Tegangan: ");
Serial.print(tegangan);
Serial.println(" volt");
Serial.println(keterangan);
Contoh hasil pengujian dengan memasukan bilangan 3,5, 2.1, dan 2.5 secara berturut-turut
di Serial Monitor:
86
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Perulangan
Arduino menyediakan pernyataan while, do..while dan for. Anda bisa memilih salah satu
yang paling tepat untuk menangani kasus yang Anda selesaikan. Namun, sebelum
melakukan hal itu, Anda perlu mengetahui mencoba masing-masing terlebih dahulu.
While
Bentuk pemakaian while:
While (kondisi) {
Pernyataan-pernyataan;
87
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : bilGenap.ino
void setup() {
Serial.begin(9600);
int bilangan;
void loop() {
}
Perintah
akan membuat
Serial.println(bilangan);
bilangan += 2;
dieksekusi terus-menerus hingga ungkapan bilangan <= 40 bernilai false. Pertama kali, nilai
bilangan berupa 4 setelah pernyataan berikut dijalankan:
88
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
bilangan = 4;
lalu, ungkapan bilangan <= 40 diperiksa. Karena saat ini bilangan bernilai 4, kondisi
tersebut bernilai true. Oleh karena itu, kode yang berada di dalam { dan } dijalankan.
Akibatnya, angka 4 dikirim ke port serial dan nilai bilangan menjadi 6. Setelah itu, bilangan
<= 40 diperiksa kembali. Tentu saja, hasilnya true. Akibatnya, nilai 8 dikirim ke port serial.
Hal ini dilakukan terus menerus sampai suatu ketika bilangan bernilai 42, yang membuat
kondisi bilangan <= 40 bernilai false dan mengakhiri while.
Adapun contoh berikut digunakan untuk menampilkan bilangan genap dari 40 menuju 4:
Sketsa : deretMenurun.ino
void setup() {
Serial.begin(9600);
int bilangan;
89
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
Perhatikan nilai awal yang diberikan adalah nilai 40 yang dilakukan oleh:
Bilangan = 40;
Akan membuat
Serial.println(bilangan);
bilangan -= 2;
DO .. WHILE
Bentuk pemakain Do…while:
Do {
Pernyataan-pernyataan;
} while (kondisi);
90
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Selama kondisi bernilai benar (true), kode yang berada di dalam { dan } dijalankan
terus-menerus. Contoh berikut digunakan untuk menampilkan bilangan genap antara 4 dan
40:
Sketsa : bilgenap2.ino
void setup() {
Serial.begin(9600);
int bilangan;
void loop() {
}
Adapun contoh berikut digunakan untuk menampilkan genap dimulai dari 40 hingga 4:
Sketsa : deretMenurun2.ino
void setup() {
Serial.begin(9600);
int bilangan;
91
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
}
FOR
Pernyataan for mempunyai bentuk penggunaan seperti berikut:
Pernyataan-pernyataan;
Contoh berikut digunakan untuk menampilkan bilangan genap antara 4 dan 40:
Sketsa : bilGenap3.ino
void setup() {
Serial.begin(9600);
Serial.println(bil);
}
}
92
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
Adapun contoh berikut untuk menampilkan genap dimulai dari 40 hingga 4:
Sketsa : deretMenurun3.ino
void setup() {
Serial.begin(9600);
int bilangan;
void loop() { }
Break;
Sketsa : break.ino
void setup() {
Serial.begin(9600);
93
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
break;
Serial.println(bil);
}
}
void loop() {
If (bil == 5)
Break;
Membuat b
reak; dijalankan. Akibatnya, for berakhir sehingga angka 5 tidak pernah muncul.
94
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : delapanLed.ino
void setup() {
for (int pin = 2; pin <= 9; pin++){
pinMode(pin, OUTPUT);
}
}
void loop() {
for (int pin = 2; pin <= 9; pin++) {
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
}
}
95
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
pinMode(pin, OUTPUT);
Perintah ini digunakan untuk mengatur mode pin 2 hingga 9 sebagai OUTPUT. Tanpa for,
perintah yang perlu ditulis menjadi seperti berikut:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
Perintah ini digunakan untuk mengatur pin 2 hingga 9 secara bergantian agar LED yang
terhubung dengan pin yang sesuai dengan variabel pin menyala selama satu detik. Hal ini
yang membuat LED tampak menyala bergerak dari kiri ke kanan. Tanpa for, Anda harus
menulis kode yang Panjang atau dengan melakukan trik tertentu. Sudah tentu, kehadiran for
mempermudah menuangkan kode.
96
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Objek
Objek adalah bentuk dari suatu kelas, yang dapat mengandung anggota data dan fungsi
anggota (atau secara khusus dinamakan metode). Serial adalah contoh objek bawaan yang
disediakan oleh Arduino, yang digunakan untuk menangani port serial. Sebagai contohnya,
pada pemanggilan Serial.prntln(), println adalah fungsi anggota milik objek Serial.
Sering kali kita perlu membuat sendiri suatu objek berdasarkan kelas yang tersedia di
Arduino atau tersedia karena kita melibatkan suatu pustaka. Pada materi selanjutnya, Anda
akan mempraktekkan penggunaan kelas Keypad untuk membentuk objek bernama Keypad
seperti berikut:
string nama;
Anda sebenarnya membuat objek. Dalam hal ini, nama adalah objek yang berisi string
kosong dan string adalah nama kelas. Lalu, Anda bisa mengakses jumlah karakter dalam
string kapan saja dengan menggunakan fungsi length(). Jadi, nama.length() akan
menghasilkan jumlah karakter dalam objek nama.
Fungsi
Semua sketsa yang pernah Anda buat sebenarnya selalu melibatkan fungsi. Paling tidak,
Anda menuliskan definisi s
etup() dan l
oop(). Contoh definisi fungsi:
void setup() {
Serial.begin(9600);
97
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pada definisi tersebut, void setup() adalah bagian judul fungsi dan {
Serial.begin(9600); } adalah tubuh fungsi.
tipeNilaiBalik namaFungsi(daftar_argumen_jika_ada) {
pernyataan-pernyataan;
Fungsi bawaan abs adalah contoh fungsi yang memberikan nilai balik berupa nilai absolut
bilangan yang menjadi argumennya. Sebagai contoh, abs(-3.5) ataupun abs(3.5)
memberikan nilai balik berupa 3.5. nah, pada keadaan seperti ini, tipe nilai balik float, yang
berarti bilangan riil.
Fungsi yang memberikan nilai balik harus mengandung perintah yang digunakan untuk
menyebutkan nilai balik. Pernyataan return digunakan untuk keperluan ini. Pada kasus fungsi
absolut, pernyataan return berupa:
atau
perhatikan terlebih dahulu ekspresi bil < 0 ? -bil : bil;. Ekspresi ini melibatkan
operator berkondisi. Ekspresi ini menghasilkan -bil sekiranya bil < 0 bernilai true.
Sebaliknya, jika ekspresi bil < 0 bernilai false, nilai baliknya berupa bil. Hasil dari
ekspresi bil < 0 ? -bil : bil inilah yang menjadi nilai balik fungsi absolut. Contohnya
sketsa yang mendefinisikan fungsi absolut():
Sketsa : contohNilaibalik.ino
void setup() {
Serial.begin(9600);
Serial.println(absolut(-3.5));
Serial.println(absolut(3.5));
}
98
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
Hasil eksekusi
Sketsa : duaArgumen.ino
void setup() {
Serial.begin(9600);
Serial.print(duplikasi('-', 10));
Serial.print("0");
Serial.print(duplikasi('>', 5));
}
99
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
return hasil;
}
Antara deklarasi dua parameter (argument) dipisahkan oleh koma. Pada pemanggilan
fungsi, kedua argument dipisahkan oleh koma. Contohnya
Duplikasi(‘-‘, 10)
Hasil pengujian:
Array
Array atau larik adalah suatu nama yang dapat digunakan untuk menyimpan sejumlah data
yang sejenis (setipe). Sebagai contohnya, kita memiliki 5 komponen. Jika masing-masing
dicatat dalam satu variabel, diperlukan 5 variabel yang dideklarasikan sebagai berikut:
100
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Komponen1 = ‘Transistor’;
Komponen2 = ‘Resistor’;
Komponen3 = ‘LDR’;
Komponen4 = ‘Potensiometer’;
Komponen5 = ‘Thermistor’;
Untuk mengisikan data ke array, indeks perlu disertakan, yang ditulis didalam [ ]. Indeks
berupa bilangan bulat yang dimulai dari 0. Indeks 0 menyatakan elemen pertama array.
Contoh:
Komponen[0] = ‘Transistor’;
Komponen[1] = ‘Resistor’;
Komponen[2] = ‘LDR’;
Komponen[3] = ‘Potensiometer’;
Komponen[4] = ‘thermistor’;
Sketsa : contohArray.ino
void setup() {
Serial.begin(9600);
// Deklarasi array
String komponen[5];
101
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Serial.println(komponen[j]);
}
}
void loop() {
Hasilnya
Jika Anda bermaksud membentuk array yang nilainya sudah baku, array dapat diinisialisasi
sewaktu dideklarasikan. Yang menyatakan mendeklarasikan namaBulan yang mempunyai
13 elemen bertipe string. Contoh:
String namaBulan[13] = {
"November", "Desember" };
Sketsa yang menggunakan deklarasi seperti itu dapat dilihat dibawah ini:
102
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa :namaBulan.ino
String namaBulan[13] = {
"", "Januari", "Februari", "Maret",
"April", "Mei", "Juni", "Juli",
"Agustus", "September", "Oktober",
"November", "Desember"
};
void setup() {
Serial.begin(9600);
}
void loop() {
Hasilnya:
103
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Data pada peranti keypad ini hendak dinyatakan dalam bentuk array
untuk kepentingan suatu pemrosesan. Nah, data tersebut dapat
dinyatakan seperti berikut:
char tombol[4][3] = {
};
Pada bentuk seperti ini, setiap elemen diakses dengan menggunakan dua indeks, yakni
indeks untuk baris dan indeks untuk kolom.
104
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sebagai contoh, elemen bernilai ‘8’ mempunyai indeks barus berupa 2 dan indeks kolom 1
penulisannya: tombol 8 maka array tombolnya [2] [1].
Sketsa : table.ino
char tombol[4][3] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
void setup() {
Serial.begin(9600);
}
}
void loop() {
Hasilnya:
Pengolahan String
String adalah deretan karakter yang bisa memiliki nol,satu, atau banyak karakter. String
banyak diperlukan dalam aplikasi terutama berkedudukan sebagai perintah dalam bentuk
teks. Hal terpenting yang perlu dipelajari adalah cara memanipulasi string. Sebagai contoh,
jika Anda menggunakan string berkelas string, operator + dapat dipakai untuk
menggabungkan string atau karakter ke string misalnya, dideklarasikan suatu string seperti
berikut:
String st = “”;
st = st + ‘a’;
st = st + ‘b’;
106
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
st akan berisi string “ab”. Cara seperti ini bermanfaat untuk membentuk string berdasarkan
peranti yang menghasilkan keluaran dalam bentuk karakter, misalnya pada keypad.
Selain itu, string berkelas string memiliki fungsi-fungsi anggota yang bermanfaat untuk
memproses string, seperti untuk mengubah setiap huruf di dalam string menjadi huruf
kapital atau sebaliknya, mengambil substring, atau membuang space putih yang terletak di
awal dan akhir string. Silahkan untuk mempelajari isi tabel berikut.
107
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : fungsiString.ino
void setup() {
Serial.begin(9600);
Serial.println("0123567890123456");
Serial.println(teks);
108
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Serial.println(teks.length());
teks.trim();
Serial.println(teks);
Serial.println(teks.length());
teks.toUpperCase();
Serial.println(teks);
teks.toLowerCase();
Serial.println(teks);
}
void loop() {
109
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
BAB V
Ikhtisar Materi
Pada materi ini Anda akan dikenalkan beberapa piranti keluaran
dimana piranti keluaran ini akan digunakan sebagai aktuator dan
display dalam mempelajari Arduino.
Pelajaran
Syarat Pengetahuan
- Pengetahuan Mengenai Perbedaan Input dan Output
- Pernah Mencoba Salah Satu Bahasa Pemrograman
- Paham Mengenai Struktur Kontrol
Bahan
Perangkat Aksesoris Bahan Lain
Arduino UNO Resistor 220Ω -
Kabel USB Kabel Jumper
Komputer LED
Push Button
Deskripsi
Tujuan Belajar 1. Mengenal pengoperasian output
2. Menggunakan library
Kosa Kata
struktur kontrol
output, servo, 7 segment
110
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Motor Servo
Motor servo adalah perangkat keluaran yang perputaran nya dapat diatur di sudut tertentu
dia harus berhenti. Misalnya saja berputar sebanyak 90 derajat. Ada banyak sekali jenis
motor servo, tiap jenis tersebut biasanya dibedakan dengan torsi nya. Torsi berhubungan
dengan daya putar motor atau tenaga dari motor tersebut. Torsi yang besar dapat memutar
beban yang lebih berat. Namun kali ini karena kita dalam proses belajar maka kita akan
menggunakan motor servo SG90 dengan alasan harga yang sangat murah. Motor servo
tersebut seperti diperlihatkan pada gambar berikut.
Motor servo mempunyai 3 kabel:
● Merah dihubungkan ke sumber tegangan 5V.
● Coklat dihubungkan ke ground.
● Orange dihubungkan ke pin Digital Arduino untuk mengontrol posisi motor.
Biasanya pengaplikasian motor servo ini terdapat pada perwujudan lengan robot dan
berbagai bentuk lain yang memerlukan gerakan seperti hal nya sendi pada tubuh. Perlu
diketahui biasanya motor servo ini hanya bisa digerakan dengan sudut putaran 180 derajat.
Buatlah rangkaian seperti berikut:
111
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Adapun sketsa yang digunakan untuk menguji rangkaian diatas adalah seperti berikut.
Sketsa : servo.ino
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(6);
}
void loop()
{
myservo.write(90);
}
Pada kode program #include <Servo.h> ini artinya kita menggunakan library atau kode
program lain di luar kode program yang kita gunakan. Dalam hal ini kode program tersebut
memiliki nama berkas Servo.h. Library ini telah ada secara default pada Arduino IDE, untuk
menambahkannya maka kita masuk ke Sketch -> Include Library - > Servo.
112
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Kemudian pada baris Servo myservo kita menggunakan object Servo yang nantinya kita
gunakan untuk mengendalikan servo. Pada kode program myservo.attach(6); ini adalah
perintah untuk memberitahu Arduino bahwa servo ada pada pin 6. Kemudian untuk memutar
servo ke posisi tertentu maka digunakan perintah myservo.write(90); dimana 90 adalah
posisi servo berputar dalam satuan derajat.
113
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Servo adalah perangkat yang pintar dimana servo dapat menerima data mengenai posisi
hanya dengan menggunakan satu pin. Di dalam servo terdapat motor driver dan sebuah
sirkuit yang dapat mengirimkan kembali data untuk dapat memastikan bahwa servo telah
mencapai posisi yang telah ditentukan. Lalu bagaimana cara kerja servo yang hanya
menggunakan sinyal digital saja (padahal bayangan kita adalah sinyal analog karena dia
dapat memposisikan di lebih dari 2 posisi).
Untuk mengendalikan servo kita perlu memahami cara kerja PWM karena cara kerjanya
hampir mirip dengan teknik PWM. Setiap cycle pada sinyal tersebut dibaca per 20 milidetik
dan sebagian besar nilainya adalah LOW. Setiap permulaan perputaran sinyal maka
diposisikan sebagai HIGH untuk waktu 1 dan 2 milidetik. Pada sinyal waktu 1 milidetik maka
dinyatakan 0 derajat dan pada waktu 2 milidetik dinyatakan sebagai 180 derajat. Metode ini
adalah metode yang baik, grafik diatas dapat kalian jadikan bayangan bagaimana cara kerja
servo. Jika ada listrik selama 2 milidetik maka 180 derajat, jika ada listrik selama 1 milidetik
maka 0 derajat, jika ada listrik selama 1.5 milidetik maka 90 derajat, dst.
114
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Prinsip kerja piezo buzzer ini adalah dengan memberikan listrik ke material piezoelektrik
sehingga ukuran atau bentuk dari material tersebut berubah yang akhirnya perubahan
tersebut menghasilkan suara. Namun ketika tidak ada listrik di material piezoelektriknya
maka bentuk nya akan kembali ke asalnya. Lalu bagaimana gerakan tersebut dapat
menghasilkan suara? jawabannya adalah sama seperti penghasil suara lainnya yaitu dengan
membuat getaran, perubahan bentuk tadi akan menghasilkan getaran.
Speaker elektrodinamis dibuat dengan membiarkan listrik mengalir melalui gulungan kawat
di depan medan magnet. Gaya tarik menarik antara kawat dan magnet ini digunakan untuk
menggerakan kerucut pada speaker yang akhirnya menghasilkan getaran, dan tentu saja
getaran ini menghasilkan suara. Magnet, kawat, dan kerucut tadi memiliki keterbatasan fisik
pada faktor tingkat ketipisan bahan nya sehingga tidak efektif untuk menghasilkan suara
dengan kualitas atau volume yang dapat didengar manusia. Sementara piezoelektrik dapat
dibuat dengan material yang sangat tipis dengan masih tetap dapat mengeluarkan suara
yang dapat diterima telinga. Hal lainnya yang membuat piezoelektrik ini lebih baik di sisi
tertentu adalah karena dapat berfungsi dengan melakukan kontak langsung terhadap
substansi selain udara, itulah mengapa piezoelektrik dapat digunakan meski di dalam air,
berbeda dengan speaker elektromagnetis tradisional yang harus terlindungi dari air.
115
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Di pasaran ada banyak produsen pembuat perangkat ini, ada yang berbentuk modul ada pula
yang tidak. Kali ini kita akan belajar menggunakan buzzer tanpa menggunakan modul.
Buzzer memiliki dua pin yaitu positif dan negatif tentunya, kita
dapat mengatur tinggi rendah nya nada pada buzzer, tentu saja
itu artinya kita perlu menggunakan sinyal analog oleh karena itu
kita gunakan pin PWM.
https://github.com/bhagman/Tone#ugly-details
Sketsa : buzzer.ino
void setup()
{
pinMode(11, OUTPUT);
}
void loop()
{
tone(11, 1400);
delay(500);
noTone(11);
delay(500);
116
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pada setup() tentu kita harus memberitahu Arduino bahwa pin 11 akan kita gunakan
sebagai output. Pada loop() terdapat kode program tone(11, 1400); dimana kode ini
berarti kita memberikan perintah pada Arduino untuk mengeluarkan frekuensi 1400 hz. Perlu
dicatat 1400 disini adalah frekuensi dan bukan volume. Semakin besar frekuensi maka
semakin tinggi nada yang dihasilkan, sama seperti piano dimana satu tombol mewakili satu
tanda nada. Lalu terdapat perintah noTune(11); yang berarti kita memerintahkan Arduino
bahwa jangan keluarkan bunyi di pin 11.
Tidak dimungkinkan untuk mengeluarkan suara di bawah 31 hz karena kecepatan
microcontroller yang digunakan Arduino UNO memiliki kecepatan 16 MHz. Lebih detailnya
silahkan melihat penjelasan di h
ttps://github.com/bhagman/Tone#ugly-details.
117
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dengan dasar-dasar yang diuraikan di tabel tersebut, membuat huruf seperti a dan b
dimungkinkan. Contoh jika kita ingin menampilkan angka 1 pada seven segment common
anode maka kita perlu menyalakan LED b dan c. Sekarang, marilah untuk menyusun
118
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : seg7katode.ino
const byte SEGMEN[10] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
119
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
Serial.begin(9600);
void loop() {
// Tampilkan 0 s/d 9
for (int j = 0; j < 10; j++) {
Serial.println(j);
tampilkanAngka(j);
delay(2000);
}
delay(3000);
}
if (bit == HIGH)
digitalWrite(PIN_SEGMEN[j], HIGH);
else
120
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
digitalWrite(PIN_SEGMEN[j], LOW);
}
}
Data penyusun angka di penampilan tujuh segmen dinyatakan dengan:
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
Adapun array berikut digunakan untuk menyatakan pin-pin yang secara berturut-turut
digunakan untuk segmen A,B,C,D,E,F,G dan DP:
mengingat setiap LED akan dikontrol oleh Arduino, mode OUTPUT digunakan untuk semua
pin tersebut. Hal ini dilakukan oleh pernyataan:
pinMode(PIN_SEGMEN[j], OUTPUT); }
di loop(), perintah yang diberikan adalah untuk menampilkan angka 0 hingga 9. Hal ini
dilaksanakan oleh:
121
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Serial.println(j);
tampilkanAngka(j);
delay(2000);
Proses untuk menampilkan sebuah angka ditangani oleh fungsi tampilkanAngka(). Dalam
hal ini, bitread() digunakan untuk memperoleh sebuah bit, yang selanjutnya digunakan untuk
menentukan LED yang sesuai dengan bit tersebut hendak dinyalakan (HIGH) atau
dipadamkan(LOW).
Sketsa : seg7Anode.ino
const byte SEGMEN[10] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110 // 9
};
void setup() {
Serial.begin(9600);
122
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
pinMode(PIN_SEGMEN[j], OUTPUT);
}
void loop() {
// Tampilkan 0 s/d 9
for (int j = 0; j < 10; j++) {
Serial.println(j);
tampilkanAngka(j);
delay(2000);
}
delay(3000);
}
if (bit == HIGH)
digitalWrite(PIN_SEGMEN[j], LOW);
else
digitalWrite(PIN_SEGMEN[j], HIGH);
}
}
Secara prinsip, kode ini menyerupai pada sketsa yang mengendalikan penampilan tujuh
segmen berjenis common cathode. Hal ini yang membedakan, pada jenis common anode,
LED menyalakan kalau diberikan isyarat LOW atau 0.
123
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Untuk mempermudah dalam program penampil 7 segmen yang mengandung empat angka,
pustaka bernama Sevseg dapat digunakan. Pustaka ini dapat di unduh di:
www.//github.com/DeanIsMe/SevSeg.
Sebelumnya kita pernah menggunakan sebuah library yaitu untuk mengendalikan motor
servo. Ada berbagai komponen lain yang terkadang memerlukan library yang tidak
disediakan oleh Arduino IDE, oleh karena itu kita perlu memasang sendiri library tersebut
dengan cara masuk ke menu S
ketch -> I nclude Library -> Add Zip Library.
124
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : Seg7empatAngka.ino
#include "SevSeg.h"
125
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
byte pinAngka[] = {14, 15, 16, 17};
byte pinSegmen[] = {10, 9, 8, 7, 6, 5, 4, 3};
void loop() {
static unsigned long timer = millis();
sevseg.refreshDisplay();
}
Penggunaan pustaka S
evSeg ditandai dengan baris:
#include "SevSeg.h"
Definisi konstanta berikut digunakan untuk menentukan batas waktu untuk memulai
penggantian angka yang akan ditampilkan di penampil tujuh segmen:
126
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Adapun definisi berikut digunakan untuk menentukan jumlah angka pada penampil 7
segmen:
SevSeg sevseg;
Penentuan array yang menyatakan pin-pin yang digunakan untuk mengatur segmen pada
penampil 7 segmen dan pin-pin yang mengontrol setiap angka di penampil 7 segmen
dilakukan oleh dua pernyataan berikut:
angka 14 menyatakan pin A0, angka 15 menyatakan pin A1, angka 16 menyatakan pin A2,
dan angka 17 menyatakan pin A3.
argument pertama menyatakan jenis penampil tujuh segmen yang digunakan. Jika jenisnya
adalah common anode, gunakan konstanta COMMON_ANODE. Argument kedua
menyatakan jumlah digit pada penampil 7 segmen. Argument ketiga berupa array yang berisi
daftar pin yang digunakan dimulai dari pin untuk mengakses segmen A hingga DP.
Argument keempat berupa array berisi pin-pin pengontrol angka di penampil 7 segmen.
Perintah berikut digunakan untuk mengontrol kecerahan pada penampil 7 segmen sebesar
90%:
sevseg.setBrightness(90);
variabel statis adalah variabel lokal yang dideklarasikan hanya sekali saja ketika loop()
dipanggil yang pertama kali. Nilai variabel ini tidak hilang ketika loop() berakhir. Perintah
127
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
berikut digunakan untuk mengeksekusi perintah yang berada di dalam { } kalau selisih antara
waktu sekarang dan timer melebihi nilai INTERVAL:
jika ekspresi milis() - timer > INTERVAL terpenuhi, pernyataan pertama yang dieksekusi
adalah timer = millis();
Pernyataan berikut digunakan untuk memperoleh bilangan riil secara acak dengan nilai
kurang dari 100:
Selanjutnya,
digunakan untuk mengalikan bilangan riil dengan angka 100. Tujuannya adalah untuk
memperoleh bilangan bulat yang mengandung dua digit angka pecahannya. Sebagai contoh,
bilangan riil 56,78 akan diubah menjadi 5678. Bilangan inilah yang dikirimkan ke pernyataan:
sevseg.setNumber(bilangan, 2);
dalam hal ini, angka 2 menyatakan letak tanda DP berada pada digit kedua.
sevseg.refreshDisplay();
128
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
seperti itu, model ini dinamakan TM1637 karena menggunakan IC TM1637 untuk mengontrol
penampil tujuh segmen.
Transmisi data serial antara Arduino dan modul ini sangat rumit. Jadi kita akan
menggunakan pustaka yang ditulis untuk modul ini agar dapat membantu pengiriman data.
Yang perlu Anda lakukan adalah mengunduh pustaka tersebut dan memanggilnya dalam
program aplikasi. Setelah file header dimasukkan, controller melakukan komunikasi dengan
sendirinya dan karakter tampilan yang diperlukan akan dikirim ke modul. Pustaka ini dapat
diunduh di: h
ttps://github.com/avishorp/TM1637/releases.
1. Modul dapat dihubungkan ke sistem apapun dengan hanya menggunakan 2 (dua)
pin. Untuk menampilkan karakter yang kita inginkan maka hanya perlu melalui dua
pin ini. Dengan demikian kita dapat menghemat pin yang lain di Arduino untuk
menangani input dan output yang lainnya.
2. Harganya murah, ada banyak display lain namun dengan harga yang lebih mahal.
3. Modul ini tidak membutuhkan power yang besar dan bisa diterapkan pada perangkat
mobile.
4. Banyak sekali library dan program yang telah dibuat untuk menggunakan modul ini
sehingga memudahkan kita pada saat pemasangan.
129
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pin CLK dihubungkan ke pin 2 arduino. Pin DIO dihubungkan ke pin 3 arduino. Pin VCC
dihubungkan ke pin 5V Arduino. Pin GND dihubungkan ke pin GND Arduino.
Sketsa : tm1637Formatjam.ino
#include <TM1637Display.h>
void setup()
{
display.setBrightness(0x0a);
}
void loop()
{
130
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
display.showNumberDec(8888);
}
Penggunaan pustaka TM1637 ditandai dengan baris:
#include "TM1637Display.h"
Pin Arduino yang dihubungkan ke pin CLK dan DIO didefinisikan melalui:
pernyataan berikut digunakan untuk membentuk objek yang digunakan untuk mengakses
penampil 7 segmen:
argument pertama dan kedua menyatakan pin-pin di Arduino yang dihubungkan ke pin CLK
dan DIO. DIO adalah pin untuk data input dan output dan CLK adalah pin untuk clock.
display.setBrightness(0x0a);
display.showNumberDec(8888);
131
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Piranti Masukan
BAB VI
Ikhtisar Materi
Pada materi ini Anda akan dikenalkan beberapa piranti masukan
dimana piranti masukan ini akan digunakan sebagai sensor dalam
mempelajari Arduino.
Pelajaran
Syarat Pengetahuan
- Pengetahuan Mengenai Perbedaan Input dan Output
- Pernah Mencoba Salah Satu Bahasa Pemrograman
- Paham Mengenai Struktur Kontrol
- Paham Perbedaan Data Analog dan Digital
Bahan
Perangkat Aksesoris Bahan Lain
Arduino UNO Resistor 220Ω -
Kabel USB Kabel Jumper
Komputer LED
Push Button
Deskripsi
Tujuan Belajar 1. Mengenal pengoperasian output
2. Menggunakan library
Kosa Kata
struktur kontrol
output, servo, 7 segment
132
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sensor
Sensor adalah peranti yang mengukur besaran nyata dalam bentuk analog menjadi data
yang dapat dipahami oleh komputer dengan menggunakan ADC (analog to digital converter).
Dalam terminology yang lebih mudah dipahami, sensor adalah peranti yang mengubah
parameter fisik seperti temperature, tekanan, kecepatan, atau kelembaban, menjadi isyarat
listrik. Sebagai contoh, temperatur dapat diterjemahkan menjadi tegangan listrik.
Berdasarkan tegangan yang dapat, temperature dapat dihitung.
Module KY-018 mengandung tiga pin dengan nama berupa S, +, dan -. Untuk modul lain
Namanya dapat berupa A0, GND, VCC, dan D0. Pada modul yang berisi 4 pin, gunakan A0,
VCC (identik dengan listrik +) dan GND (identik dengan listrik -).
Sensor-sensor lain pun yang menggunakan modul buatan keyes seperti ini cara
memprogramnya sama dan cara memasang pin nya sama. Yang perlu kita perhatikan
adalah bentuk datanya, sebagai contoh pada modul LDR ini tentu saja menggunakan data
133
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
analog karena untuk mendapatkan nilai resistansi berdasarkan cahaya (seberapa cerah
cahaya nya), oleh karena itu kita gunakan pin A0 pada modul.
Rangkaian yang diperlukan untuk menguji modul LDR adalah seperti berikut:
Pin S dihubungkan ke pin analog A0. Pin + (tengah) dihubungkan ke pin 5V. pin –
dihubungkan ke pin GND.
Sketsa : ujiLDR.ino
void setup() {
Serial.begin(9600);
}
void loop() {
int nilaiLDR = analogRead(A0);
134
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Serial.println(nilaiLDR);
delay(500);
}
Sketsa diatas untuk mendapatkan nilai cahaya yang kemudian kita tampilkan di serial
monitor. Nilai dari sensor dapat kita lihat pada serial monitor, ini lah salah satu fungsi serial
monitor dimana kita tidak perlu perangkat output untuk hanya sekedar melihat nilai keluaran
dari suatu sensor.
Kode program analogRead(A0) adalah untuk membaca nilai analog dari pin A0. Nilai
maksimal dari pembacaan analog pada pin analog adalah sebesar 1023 dan nilai
minimalnya adalah 0. Kita juga dapat menggunakan pin PWM sebagai input namun jika kita
menggunakan PWM maka nilai maksimal nya adalah 255 dan nilai minimalnya adalah 0. Hal
ini karena besar data maksimal pada pin digital adalah 8 bit dan pada pin digital adalah 10
bit.
Untuk inputan melalui pin analog maka kita sebenarnya tidak perlu melakukan inisialisasi
dengan pinMode(A0, INPUT); karena Arduino sendiri mengetahui bahwa pin tersebut
menggunakan ADC.
Berikutnya, kita akan membuat LED yang dapat menyala otomatis ketika cahaya di
sekitarnya kurang, dan akan mati otomatis ketika cahaya di sekitarnya cukup.
135
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : ledLDR.ino
const int PIN_LED = 7;
const int AMBANG = 600;
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
int nilaiLDR = analogRead(A0);
if (nilaiLDR >= AMBANG) {
digitalWrite(PIN_LED, HIGH);
} else {
digitalWrite(PIN_LED, LOW);
}
136
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Nilai ambang disini adalah sesuai dengan kebutuhan, tidak harus 600 karena tergantung
kondisi di lingkungan, kita lah yang menetapkan ambang tersebut. Untuk menentukannya
maka harus melihat nilai nya di serial monitor berapa nilai nya ketika ada cahaya dan berapa
nilainya ketika cahaya berkurang, dari situlah kita bisa menentukan saat nilai diatas atau
dibawah berapa LED akan menyala.
Curah Hujan
Untuk mengukur dan mendeteksi apakah
cuaca sedang hujan atau tidak, maka
kita dapat menggunakan sensor curah
hujan.
Sensor menghasilkan tegangan output sesuai dengan besar hambatannya, dengan nilai
besar output ini lah kita dapat menentukan seberapa besar intensitas hujan nya.
137
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Umumnya sensor hujan ini memiliki 2 (dua) komponen utama yang terpisah yaitu:
Papan Sensor
Sensor ini berisi panel dengan serangkaian jalur tembaga yang terbuka agar dapat terkena
air. Jalur-jalur tersebut tidak terhubung, dan akan terhubung jika terkena air karena seperti
yang kita tahu bahwa air adalah penghantar listrik yang baik.
Modul
138
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : deteksiAir.ino
void setup() {
Serial.begin(9600);
}
void loop() {
int nilaiA0 = analogRead(A0);
Serial.println(nilaiA0);
delay(500);
}
Kelembaban Tanah
Sensor ini sama seperti sensor curah hujan yaitu menggunakan modul, yang berbeda
adalah bentuk panel nya dimana pada sensor curah hujan panel tersebut berbentuk persegi
empat, sementara pada sensor kelembaban panel tersebut berbentuk seperti garpu tala
yang berfungsi untuk ditancapkan pada tanah.
139
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Pin A0 dihubungkan ke pin analog A0. Pin GND dihubungkan ke pin GND Arduino. Pin VCC
dihubungkan ke pin 5V Arduino.
Adapun sketsa yang digunakan untuk menguji rangkaian di atas adalah seperti berikut:
Sketsa : kelembaban.ino
void setup() {
Serial.begin(9600);
}
void loop() {
int nilaiA0 = analogRead(A0);
Serial.println(nilaiA0);
140
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
delay(1000);
}
Sensor Jarak
Untuk mengukur jarak, kita bisa menggunakan banyak media beberapa diantaranya adalah
menggunakan cahaya ataupun suara. Untuk mengetahui jarak, sebelumnya kita harus tahu
terlebih dahulu bagaimana cara mengetahui jarak. Rumus yang digunakan adalah:
S = t.v
S = Jarak
t = Waktu Tempuh
v = Kecepatan
141
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sebagai contoh, kita tahu kecepatan perambatan suara di udara adalah 1.224 km/jam atau
kita dapat mengkonversinya menjadi 0.0343 cm/µs (µs adalah satuan internasional untuk
microsecond dimana 1 µs = 0.000001 detik). Setelah suara tersebut dipantulkan, suara tadi
diterima oleh receiver setelah 2000µs. Maka cara menghitungnya adalah:
S = (v . t) / 2
S = (0.0343 cm/µs . 2000 µs) / 2
S = 68,2 cm / 2
S = 34,3 cm
Ada pertanyaan yaitu mengapa pada rumus kita harus membagi nya dengan 2? hal itu
karena jarak antara sensor dan objek sebenarnya hanya setengahnya sejak suara
dikeluarkan. Karena suara merambat dari sensor ke objek dan kembali lagi ke sensor.
Untuk sensor jarak yang menggunakan media suara maka akan menggunakan suara
ultrasonik, yaitu suara yang gelombangnya diatas 20.000 Hz. Suara ini tidak dapat didengar
oleh telinga manusia (nadanya sangat tinggi), sedangkan manusia hanya bisa mendengar
suara dengan frekuensi 20 Hz sampai dengan 20.000 Hz. Untuk suara yang memiliki
frekuensi dibawah 20 Hz kita namakan infrasonik. Hewan seperti kucing dapat mendengar
suara infrasonik, dan hewan seperti kelelawar dan paus dapat mendengar suara ultrasonik.
142
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
3. Trig dihubungkan ke pin digital Arduino. Pin ini berfungsi untuk mengirimkan isyarat
dalam bentuk gelombang suara berfrekuensi 40 KHz.
4. Echo dihubungkan ke pin digital Arduino. Pin ini bertanggung jawab untuk menerima
gelombang yang dipantulkan oleh objek yang berada di depan sensor.
Pada bagian depan sensor HC-SR04 kita dapat melihat silinder putih, itu adalah ultrasonic
transducer. Satu sebagai transmitter (mengeluarkan suara ultrasonik) dan satu lagi sebagai
receiver (menerima suara ultrasonik). Untuk dapat mengeluarkan suara maka kita perlu
memberikan listrik pada pin Trig setidaknya setiap 10 µs. Dengan begitu sensor akan
mengeluarkan suara dengan siklus 8 kali pada frekuensi 40 kHz (40.000 Hz). Lalu suara
akan merambat dan memantul dari objek ke Echo dimana pada pin Echo ini akan
memberikan output berupa waktu yang ditempuh suara untuk merambat dalam satuan
microsecond.
143
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Kita dapat menggunakan fungsi pulseIn() pada kode Arduino untuk membaca panjang
dari gelombang dari Echo. Setelah itu kita dapat menggunakan rumus yang telah dijelaskan
diatas untuk mengetahui jarak dari objek.
Spesifikasi Sensor
Tegangan 5 V
Frekuensi 40 kHz
Resolusi 3 mm
144
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Setiap perangkat elektronik yang diproduksi memiliki datasheet, jika kita ingin mengetahui
segala hal tentang perangkat tersebut, maka kita harus melihat datasheet tersebut.
https://www.makerguides.com/wp-content/uploads/2019/02/HCSR04-Datasheet.pdf
Sketsa yang digunakan untuk menguji rangkaian di atas adalah seperti berikut:
Sketsa : ukurJarak.ino
#define trigPin 2
#define echoPin 3
long durasi;
int jarak;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
145
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Serial.print("Jarak = ");
Serial.print(jarak);
Serial.println(" cm");
delay(50);
}
#define trigPin 2
#define echoPin 3
Pernyataan #define digunakan untuk memberi nama pada nilai konstan. Kompiler akan
mengganti referensi ke konstanta ini dengan nilai yang ditentukan ketika program
dikompilasi. Jadi dimanapun kita menyebutkan t
rigPin, kompiler akan menggantinya
dengan nilai 2 saat program dikompilasi.
long durasi;
int jarak;
146
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
durasi digunakan untuk menyimpan nilai antara pengiriman dan penerimaan suara. Dan
variabel jarak digunakan untuk menyimpan hasil perhitungan jarak.
Pada prosedur setup() kita memberikan perintah pada Arduino bahwa pin Trig ini kita
gunakan sebagai output dan pin echo kita gunakan sebagai input.
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Lalu pada prosedur loop(), kita perintahkan agar sensor mengeluarkan suara selama 10 µs.
Sebagai catatan agar kita mendapatkan sinyal yang bersih maka kita harus mematikan pin
trigger selama 5 µs, jadi suara akan dikeluarkan setiap 5 µs.
digitalWrite(trigPin, LOW);
delayMicroseconds(5);|
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Selanjutnya kita perlu membaca panjang gelombang yang diterima oleh pin Echo. Kita
gunakan fungsi pulseIn() untuk dapat melakukan ini. Fungsi ini untuk menghitung waktu
tunggu antara pin mulai posisi HIGH ke posisi LOW. Setelah itu baru kita kalkulasi jaraknya
menggunakan rumus yang telah dibahas sebelumnya.
Agar pembacaan tidak terlalu cepat maka kita tambahkan delay tiap selesai menampilkan
jarak.
147
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Menggunakan Library
Kita dapat menggunakan library yang bernama NewPing yang ditulis oleh Tim Eckel yang
dapat digunakan untuk berbagai macam jenis sensor jarak menggunakan ultrasonik. Versi
terbaru dari library ini dapat diunduh di:
https://bitbucket.org/teckel12/arduino-new-ping/downloads/
Anda mungkin memperhatikan bahwa kode program yang menggunakan pustaka NewPing
jauh lebih pendek daripada kode yang kita gunakan sebelumnya. Selain itu, library NewPing
menyertakan beberapa fitur bagus lainnya. Misalnya memungkinkan kita untuk mengatur
jarak maksimal.
Sketsa : ukurJarak_NewPing.ino
#include <NewPing.h>
#define trigPin 2
#define echoPin 3
#define MAX_DISTANCE 350
void setup() {
Serial.begin(9600);
}
void loop() {
148
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
delay(50);
duration = sonar.ping();
distance = (duration / 2) * 0.0343;
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
149
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Untuk menguji keypad, rangkaian berikut perlu disusun sesuai dengan gambar berikut:
Sketsa : keypad.ino
#include <Keypad.h>
char tombol[4][3] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
150
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
Serial.begin(9600);
}
void loop() {
char kode = keypad.getKey();
if (kode != NO_KEY){
Serial.println(kode);
}
delay(100);
}
Pustaka keypad dilibatkan melalui:
#include <keypad.h>
Array berikut digunakan untuk menyatakan susunan karakter yang menyusun keypad:
char tombol[4][3] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
Array berikut ini menyatakan pin-pin yang menyusun baris pada keypad:
151
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Dalam hal ini, getKey() ,menghasilkan nilai yang sama dengan NO_KEY jika tidak ada tombol
yang ditekan. Oleh karena itu, jika hasil fungsi ini berupa NO_KEY, kode ini tidak perlu dikirim
ke port serial. Hal ini ditangani oleh pernyataan:
if (kode != NO_KEY){
Serial.println(kode);
Sketsa ini dikembangkan berdasarkan kode pada sketsa keypad 3x3. Itulah sebabnya,
bagian yang sama tidak perlu dibahas kembali.
152
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Kode ‘0’ atau ‘1’ digunakan untuk mengontrol LED. Pernyataan yang mengatur hal ini adalah:
if(kode == ‘1’){
digitalWrite(PIN_LED, HIGH);
}else{
if(kode == ‘0’){
digitalWrite(PIN_LED, LOW);
Pin yang berhubungan dengan LED dibuat menjadi HIGH untuk menyalakan LED sekiranya
kode berisi karakter 1 atau LOW untuk mematikan LED kalau kode berisi karakter 0.
Sketsa : keypadLed.ino
#include <Keypad.h>
char tombol[4][3] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
153
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
Serial.begin(9600);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
char kode = keypad.getKey();
if(kode == '1'){
digitalWrite(PIN_LED, HIGH);
}else{
if(kode == '0'){
digitalWrite(PIN_LED, LOW);
}
}
}
154
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : keypad4x4.ino
#include <Keypad.h>
char tombol[4][4] = {
{'1', '2', '3', 'A'},
155
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
void setup() {
Serial.begin(9600);
}
void loop() {
char kode = keypad.getKey();
if (kode != NO_KEY){
Serial.println(kode);
}
}
Sketsa ini tidak jauh beda dengan sketsa keypad 3x4. Perbedaan pertama terletak pada:
char tombol[4][4] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
156
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
Sketsa : password.ino
#include <Keypad.h>
char tombol[4][4] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
int posisi = 0;
boolean aksesDitolak = false;
void setup() {
Serial.begin(9600);
}
void loop() {
char kode = keypad.getKey();
157
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
if (kode == NO_KEY){
return; // Akhiri loop()
}
if (kode == '*'){
sandiPemakai = ""; // Kosongkan
return; // Akhiri loop()
}
if (kode == '#') {
if (sandiPemakai.equals(password)) {
Serial.println("Akses Diterima");
delay(2000);
Serial.println("Pintu sudah ditutup kembali");
}else{
Serial.println("Akses ditolak");
if(kode == '#') {
if (sandiPemakai.equals(password)) {
Serial.println("Akses Diterima");
delay(2000);
158
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat
Fundamental Arduino Microcontroller Kit
}else{
Serial.println("Akses ditolak");
sandiPemakai.equals(password)
Serial.println("Akses Diterima");
delay(2000);
Serial.println("Akses ditolak");
159
Gedung LKP Pascal Lembaga Pelatihan
Jl. Gerilyawan No. 1 PASCAL
Kota Cirebon, Jawa Barat