100% menganggap dokumen ini bermanfaat (2 suara)
513 tayangan159 halaman

Arduino Dasar

Buku ini membahas dasar-dasar Arduino untuk pemula, meliputi pengenalan komponen elektronik yang digunakan pada Arduino seperti breadboard, resistor, dioda, kapasitor, saklar, relay, dan konsep PWM dan alur data. Buku ini juga menjelaskan fungsi dan dasar Arduino serta cara memulai pemrograman Arduino menggunakan IDE Arduino.

Diunggah oleh

Hafizh Kumara Wahyu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (2 suara)
513 tayangan159 halaman

Arduino Dasar

Buku ini membahas dasar-dasar Arduino untuk pemula, meliputi pengenalan komponen elektronik yang digunakan pada Arduino seperti breadboard, resistor, dioda, kapasitor, saklar, relay, dan konsep PWM dan alur data. Buku ini juga menjelaskan fungsi dan dasar Arduino serta cara memulai pemrograman Arduino menggunakan IDE Arduino.

Diunggah oleh

Hafizh Kumara Wahyu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 159

Arduino Dasar Bagi Pemula

Catatan Pembuka
Buku ini diperuntukan bagi para pemula yang ingin mempelajari mengenai pengembangan
menggunakan Arduino Development Board. Sekaligus buku ini digunakan sebagai bahan
acuan untuk melakukan pengajaran baik pada materi online maupun offline yang
diselenggarakan oleh Nusabot.

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. 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. Anda dapat menggunakan buku ini sebagai bahan ajar.

Salam,

Cirebon, 28 Desember 2019

1
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Para Generasi Muda


Penulis bersyukur kepada Tuhan yang Maha Esa yang telah memberikan jalan kemudahan
untuk mempelajari segala macam ciptaannya. Dan penulis bersyukur diberi kesehatan dan
kekuatan sekaligus kesempatan untuk berbagi ilmu kepada negeri ini, Indonesia.

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 Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Daftar Isi
Pengenalan Komponen Elektronik 7
Breadboard 8
Resistor (Hambatan) 8
Resistor Variabel (VR) 11
Resistor Peka Suhu dan Cahaya 12
Dioda 12
Kapasitor (Kondensator) 14
Saklar 16
Relay 16

Bentuk Sinyal 19
PWM (Pulse Width Modulation) 19

Alur Data 20

Definisi dan Fungsi Arduino 21


Sejarah Singkat Arduino 23

Dasar Arduino 24
Pinout Arduino UNO 25
Power Supply 25
Analog In 27
Analog to Digital Conversion 27
Pin Digital 28
Protokol Komunikasi 28
Komunikasi Serial 29
Apa Itu SPI? 29
I2C 30
ICSP Header 31
Memulai Memprogram 32
Memilih Papan Arduino 34
Membuat Kode Pada Arduino 36
Menyimpan Sketsa 36
Mengkompilasi Sketsa 37
Kesalahan Pada Sketsa 37
Upload (Unggah) Sketsa 38
Gagal Melakukan Upload 39
Penjelasan Kode Dalam Sketsa 39
3
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Membuat Kedipan Yang Cepat 40


Dasar LED 41
Eksperimen Lebih Lanjut 41
Meniru Lampu Lalu Lintas Menggunakan LED 43
Membuat LED Redup 45

Serial Monitor 48

Mengirimkan Data Dari Arduino 49

Mengirimkan Data Dengan Format Bilangan Lain 50

Menentukan Jumlah Pecahan 52

Mengirimkan Data Dari Komputer Ke Arduino 53

Membaca Bilangan Dari Serial Monitor 55

Mengendalikan LED Dengan Komunikasi Serial 57

Mengendalikan LED Dengan Tombol 59

Komentar 62

Tipe Data 64

Variabel 65
Deklarasi Variabel 66

Sistem Bilangan 69

Operator Aritmatika 70
Prioritas Pada Aritmatika 72
Increment dan Decrement 72
Ekspresi Boolean 73
Operator Pembanding 74
Operator Logika 74

Struktur Kontrol 75
Pernyataan IF 76
Pernyataan IF … ELSE 78
Kasus Banyak Pilihan 80

Switch 82

Operator Penanganan Seleksi 84

Perulangan 86
While 86

4
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

DO .. WHILE 89
FOR 91
Break Pada Perulangan 92
Penerapan Pada Perangkat Keras 93

Objek 96

Fungsi 96

Array 99

Tabel Dan Array 103

Pengolahan String 105

Motor Servo 110

Piezo Speaker (Buzzer) 113


Perbedaan Speaker Piezoelektrik dan Speaker Elektrodinamis 114

Seven Segment Display 116


Seven Segment 4 Angka 123
Seven Segment 4 Angka Dengan 4 Pin 127

Sensor 132

LDR (Light Dependent Resistor) 132

Curah Hujan 136


Ikhtisar Perangkat Keras 137
Papan Sensor 137
Modul 137

Kelembaban Tanah 138

Sensor Jarak 140


Spesifikasi Sensor 143
Menggunakan Library 147

Membrane Keypad 3x4 148

Membrane Keypad 4x4 153


Inputan PIN Menggunakan Keypad 156

5
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Mulai dari fungsi dari komponen tersebut dan cara menggunakan


serta metode yang dipakai untuk membuat fungsi komponen
tersebut maksimal.

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

6
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Pengenalan Komponen Elektronik

Sebelum melakukan percobaan lebih lanjut ke Arduino, ada baiknya kita terlebih dahulu
memahami berbagai bentuk komponen utama sehingga kita benar-benar dapat
menggunakannya.

Komponen elektronika memiliki 2 (dua) jenis yaitu:

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.

7
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Breadboard

Ketika akan merakit sebuah perangkat, maka kita


membutuhkan aktivitas soldering yaitu
menggabungkan dua atau lebih komponen metal
menggunakan timah yang dipanaskan, hal ini akan
merepotkan ketika akan melakukan berbagai
percobaan. Dengan menggunakan Breadboard maka
proses soldering tersebut tidak perlu dilakukan lagi, kita
hanya tinggal menghubungkan komponen tersebut dengan mudah.

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

8
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Hambatan listrik dapat didistribusikan sesuai dengan kebutuhan. Tentunya Anda


bertanya-tanya apa itu Hambatan? seperti apa bentuknya? bagaimana cara kerjanya?

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:

9
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

10
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

= 56000
= Atau 56K Ohm
Berarti 56.000 Ohm dengan nilai toleransi sebesar 5 %.

Berikut cara menghitung toleransi Resistor:

56.000 Ohm dengan nilai toleransi 5%,


a. 56.000 + 5% = 58.800 Ω
b. 56.000 - 5% = 53.200 Ω
Ini artinya nilai Resistor tersebut akan berkisar antara 53.200Ω - 58.800Ω

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:

HI, CO, ME, O, KU, HI, BI, U, A, PU, EM, PE


(HItam, COklat, Orange, KUning, HIjau, BIru, Ungu, Abu-abu, PUtih, EMas, PErak).

Resistor Variabel (VR)


Nilai resistansi resistor jenis ini dapat diatur dengan tangan, bila pengaturan dapat dilakukan
setiap saat oleh operator (ada tombol pengatur) dinamakan potensiometer dan apabila
pengaturan dilakukan dengan obeng dinamakan trimmer potensiometer (trimpot). Tahanan
dalam potensiometer dapat dibuat dari bahan carbon dan ada juga dibuat dari gulungan
kawat yang disebut potensiometer wirewound. Untuk digunakan pada tegangan listrik yang
tinggi biasanya lebih disukai jenis wirewound.

11
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Resistor Peka Suhu dan Cahaya

Terdapat Resistor yang untuk mengatur nilai resistansi nya menggunakan suhu. Resistor ini
dinamakan dengan thermistor. Ada dua jenis yaitu NTC (Negative Temperature Coefficient)
dan PTC (Positive Temperature Coefficient). NTC resistansinya kecil bila panas dan makin
dingin makin besar. Sebaliknya PTC resistensi kecil bila dingin dan membesar bila panas.

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

12
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Sebagai contoh pemasangan dioda pada suatu rangkaian sebagai berikut:

Terdapat berbagai macam dioda diantaranya yaitu sebagai berikut.

● LED

Light Emitting Diode atau lebih dikenal dengan sebutan LED adalah suatu
semikonduktor yang memancarkan cahaya monokromatik.

● Dioda Foto

13
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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 (Phototransistor).
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 Condensador.

14
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Namun kebiasaan dan kondisi serta artikulasi bahasa setiap negara tergantung pada
masyarakat yang lebih sering menyebutkannya. Kini kebiasaan orang tersebut hanya
menyebutkan salah satu nama yang paling dominan digunakan atau lebih sering
didengar. Pada masa kini, kondensator sering disebut kapasitor (capacitor) ataupun
sebaliknya yang pada ilmu elektronika disingkat dengan huruf (C).

15
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Secara sederhana, saklar terdiri dari dua bilah logam yang menempel pada suatu rangkaian,
dan bisa terhubung atau terpisah sesuai dengan keadaan sambung (on) atau putus (off)
dalam rangkaian itu. Material kontak sambungan umumnya dipilih agar supaya tahan
terhadap korosi. Jika logam yang dipakai terbuat dari bahan oksida biasa, maka saklar akan
sering tidak bekerja. Untuk mengurangi efek korosi ini, paling tidak logam kontaknya harus
disepuh dengan logam anti korosi dan anti karat.

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

16
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

17
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

18
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

0 dan 1 0 - 1023 (10 bit)


0 - 255 (8 bit)

Lampu LED Nyala atau Mati Tingkat Kecerahan 56%

Sensor Hujan Basah atau Kering Curah Hujan 13mm

Sensor Temperatur Panas atau Dingin Suhu Sebesar 36oC

Motor DC Berputar atau diam Kecepatan Putaran 70%

Dari pemahaman ini maka kita akan dengan mudah mengetahui data apa yang seharusnya
digunakan ketika kita berurusan dengan sensor dan output.

PWM (Pulse Width Modulation)


Terdapat suatu teknik dimana teknik tersebut berguna untuk menciptakan hasil berupa
analog dengan cara mentransmisikan sinyal digital. Atau dengan kata lain teknik ini adalah
teknik untuk mengubah sinyal digital menjadi seolah-olah seperti sinyal analog. Teknik
tersebut dinamakan dengan PWM (Pulse Width Modulation) memiliki simbol seperti berikut :
~.

19
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Bayangkan lampu di rumah Anda yang menggunakan saklar, hanya ada 2 (dua) pilihan yaitu
mati atau nyala (sinyal digital). Lalu bagaimana cara nya agar lampu tersebut terlihat redup
(sinyal analog)? Jawabannya adalah dengan membuat saklar tersebut mati dan menyala
dengan kecepatan tinggi, misalnya 25 kali mati dan nyala dalam waktu 1 detik (atau 25 kali
per detik). Teknik seperti inilah yang dinamakan PWM. Namun sayangnya tidak sesimple itu,
teknik PWM menghitung lama waktu dan tegangan paling tinggi dan paling rendah untuk
menghasilkan nilai duty cycle. Namun yang perlu Anda pahami cukup sampai disini.

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

20
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Definisi dan Fungsi Arduino


Banyak yang menganggap bahwa Arduino ini adalah sebuah Microcontroller, sebenarnya
pernyataan tersebut tidak sepenuhnya salah dan tidak sepenuhnya benar. Jika kita tilik
bersama Arduino ini adalah sebuah perangkat pengembangan berupa hardware dan
software untuk mengembangkan berbagai macam proyek mekatronika. Jadi, Arduino ini
bukan microcontroller. Justru Arduino menggunakan microcontroller sebagai processor,
penyimpanan data, dan RAM nya.

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

21
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

22
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Sejarah Singkat Arduino


Perusahaan Arduino LLC didirikan oleh Massimo Banzi, David Cuartielles, David Mellis, Tom
Igoe dan Gianluca Martino pada tahun 2009. Papan Arduino sendiri dicetak dan dibuat oleh
perusahaan Smart Project Srl dengan pendirinya bernama Gianluca Martino, jadi Martino
selain sebagai pendiri Arduino LLC dia juga sebagai pendiri Smart Project Srl. Selama waktu
tersebut tidak ada masalah apapun di antara kedua perusahaan tersebut.

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.

23
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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 berkas

24
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

tersebut dinamakan sketch atau sketsa dalam Bahasa Indonesia. Jadi antara kode program
dan sketch secara arti itu sama hanya perbedaan penamaan saja.

Pinout Arduino UNO


Arduino dan perangkat pengembangan lainnya selalu memiliki pin GPIO (General-Purpose
Input/Output) yaitu sebuah pin untuk menangani input dan output pada papan sirkuit
elektronik. Jadi seluruh perangkat input (sensor) dan output (aktuator dan display) akan
dihubungkan ke pin GPIO ini.

Power Supply

Terdapat 3 (tiga) cara untuk memberikan tenaga listrik pada papan Arduino:

25
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

3. Kabel USB, Digunakan ketika dihubungkan dengan komputer (ataupun dapat


menggunakan powerbank), menggunakan tegangan 5 volt pada 500mA.

Terdapat dioda perlindungan polaritas yang menghubungkan antara positif dari jack
barel ke pin VIN, dengan nilai 1 Ampere.

4. 5v dan 3.3v, digunakan untuk memberikan daya dengan tegangan sebesar 5 Volt dan
3,3 Volt ke komponen external misalnya sensor dan aktuator.

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.

6. RESET, untuk melakukan reset Arduino.

7. IOREF, Pin ini adalah sebagai Input/Output Reference. Untuk memberikan referensi
tegangan mana microcontroller akan beroperasi.

26
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Analog to Digital Conversion

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.

27
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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:

● Setiap pin ini dapat memberikan sampai dengan 40mA maksimum. Akan tetapi yang
direkomendasikan adalah 20mA.
● Arus maksimum absolut yang disediakan dari semua pin adalah 200mA.

Protokol Komunikasi

Serial (TTL), Pin digital 1 dan 0 adalah pin serial untuk Arduino UNO. Jalur pada pin ini
digunakan untuk modul USB onboard.

28
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Apa Itu SPI?

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.

Perangkat yang diaktifkan SPI selalu memiliki pin berikut:

29
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

● 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 SCL dan SDA.

● SCL digunakan untuk menyinkronkan transfer data.


● SDA digunakan untuk mentransmisikan data (mengirimkan data).

Setiap perangkat pada bus I2C memiliki alamat unik, hingga 255 perangkat dapat
dihubungkan pada bus yang sama.

Aref - Tegangan referensi untuk input analog.

Interrupt - INT0 dan INT1. Arduino UNO memiliki dua pin interupsi eksternal.

Interupsi eksternal adalah interupsi sistem yang terjadi ketika ada gangguan luar. Gangguan
dapat berasal dari pengguna atau perangkat perangkat keras lain dalam jaringan. Kegunaan
umum untuk interupsi ini di Arduino adalah membaca frekuensi gelombang persegi yang
dihasilkan oleh encoders atau membangunkan prosesor pada peristiwa eksternal.

Arduino memiliki dua bentuk interupsi:

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

30
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

31
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Memulai Memprogram

Pada Arduino ada 2 (dua) tahapan untuk memberikan perintah dan mengupload perintah
tersebut ke papan Arduino yaitu:

1. Kompilasi sketsa (atau disebut verify) adalah merubah kode program yang telah kita
ketik dalam bentuk teks ke bentuk biner. Hasilnya dinamakan sketsa biner.

2. Unggah sketsa (upload) adalah proses untuk meletakan sketsa biner hasil kompilasi
ke memori flash di papan Arduino.

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.

32
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Unduh sesuai dengan sistem operasi dan arsitektur komputer masing-masing.

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 LED ON pada papan Arduino menyala.
3. Buka aplikasi Arduino IDE pada komputer Anda.

33
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Pada saat kita membuka Arduino IDE, maka akan disuguhkan tampilan seperti pada gambar
diatas.

Memilih Papan Arduino


Setelah kita melakukan instalasi maka langkah selanjutnya adalah menghubungkan Arduino
kita dengan komputer menggunakan kabel USB agar kode program yang kita buat dapat
diupload ke papan Arduino kita. Pertama pasang kabel USB terlebih dahulu dari papan
Arduino ke komputer kita, buka Arduino IDE lalu pilih menu Tools -> Board -> Arduino UNO
(bagi yang menggunakan Bahasa Inggris pada komputernya).

34
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

35
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Membuat Kode Pada Arduino

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() {

pinMode (13, OUTPUT);

void loop() {

digitalWrite (13, HIGH);

delay (1000);

digitalWrite (13, LOW);

delay (1000);

Menyimpan Sketsa
Untuk menyimpan sketsa masuklah ke menu File -> Save. Maka kotak dialog untuk
menyimpan sketsa kan ditampilkan.

36
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Mengkompilasi Sketsa

Langkah selanjutnya adalah memverifikasi atau mengkompilasikan sketsa. Langkah ini


selain memeriksa ada tidaknya kode program yang salah tulis, juga sebagai tindakan untuk
merubah kode program yang telah kita ketik menjadi file binary yang dapat dimengerti oleh
komputer. Untuk memverifikasi sketsa, klik pada ikon ✔ yang terdapat pada kiri atas Arduino
IDE. Atau Cara kedua, klik pada menu sketch. Lalu, klik pada Verify/compile. Atau cara
ketiga, tekan tombol Ctrl + R.

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

37
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Baris yang memiliki kesalahan akan ditandai dengan warna merah muda dan pesan error nya
akan ditampilkan di bagian bawah Arduino IDE.

Upload (Unggah) Sketsa


Anda perlu mengunggah sketsa tersebut agar kode yang sudah kita ketik dapat dijalankan
oleh Arduino. Caranya, klik pada icon 🡪. Langkah ini juga bisa dilakukan melalui menu sketch.
Kemudian, klik tombol upload. CTRL+U juga dapat digunakan sebagai alternatif. Jika tidak
ada masalah, maka muncul pesan “Done uploading”, yang menyatakan bahwa sketsa telah
diunggah ke papan Arduino. Adapun pesan detailnya yang dihasilkan adalah berikut:

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.

Pada pesan tersebut terdapat informasi seperti berikut:

● Ukuran penyimpanan (flash memory) yang diperlukan sketsa (maksimum sebesar


32256 bytes).
● Ukuran memori yang digunakan variabel global di memori dinamis (maximum 4k).

38
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Gagal Melakukan Upload


Jika pada saat upload ternyata terdapat pesan error “problem uploading to board”,
artinya itu menandakan bahwa papan Arduino belum dikenali oleh komputer. Jika kabel USB
sudah dipasangkan ke komputer dan papan Arduino, cobalah untuk melepaskannya dan
kemudian memasangnya kembali. Lalu, klik pada menu sketch. Selanjutnya, sorot port dan
pastikan yang terhubung ke Arduino dalam keadaan tercentang.

Penjelasan Kode Dalam Sketsa


Untuk memahami sketsa yang membuat LED berkedip-kedip, marilah kita bahas peran
fungsi setup() dan loop(). Memahami kedua fungsi ini merupakan langkah penting untuk
menguasai pemrograman Arduino.

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.

Berikut adalah penjelasan mode yang menyusun sketsa pertama.

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

39
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Membuat Kedipan Yang Cepat


Untuk dapat membuat kedipan yang lebih cepat kita perlu memperkecil nilai di delay().
Sebagai contoh, jika nilai 1000 di kedua delay() diganti dengan 200, LED akan menyala
atau padam selama 0,2 detik. Efeknya, kedipan berlangsung dengan cepat. Anda pun bisa
bereksperimen dengan memberikan nilai pada kedua delay() sebagai contoh, Anda bisa
mengatur agar waktu LED padam lebih lama daripada waktu LED menyala.

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.

40
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Jika LED tersebut menyala maka dapat kita


pastikan bahwa LED tersebut tidak ada kerusakan.

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.

Eksperimen Lebih Lanjut

Anda perlu menyiapkan sejumlah perangkat keras seperti breadboard, resistor, dan kabel
dupont. Rincian komponen yang diperlukan paling tidak adalah seperti berikut.

Material Keterangan
41
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

LED merah Jumlah : 1

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.

Kemudian buatlah rangkaian berikut:

Dasar penting yang perlu


dipahami terlebih dahulu adalah
mengetahui susunan internal
lubang-lubang yang terdapat di
breadboard (lihat BAB I) agar
penyusunan dari diagram

42
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Meniru Lampu Lalu Lintas Menggunakan LED


Skenario untuk mengatur lalu lintas kita atur seperti berikut:

1. LED merah menyala selama 8 detik.


2. LED kuning menyala selama 1 detik.
3. LED hijau menyala selama 2 detik.

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;

43
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

const int PIN_LED_KUNING = 6;


const int PIN_LED_HIJAU = 5;

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

pada sketsa ini, tiga pertanyaan berikut digunakan untuk mendefinisikan konstanta bernama
PIN_LED_MERAH, PIN_LED_KUNING, DAN PIN_LED_HIJAU:

const int PIN_LED_MERAH = 7;


const int PIN_LED_KUNING = 6;
const int PIN_LED_HIJAU = 5;

44
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Membuat LED Redup


Untuk membuat LED redup kita dapat menggunakan sinyal analog dimana sebelumnya kita
bereksperimen menggunakan sinyal digital yaitu dengan nilai 1 dan 0, nyala dan mati, HIGH
dan 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.

45
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Lalu unggah sketsa berikut:

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

46
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

47
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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,

48
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

tanpa perlu melibatkan peranti masukan tambahan seperti keypad. Untuk membuka serial

monitor maka kita cukup mengklik icon di sebelah kanan atas Arduino IDE.

Pertukaran data antara Arduino dan komputer dilakukan melalui port serial. Itulah sebabnya,
laju bit agar kedua peranti dapat bertukar data perlu disinkronkan. Jika data yang dikirim
sebesar 9600 bit per detik maka data yang diterima pun harus sebesar 9600 bit per detik.
Jika besar data yang diterima dan data yang dikirim tidak sama, maka tentu saja data
tersebut tidak terbaca oleh Arduino maupun komputer kita karena data yang diterima tidak
sempurna dikirimkan begitupun sebaliknya. Pada gambar dibawah ini terlihat bahwa laju bit
untuk pertukaran data adalah 9600 baud atau bit per detik (bps).

Mengirimkan Data Dari Arduino


Untuk mempraktekannya, Anda perlu membuat sketsa seperti yang diperlihatkan di sketsa
kirimSerial. Sketsa tersebut mengirimkan beberapa nilai ke port serial dan hasilnya tentu saja
bisa dilihat di Serial Monitor.

Sketsa : kirimSerial.ino
void setup() {
Serial.begin(9600);

Serial.print("Halo, saya berusia ");


Serial.print(17);
Serial.println(" tahun");
Serial.println();
Serial.println("----------------");
}

void loop() {

49
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Hasil dari sketsa tersebut adalah sebagai berikut:

Pada kode program yang kita ketikan terdapat kode Serial.begin(9600). Kode ini adalah
untuk memberitahu Arduino bahwa kita akan menggunakan fitur komunikasi serial sehingga
Arduino nanti nya dapat mengirimkan data ke komputer kita dan melihat data tersebut
melalui serial monitor. Angka 9600 pada kode program tersebut adalah menunjukan data
yang harus dikirim oleh Arduino sebanyak 9600 bit dalam 1 detik (9600 bps).

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.

Mengirimkan Data Dengan Format Bilangan Lain


Untuk menyajikan angka di serial monitor ke dalam bentuk berbagai bilangan caranya
dengan menyertakan argumen kedua, yang dapat berupa DEC untuk menyatakan bilangan
dalam sistem desimal (sistem bilangan berbasis 10), OTC untuk menyatakan bilangan dalam
sistem oktal (sistem bilangan berbasis 8), HEX untuk menyatakan bilangan dalam sistem
heksadesimal (sistem bilangan berbasis 16), atau BIN untuk menyatakan bilangan dalam
sistem biner (sistem bilangan berbasis 2).

50
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Sketsa : sistemBilangan.ino
void setup() {
Serial.begin(9600);

int bilangan = 45;

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:

51
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Menentukan Jumlah Pecahan


Anda bisa menggunakan serial.print() atau serial.println dengan argument
pertama berupa bilangan pecahan yang hendak dikirim ke serial monitor dan argumen kedua
berupa angka yang menyatakan jumlah digit pecahan yang dikehendaki untuk ditampilkan di
serial monitor. Contohnya pada sketsa berikut:

Sketsa : digitPecahan.ino
void setup() {
Serial.begin(9600);

float bilangan = 450.5688;

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() {

Pada sketsa ini,

Serial.println(bilangan, 6);

Membuat isi variabel bilangan ditampilkan dengan jumlah digit pecahan sebanyak 6. Hasil
eksekusi sketsa ini adalah seperti berikut:

52
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Mengirimkan Data Dari Komputer Ke Arduino


Serial monitor dapat digunakan untuk mengirimkan data dari komputer kita ke Arduino. Data
yang dikirimkan berupa teks. Untuk menangani hal ini, mula-mula dilakukan pemeriksaan
terhadap ada tidaknya data di port serial. Dalam hal ini, pemanggilan terhadap
Serial.available() dilakukan. Fungsi anggota available() pada objek serial adalah
memberikan nilai balik berupa jumlah data dalam suatu byte yang belum pernah dibaca oleh
Arduino.

Hal itu dapat dituangkan menjadi kode semacam berikut:

if (Serial.available() > 0) {

Atau cukup ditulis menjadi

if (Serial.available()) {

53
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Pertama-tama, variabel karakter dideklarasikan bertipe char (tipe karakter). Kemudian,


variable ini diberikan nilai berupa karakter yang dibaca dari port serial. Ya, serial.read()
lah yang membaca sebuah karakter dari port serial dan nilai baliknya diberikan diberikan ke
variable karakter. Dengan dasar-dasar seperti itu, Anda bisa menguji sketsa berikut:

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:

54
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

selanjutnya, jika tulis “Arduino” dimasukkan dengan cara yang serupa diatas, diperoleh hasil
seperti berikut:

Membaca Bilangan Dari Serial Monitor


Objek serial memiliki dua fungsi anggota berbeda yang ditunjukkan untuk membaca data
bilangan, yaitu:

● paraseInt() (berguna untuk membaca data bilangan bulat).

55
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

● parseFloat() (berguna untuk membaca data bilangan riil).

Sketsa : bacaInteger.ino
void setup() {
Serial.begin(9600);
}

void loop() {
if (Serial.available()) {
int bilangan = Serial.parseInt();
Serial.println(bilangan);
}
}

Pada contoh ini,

int bilangan = Serial.parseInt();

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() {

56
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

if (Serial.available()) {
float bilangan = Serial.parseFloat();
Serial.println(bilangan);
}
}

Pada contoh ini,

float bilangan = Serial.parseFloat();

Digunakan untuk mendeklarasikan bilangan sebagai variabel bertipe float (yang


menampung bilangan riil) dan kemudian variable ini diisi dengan bilangan yang dibaca
melalui Serial.parseFloat()

Contoh berikut memperhatikan hasil setelah angka 123.4 dimasukan.

Mengendalikan LED Dengan Komunikasi Serial


Mula-mula, angka inputan yang dikirim dari komputer kita ke Arduino melalui serial monitor
yang kemudian dibaca oleh Arduino. Lalu, inputan tersebut dibandingkan. Jika data yang
dikirim adalah angka 1 maka LED menyala. Jika yang dikirim angka 2 maka LED
dipadamkan.

Buatlah rangkaian nya seperti berikut:

57
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Sketsa : controlled.ino
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
while (!Serial);

Serial.println("Input 1 untuk menyalakan LED dan 2 untuk mematikan");


}

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.

58
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Mengendalikan LED Dengan Tombol


Seperti yang telah dijelaskan di awal bab bahwa kita perlu sebuah alat input untuk
melakukan trigger terhadap Arduino, kita akan mencoba mempraktekannya dengan
menggunakan tombol atau kita bisa menyebutnya Push Button.

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.

Modul ini dikenal dengan sebutan modul push button atau


KY-004 buatan keyes. Namun, secara prinsip, Anda bisa
menggunakan modul buatan vendor mana saja. Hal ini
penting yang dilakukan adalah mengetahui isyarat digital
yang dibangkitkan oleh tombol sewaktu tombol ditekan.

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:

59
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

60
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

61
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

// ini adalah komentar

void loop() {

62
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Symbol // di depan Serial.println(“Ini adalah komentar”); membuat


Serial.println() tersebut diperlakukan sebagai komentar, bukan sebagai perintah. Jika
tanda // dibuang, akan diperoleh hasil seperti berikut:

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.

63
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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:

Tipe Data Keterangan Kebutuhan


Memori

boolean Tipe data yang hanya memiliki 2 kemungkinan yaitu 1 byte


True atau False

char Menampung data dengan tipe karakter 1 byte

int Menampung data bilangan bulat dari -32768 sampai 2 byte


dengan 32767

unsigned int Menampung data bilangan bulat dari 0 sampai 2 byte


dengan 65535

long Menampung data bilangan bulat -2147483648 4 byte


sampai dengan 2147483647

unsigned long Menampung data bilangan bulat -2147483648 4 byte


sampai dengan 2294967295

float dan Menampung data bilangan riil (pecahan). 4 byte


double

64
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Kita juga perlu mengenal perbedaan Angka dan Karakter (Number dan String). Angka adalah
data yang dapat diolah, sedangkan karakter data yang dapat diolah namun tidak memiliki
karakteristik angka. Lihat contoh berikut:
1 + 1 = 2

Hasil nya adalah 2 karena 1 dan 1 adalah angka.

“1” + “1” = 11

Hasilnya adalah 11 karena “1” dan “1” adalah karakter. Sama seperti contoh berikut ini:

“pergi” + “ke” + “pasar” = pergikepasar

Lalu kenapa tidak ada spasi disana? Hal itu karena dalam karakter yang kita tambahkan
tersebut tidak ada karakter spasi, kecuali:

“pergi “ + “ke” + “ “ + “pasar” = pergi ke pasar

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.

65
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

66
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

long int pencacah = 0;

void setup() {
Serial.begin(9600);
}

void loop() {
pencacah++;

Serial.println(pencacah);
delay(1000);
}

Pada sketsa ini,

pencacah++;

Digunakan untuk menaikkan nilai di pencacah sebesar 1. Contohnya hasil di Serial Monitor:

67
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Contoh penggunaan variabel lokal:

Sketsa : lokal.ino
void setup() {
Serial.begin(9600);
}

void loop() {
long int pencacah = 0;

pencacah++;

Serial.println(pencacah);
delay(1000);
}

Hasilnya seperti berikut:

68
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

69
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

● 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:

Operator Keterangan Contoh

+ Menjumlahkan operand pertama dengan operand +3 -> negatif tiga


kedua jika diletakan di antara kedua operand
tersebut, sedangkan jika diletakan di depan satu 3 + 2 -> lima
operand maka menyatakan bilangan tersebut adalah
bilangan positif

- Pengurangan operand pertama dengan operand -3 -> negatif tiga


kedua jika diletakan di antara kedua operand
tersebut, sedangkan jika diletakan di depan satu 3 - 2 -> satu
operand maka menyatakan bilangan tersebut adalah
bilangan negatif

* Mengalikan operand pertama dengan operand 3 * 2 -> enam


kedua

/ Membagi operand pertama dengan operand kedua 3 / 2 -> satu koma


lima

% Menghitung sisa bagi dari operand pertama 3 % 2 -> satu


terhadap operand kedua

Pada operator + ,- ,* , dan /, jika kedua operand bertipe bilangan bulat, hasilnya berupa
bilangan bulat. Jika terdapat operand yang bertipe float, hasilnya bertipe float.

70
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

map(x,minA,maxA,minB,maxB) Fungsi ini memberikan nilai balik berupa


hasil konversi x yang berada dalam
jangkauan minA dan maxA ke nilai yang
berada dalam jangkauan minB dan maxB.
max(a,b) Fungsi ini memberikan nilai balik berupa
nilai terbesar dari kedua bilangan a dan b.
min(a,b) Fungsi ini memberikan nilai balik berupa
nilai terkecil dari kedua bilangan a dan b.
pow(a,b) Fungsi untuk memperoleh ab.
sqrt(x) Fungsi untuk memperoleh akar kuadrat x.

71
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Prioritas Pada Aritmatika


Prioritas 1 dan 2 yang disertakan pada tabel yang berisi daftar operator aritmatika
menyatakan urutan pengerjaan kalau dalam suatu ekspresi terdapat lebih dari satu operator
yang berbeda. Sebagai contohnya, terdapat ekspresi:

3 + 2 * 5

Berapakah hasil ekspresi tersebut? Kuncinya terletak pada prioritas + dan *. Karena prioritas
* lebih tinggi daripada +, maka 2 * 5 akan dikerjakan terlebih dahulu. Maka akan dikerjakan
seperti ini (2 * 5) + 3.

Jika prioritas dua operator atau lebih adalah sama, pengerjaannya dimulai dari kiri ke kanan.
Terdapat ekspresi seperti ini:

3 * 2 % 4

Dengan demikian, 3 * 2 % 4 akan dikerjakan sebagai (3 * 2) % 4. Hasilnya adalah 6 %


4 atau 2.

Increment dan Decrement


Perhatikan pernyataan berikut:
x = x+1;

Pernyataan tersebut digunakan untuk menaikan nilai pada variabel x sebesar 1.

Di Arduino sering dijumpai pertanyaan semacam :

x++;

y--;

pernyataan x++; identik dengan x = x + 1;, sedangkan pernyataan y--; identik dengan y
= y – 1.

72
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Terdapat operator lain seperti operator += yang merupakan salah satu operator penugasan
majemuk. Pernyataan x +=1 identik dengan x = x + 1;

Tabel berikut mencantumkan seluruh operator penugasan majemuk yang berhubungan


dengan operasi aritmatika:

Operator Keterangan Contoh

++ Increment x++
Artinya tambahkan nilai x sebesar 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

&= AND Gabungan x &= y


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

73
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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 Keterangan Contoh

== Menyatakan 2 operand yang posisi_servo == 60


nilai nya sama menyatakan apakah posisi servo ini 60
derajat

!= Menyatakan 2 operand tidak posisi_servo != 60


sama nilai nya menyatakan apakah posisi servo ini bukan
60 derajat

< Menyatakan operand pertama posisi_servo < 60


lebih kecil dari operand kedua menyatakan apakah posisi servo ini kurang
dari 60 derajat

> Menyatakan operand pertama posisi_servo > 60


lebih besar dari operand menyatakan apakah posisi servo ini lebih
kedua dari 60 derajat

<= Menyatakan operand pertama posisi_servo <= 60


lebih kecil atau sama dengan menyatakan apakah posisi servo ini kurang
dengan operand kedua dari atau sama dengan 60 derajat

>= Menyatakan operand pertama posisi_servo >= 60


lebih besar atau sama dengan menyatakan apakah posisi servo ini lebih
operand kedua dari atau sama dengan 60 derajat

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

Ekspresi 1 Ekspresi 2 Hasil || Hasil &&


74
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Salah Salah Salah Salah


Salah Benar Benar Salah
Benar Salah Benar Salah
Benar Benar Benar Benar

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;

75
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

B = 2;

C = 3;

Namun, menuliskan perintah tidak seperti berikut pun sama saja:

B = 2;

C = 3;

A = 1;

Tidak demikian halnya dengan deretan tiga pernyataan berikut:

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 if yang paling sederhana adalah seperti berikut;

if(kondisi) {

Pernyataan-pernyataan;

Dalam hal ini, kondisi berupa ekspresi Boolean.

Untuk mempraktikkan penggunaan if buat sketsa berikut ini:

Sketsa : if.ino

76
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void setup() {
Serial.begin(9600);

Serial.println("Masukkan tegangan (0-5V):");


}

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

Serial.println("\Masukkan tegangan (0-5V):");


}
}

Pada sketsa ini,

if (Serial.available())

digunakan untuk memeriksa keberadaan data di port serial yang belum dibaca oleh Arduino.
Jika data tersedia, kode yang berada di antara { dan } akan dijalankan.

Pernyataan berikut digunakan untuk membaca nilai tegangan yang dimasukkan dari Serial
Monitor:

float tegangan = Serial.parseFloat();

77
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Pernyataan:

String keterangan = "Digital = 1";

digunakan untuk mengisi string “Digital = 1” ke variabel keterangan. Lalu, pernyataan

if (tegangan < 2.5)

keterangan = “Digital = 0”;

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 {

78
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Pernyataan-pernyataan B; }

Sebagai contoh, kasus untuk menentukan isi keterangan pada sketsa if yang berupa

String keterangan = “Digital = 1”;

If (tegangan < 2.5) {

Keterangan = “Digital = 0”; }

Dapat diselesaikan dengan if…else dengan menuliskan pernyataan berikut:

If (tegangan < 2.5) {

Keterangan = “Digital = 0”;

Else

Keterangan = “Digital 1”; }

Inilah contoh sketsanya:

Sketsa : if else.ino
void setup() {
Serial.begin(9600);

Serial.println("Masukkan tegangan (0-5V):");


}

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: ");

79
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Serial.print(tegangan);
Serial.println(" volt");
Serial.println(keterangan);

Serial.println("\Masukkan tegangan (0-5V):");


}
}

Contoh hasil pengujian dengan memasukan bilangan 3.5, 2.1 dan 2.5 secara berurutan di
Serial Monitor:

Kasus Banyak Pilihan


Kalau kemungkinan yang akan ditangani melebihi dua, if…else bertingkat biasa digunakan
untuk menyelesaikannya. Silakan lihat contoh berikut:

Sketsa : tigakemungkinan.ino
void setup() {
Serial.begin(9600);

80
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Serial.print("Masukkan nilai analog (0-1023): ");


}

void loop() {
if (Serial.available()) {
int nilaiAnalog = Serial.parseInt();
Serial.println(nilaiAnalog);

if (nilaiAnalog >= 700)


Serial.println("Media kering");
else
if (nilaiAnalog >= 300)
Serial.println("Media cukup basah");
else
Serial.println("Media basah");

Serial.print("\nMasukkan nilai analog (0-1023): ");


}
}

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:

81
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Switch
Pernyataan switch digunakan untuk menangani pemilihan terhadap satu pilihan diantara
banyak pilihan. Bentuk penggunaan switch:
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

82
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Serial.print("Masukkan angka (1-5): ");


}

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:

83
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Serial.println("--- Pilihan salah!");


}

Serial.print("\Masukkan angka (1-5): ");


}
}

Sketsa ini akan membaca bilangan bulat yang dimasukan dari Serial Monitor. Lalu, bilangan
yang dibaca akan dicocokkan dengan salah satu angka yang ditangani melalui switch.

Contoh hasil pengujian dengan memasukkan bilangan 1, 2, 3, 4, 5 dan 6 secara berturut-turut


di Serial Monitor:

Operator Penanganan Seleksi


Operator di Arduino yang ditujukan untuk menangani seleksi mempunyai bentuk pemakain
seperti berikut:

x ? a : b

84
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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
tersebut berupa a jika x bernilai true atau b bernilai false.

Contohnya:

Sketsa : operatorBerkondisi.ino
void setup() {
Serial.begin(9600);

Serial.println("Masukkan tegangan (0-5V):");


}

void loop() {
if (Serial.available()) {
float tegangan = Serial.parseFloat();

String keterangan = tegangan < 2.5 ? "Digital = 1" :


"Digital = 0";

Serial.print("Tegangan: ");
Serial.print(tegangan);
Serial.println(" volt");
Serial.println(keterangan);

Serial.println("\nMasukkan tegangan (0-5V):");


}
}

Contoh hasil pengujian dengan memasukan bilangan 3,5, 2.1, dan 2.5 secara berturut-turut
di Serial Monitor:

85
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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;

86
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Pernyataan ini akan membuat bagian pernyataan-pernyataan dijalankan selama kondisi


bernilai true. Dalam hal ini, kondisi selalu akan diuji terlebih dahulu sebelum mengeksekusi
bagian pernyataan-pernyataan. Contoh:

Sketsa : bilGenap.ino
void setup() {
Serial.begin(9600);

int bilangan;

bilangan = 4; // Nilai awal


while (bilangan <= 40) {
Serial.println(bilangan);
bilangan += 2;
}
}

void loop() {

}
Perintah

while (bilangan <= 40) {


Serial.println(bilangan);
bilangan += 2;
}

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:

87
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Oleh karena itu, akan didapatkan hasil seperti berikut:

Adapun contoh berikut digunakan untuk menampilkan bilangan genap dari 40 menuju 4:

Sketsa : deretMenurun.ino
void setup() {
Serial.begin(9600);

int bilangan;

bilangan = 40; // Nilai awal


while (bilangan >= 4) {
Serial.println(bilangan);
bilangan -= 2;
}
}

88
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void loop() {

Perhatikan nilai awal yang diberikan adalah nilai 40 yang dilakukan oleh:

Bilangan = 40;

Akan membuat

Serial.println(bilangan);
bilangan -= 2;

Oleh karena itu, akan didapatkan hasil seperti berikut:

DO .. WHILE
Bentuk pemakain Do…while:

Do {

Pernyataan-pernyataan;

} while (kondisi);

89
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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;

bilangan = 4; // Nilai awal


do {
Serial.println(bilangan);
bilangan += 2;
} while (bilangan <= 40);
}

void loop() {

Adapun contoh berikut digunakan untuk menampilkan genap dimulai dari 40 hingga 4:

Sketsa : deretMenurun2.ino
void setup() {
Serial.begin(9600);

int bilangan;

90
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

bilangan = 40; // Nilai awal


do {
Serial.println(bilangan);
bilangan -= 2;
} while (bilangan >= 4);
}

void loop() {

FOR
Pernyataan for mempunyai bentuk penggunaan seperti berikut:

For (inisialisasi; kondisi; kenaikan) {

Pernyataan-pernyataan;

Contoh berikut digunakan untuk menampilkan bilangan genap antara 4 dan 40:

Sketsa : bilGenap3.ino
void setup() {
Serial.begin(9600);

for (int bil = 1; bil <= 10; bil++) {


if (bil == 5)
break;

Serial.println(bil);
}
}

91
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void loop() {

Adapun contoh berikut untuk menampilkan genap dimulai dari 40 hingga 4:

Sketsa : deretMenurun3.ino
void setup() {
Serial.begin(9600);

int bilangan;

for (bilangan = 40; bilangan >= 4; bilangan -= 2) {


Serial.println(bilangan);
}
}

void loop() { }

Break Pada Perulangan


Pernyataan Break dapat digunakan untuk mengakhiri perulangan tanpa perlu menunggu
kondisi pada perulangan dievaluasi. Bentuk penggunaannya:

Break;

Untuk memahami break, buatlah contoh seperti berikut:

Sketsa : break.ino
void setup() {
Serial.begin(9600);

for (int bil = 1; bil <= 10; bil++) {


if (bil == 5)

92
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

break;

Serial.println(bil);
}
}

void loop() {

Hasilnya berupa gambar di bawah ini:

Hal ini disebabkan pada saat bil bernilai 5, pernyataan

If (bil == 5)

Break;

Membuat break; dijalankan. Akibatnya, for berakhir sehingga angka 5 tidak pernah muncul.

Penerapan Pada Perangkat Keras


Contoh yang diberikan disini, yakni untuk mengontrol 8 LED. Dalam hal ini, hanya satu LED
yang menyala pada setiap saat dan LED yang dihidupkan akan tampak berjalan dari kiri ke
kanan. Nah, sebagai perwujudannya, silakan untuk menyusun rangkaian berikut terlebih
dahulu.

93
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Selanjutnya, pengujian dilakukan dengan menggunakan sketsa berikut:

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

Pada setup() terdapat perintah:

for (int pin = 2; pin <= 9; pin++)

94
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

pada loop() terdapat perintah:

for (int pin = 2; pin <= 9; pin++) {


digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
}

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.

95
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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:

Keypad keypad = keypad(makeKeymap(tombol),

pinBaris, pinKolom, 4, 3);

ketika Anda menuliskan perintah seperti

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 setup() dan loop(). Contoh definisi fungsi:

void setup() {

Serial.begin(9600);

96
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Pada definisi tersebut, void setup() adalah bagian judul fungsi dan {
Serial.begin(9600); } adalah tubuh fungsi.

Secara umum, pendefinisian fungsi berbentuk seperti berikut:

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:

return bil < 0 ? -bil : bil;

atau

return (bil < 0 ? -bil : bil);

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

97
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void loop() {

float absolut(float bil) {


return bil < 0 ? -bil : bil;
}

Hasil eksekusi

Sketsa : duaArgumen.ino
void setup() {
Serial.begin(9600);

Serial.print(duplikasi('-', 10));
Serial.print("0");
Serial.print(duplikasi('>', 5));
}

98
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void loop() {

String duplikasi(char karakter, int jumlah) {


String hasil = "";
for (int j = 1; j <= jumlah; j++)
hasil = hasil + karakter;

return hasil;
}

Perhatikan pada judul fungsi berikut:

String duplikasi(char karakter, int jumlah)

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:

String komponen1, komponen2, komponen3, komponen4, komponen5;

Lalu, pencatatan nama komponen dilakukan seperti berikut:

99
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

// Penugasan ke elemen array


komponen[0] = "Transistor";
komponen[1] = "Resistor";
komponen[2] = "LDR";
komponen[3] = "Potensiometer";
komponen[4] = "Thermistor";

// Perintah untuk menampilkan isi array


for (int j = 0; j < 5; j++) {
Serial.print("Indeks = ");
Serial.print(j);
Serial.print(" -> ");

100
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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] = {

"", "Januari", "Februari", "Maret",

"April", "Mei", "Juni", "Juli",

"Agustus", "September", "Oktober",

"November", "Desember" };

Sketsa yang menggunakan deklarasi seperti itu dapat dilihat dibawah ini:

101
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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() {

Serial.print("Masukkan kode bulan (1-12): ");


while (!Serial.available());

int kodeBulan = Serial.parseInt();


Serial.println(kodeBulan);
Serial.println(namaBulan[kodeBulan]);
}

Hasilnya:

102
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Tabel Dan Array


Tabel mengandung sejumlah baris dan sejumlah kolom. Bentuk seperti
ini, sepanjang tipe data semua elemen sama, dapat diterjemahkan ke
array berdimensi dua. Sebagai contoh, terdapat gambar seperti gambar
disamping.

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] = {

{'1', '2', '3'},

{'4', '5', '6'},

{'7', '8', '9'},

{'*', '0', '#'}

};

Pada bentuk seperti ini, setiap elemen diakses dengan menggunakan dua indeks, yakni
indeks untuk baris dan indeks untuk kolom.

103
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

for (int baris = 0; baris < 4; baris++) {


for (int kolom = 0; kolom < 3; kolom++) {
Serial.print(tombol[baris][kolom]);
Serial.print(" ");
}

Serial.println(); // Pindah baris


104
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

}
}

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 = “”;

Berdasarkan deklarasi tersebut, dimungkinkan untuk memberikan perintah seperti berikut:

st = st + ‘a’;

maka, st berisi string “a”. jika kemudian ditambahkan:

st = st + ‘b’;

105
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Fungsi Anggota keterangan


chatrAt(n) Fungsi ini berguna untuk mendapatkan karakter di string
pada indeks n.
compare(string2) Fungsi ini digunakan untuk membandingkan string objek
dengan string2.
Nilai balik fungsi berupa:
● Nilai negatif kalau string < string2
● Nol kalau string dan string2 sama
● Nilai positif kalau string > string2

concat(string1,string2) Fungsi ini menggabungkan string1 dan string2 dan


hasilnya berupa string baru.
endsWith(string2) Fungsi ini memberikan nilai balik berupa true kalau string
berakhiran dengan string2. Untuk keadaan sebaliknya,
nilai balik berupa false.
equals(string2) Fungsi ini identic dengan penggunaan operator ==.
equalslgnoreCase(string2) Fungsi ini digunakan untuk membandingkan string
seperti pada equals dengan mengabaikan perbedaan
huruf kecil dan huruf kapital.
indexOf(nilai) Fungsi ini berguna untuk memperoleh indexs di string
indexOf(nilai, x) tempat ditemukannya nilai (bisa berupa sebuah karakter
atau string) di dalam string. Jika dari disebutkan,
pencaharian dimulai dari posisi x.
lastIndexOf(nilai) Serupa dengan indexOf(), tetapi pencarian dimulai dari
lastIndexOf(nilai, x) akhir string menuju ke awal string.

106
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

length() Fungsi ini memberikan nilai balik berupa panjang string


(jumlah karakter di string)
replace(substring1, substring2) Fungsi ini memberikan nilai balik berupa string baru
dengan substring1 yang terdapat di string akan diganti
dengan substring2
setCharAt(n, kar) fungsi ini berguna untuk merubah karakter pada indeks n
dengan karakter kar.
startsWith(string2) Fungsi ini memberikan nilai true kalau string berawalan
dengan string2.
subtring(dari) Fungsi ini menghasilkan string baru yang merupakan
subtring(dari, sampai) bagian dari string dimulai indeks x sehingga y. kalau
argument kedua tidak disebutkan, substring dimulai
pada posisi x hingga akhir string.
toCharArray(penyangga, n) Menyalin karakter-karakter di string ke penyangga yang
mempunyai jumlah n byte. Tidak ada nilai balik.
toLowerCase() Setiap huruf kapital di string akan diubah menjadi huruf
kecil.
toUpperCase() Setiap huruf kecil di string akan diubah menjadi huruf
kapital.
trim() Setiap spasi putih yang berada di awal dan akhir string
akan dihapus. Termasuk spasi putih adalah carriage
return dana linefeed.

Inilah contohnya sketsanya:

Sketsa : fungsiString.ino
void setup() {
Serial.begin(9600);

String teks = " Tes..tes..123! ";

Serial.println("0123567890123456");
Serial.println(teks);

107
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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() {

Berikut contoh pengujian di Serial Monitor:

108
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Piranti Keluaran dan Display

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

109
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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:

110
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

111
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Maka otomatis library akan dimasukan ke sketsa kita.

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.

112
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Piezo Speaker (Buzzer)


Piezo speaker biasa disebut juga dengan piezo bender, piezo buzzer, crystal loudspeaker,
atau beep speaker adalah sebuah loudspeaker (perangkat yang mengubah listrik menjadi
suara) yang menggunakan efek piezoelectric untuk menghasilkan suara. Efek piezoelektrik
adalah suatu kemampuan yang dapat menghasilkan suatu arus listrik jika ada sebuah
tekanan.

113
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Berikut perubahan bentuk material piezoelektrik tersebut:

Perbedaan Speaker Piezoelektrik dan Speaker Elektrodinamis


Keduanya mirip dimana keduanya mampu mengubah beda potensial menjadi gerakan. Tapi
terdapat perbedaan karakteristik yang berpengaruh terhadap valuasi di elektronika modern.

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.

114
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Adapun sketsa untuk menggunakan buzzer adalah sebagai berikut:

Sketsa : buzzer.ino
void setup()
{
pinMode(11, OUTPUT);
}

void loop()
{
tone(11, 1400);
delay(500);
noTone(11);
delay(500);

115
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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 https://github.com/bhagman/Tone#ugly-details.

Seven Segment Display


Seven segment display atau penampil tujuh segmen adalah komponen
yang biasa digunakan untuk menampilkan satu angka. Komponen ini
sebenarnya mengandung 7 LED dimana masing-masing LED mewakili
satu penyusun. Ada dua jenis seven segment yaitu common anode
dan common cathode. Pada jenis common anode, semua sisi positif
dalam keadaan terhubung maka dari itu kita tidak perlu
menghubungkan VCC, cukup dihubungkan dengan GND. Pada jenis common cathode,
semua sisi negatif dalam keadaan terhubung maka dari itu kita tidak perlu menghubungkan
GND, cukup dihubungkan dengan VCC. Gambar berikut menunjukan penampilan tujuh
segmen berjenis common anode dan cathode dan perbedaannya.

116
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

117
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

rangkaian berikut, yang menghubungkan antara penampilan tujuh segmen berjenis common
cathode/anode dan Arduino:

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

const int PIN_SEGMEN[8] = { 10, 9, 8, 7, 6, 5, 4, 3};

118
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void setup() {
Serial.begin(9600);

// Inisialisasi pin segmen


for (int j = 0; j < 8; j++)
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);
}

void tampilkanAngka(int angka)


{
// Abaikan kalau angka tidak antara 0 dan 9
if ((angka < 0) || (angka > 9))
return;

byte dataSegmen = SEGMEN[angka];


for (int j = 0; j < 8; j++) {
int bit = bitRead(dataSegmen, 7-j);

if (bit == HIGH)
digitalWrite(PIN_SEGMEN[j], HIGH);
else

119
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

digitalWrite(PIN_SEGMEN[j], LOW);
}
}
Data penyusun angka di penampilan tujuh segmen dinyatakan dengan:

const byte SEGMEN[10] = {

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:

const int PIN_SEGMEN[8] = { 10, 9, 8, 7, 6, 5, 4, 3};

mengingat setiap LED akan dikontrol oleh Arduino, mode OUTPUT digunakan untuk semua
pin tersebut. Hal ini dilakukan oleh pernyataan:

for (int j = 0; j < 8; j++)

pinMode(PIN_SEGMEN[j], OUTPUT); }

di loop(), perintah yang diberikan adalah untuk menampilkan angka 0 hingga 9. Hal ini
dilaksanakan oleh:

120
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

for (int j = 0; j < 10; j++) {

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

const int PIN_SEGMEN[8] = { 10, 9, 87, 6, 5, 4, 3};

void setup() {
Serial.begin(9600);

// Inisialisasi pin segmen


for (int j = 0; j < 8; j++)

121
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

void tampilkanAngka(int angka) {


// Abaikan kalau angka tidak antara 0 dan 9
if ((angka < 0) || (angka > 9))
return;

byte dataSegmen = SEGMEN[angka];


for (int j = 0; j < 8; j++) {
int bit = bitRead(dataSegmen, 7-j);

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.

122
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Seven Segment 4 Angka


Penampil tujuh segmen yang mengandung empat angka dapat
berjenis common anode maupun common cathode. Ukurannya juga
bermacam-macam. Namun, secara prinsip mempunyai persamaan,
yakni memiliki 12 pin. Contoh penampil 7 segmen dengan empat
angka dan susunan pin-pinnya yang ditunjukan pada gambar berikut:

Adapun rangkain yang digunakan untuk mengujinya adalah seperti berikut:

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 Sketch -> Include Library -> Add Zip Library.

123
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Sketsa untuk menguji rangkaian di depan adalah seperti berikut:

Sketsa : Seg7empatAngka.ino
#include "SevSeg.h"

const int INTERVAL = 1000; // 1 detik


const int JUM_DIGIT = 4; // Jumlah angka di penampil
// tujuh segmen
SevSeg sevseg;

124
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void setup() {
byte pinAngka[] = {14, 15, 16, 17};
byte pinSegmen[] = {10, 9, 8, 7, 6, 5, 4, 3};

sevseg.begin(COMMON_CATHODE, JUM_DIGIT, pinAngka, pinSegmen);


sevseg.setBrightness(90);
}

void loop() {
static unsigned long timer = millis();

if (millis() - timer > INTERVAL) {


timer = millis();

// Bangkitkan bilangan acak yang kurang dari 100


float nilai = random (10, 99) + (random(0, 100) / 100.0);

// Peroleh bilangan bulat yang mencakup


// 2 digit pecahan. Misal 34.56 menjadi 3456
int bilangan = nilai * 100;
sevseg.setNumber(bilangan, 2);
}

sevseg.refreshDisplay();
}

Penggunaan pustaka SevSeg 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:

const int INTERVAL = 1000;

125
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Adapun definisi berikut digunakan untuk menentukan jumlah angka pada penampil 7
segmen:

const int JUM_DIGIT = 4;

Pembentukan objek untuk mengakses penampil 7 segmen dilakukan oleh pernyataan:

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:

byte pinAngka[] = {14, 15, 16, 17};

byte pinSegmen[] = {10, 9, 8, 7, 6, 5, 4, 3};

angka 14 menyatakan pin A0, angka 15 menyatakan pin A1, angka 16 menyatakan pin A2,
dan angka 17 menyatakan pin A3.

Inisialisasi penampil 7 segmen dilakukan oleh pernyataan:

sevseg.begin(COMMON_CATHODE, JUM_DIGIT, pinAngka, pinSegmen);

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

Pernyataan berikut pada loop() digunakan untuk mendeklarasikan variabel statis timer yang
bertipe unsigned long dan diberi nilai awal berupa waktu di Arduino:

static unsigned long timer = millis();

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

126
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

berikut digunakan untuk mengeksekusi perintah yang berada di dalam { } kalau selisih antara
waktu sekarang dan timer melebihi nilai INTERVAL:

if (millis() - timer > INTERVAL) { …. }

jika ekspresi milis() - timer > INTERVAL terpenuhi, pernyataan pertama yang dieksekusi
adalah timer = millis();

pernyataan ini membuat waktu sekarang disimpan di timer.

Pernyataan berikut digunakan untuk memperoleh bilangan riil secara acak dengan nilai
kurang dari 100:

float nilai = random (10, 99) + (random(0, 100) / 100.0);

Selanjutnya,

int bilangan = nilai * 100;

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.

Tanpa tergantung oleh kondisi if, pernyataan berikut selalu dieksekusi:

sevseg.refreshDisplay();

Kegunaannya adalah bentuk memperbaharui tampilan di penampil 7 segmen.

Seven Segment 4 Angka Dengan 4 Pin


Sebelumnya kita belajar mengenai seven segment 4 digit dengan banyak pin, namun ada
juga yang hanya menggunakan 4 pin. Peranti ini bisa digunakan untuk menampilkan jam dan
menit. Keempat pin berlabel GND, VCC, DIO dan CLK secara berturut-turut. Jika memang

127
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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: https://github.com/avishorp/TM1637/releases.

Alasan mengapa menggunakan TM1637 adalah sebagai berikut:

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.

Modul ini dapat bekerja pada daya 5V (tegangan lebih tinggi dapat menyebabkan kerusakan
permanen).

128
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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>

const int CLK = 2;


const int DIO = 3;
TM1637Display display(CLK, DIO);

void setup()
{
display.setBrightness(0x0a);
}

void loop()
{

129
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

display.showNumberDec(8888);
}
Penggunaan pustaka TM1637 ditandai dengan baris:

#include "TM1637Display.h"

Pin Arduino yang dihubungkan ke pin CLK dan DIO didefinisikan melalui:

const int PIN_CLK = 2;

const int PIN_DIO = 3;

pernyataan berikut digunakan untuk membentuk objek yang digunakan untuk mengakses
penampil 7 segmen:

TM1637 tm1637(PIN_CLK, PIN_DIO);

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.

Untuk mengatur tingkat kecerahan menggunakan perintah (dalam bilangan hexadesimal):

display.setBrightness(0x0a);

Kemudian untuk menampilkan angka ke penampil 7 segment, maka gunakan perintah:

display.showNumberDec(8888);

130
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

131
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

LDR (Light Dependent Resistor)


LDR adalah sebuah Resistor yang tidak memiliki polaritas. Perbedaan dari LDR dan resistor
yang biasa kita gunakan sebelumnya adalah bahwa LDR ini termasuk resistor variabel yang
nilai resistansinya dapat kita atur. Untuk mengatur nilai resistansi tersebut maka
menggunakan cahaya. Semakin besar intensitas cahaya
yang didapatkan, maka semakin besar pula nilai
resistansinya. Oleh karena sifatnya itulah LDR ini dapat
digunakan sebagai sensor cahaya.

Untuk mempermudahkan dalam mempraktikkan komponen


ini, modul modul yang berisi sensor LDR perlu digunakan.
Gambar di samping menunjukan contoh modul LDR
bernama KY-018 buatan keyes. Namun, modul LDR buatan
vendor mana pun bisa digunakan.

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 analog
132
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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 untuk menguji rangkaian tersebut adalah seperti berikut:

Sketsa : ujiLDR.ino
void setup() {
Serial.begin(9600);
}

void loop() {
int nilaiLDR = analogRead(A0);

133
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Buatlah rangkaian seperti berikut:

134
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Contoh sketsanya seperti berikut:

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

135
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Cara kerja sensor hujan ini cukup


mudah. Panel yang digunakan untuk
mendeteksi air dibuat dengan membuat
serangkaian jalur tembaga yang terbuka,
jalur tersebut akan bertindak sebagai
resistor variabel (seperti potensiometer)
yang nilai tahanannya bervariasi sesuai
dengan jumlah air di permukaannya.

Nilai resistansi nya berbanding terbalik dengan jumlah air:

● Semakin banyak air di permukaan sensor berarti konduktivitas nya semakin baik dan
akan menghasilkan resistensi yang lebih rendah.
● Semakin sedikit air di permukaan berarti konduktivitas nya semakin buruk dan akan
menghasilkan resistensi yang lebih tinggi.

Sensor menghasilkan tegangan output sesuai dengan besar hambatannya, dengan nilai
besar output ini lah kita dapat menentukan seberapa besar intensitas hujan nya.

136
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Ikhtisar Perangkat Keras

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

Sensor ini juga berisi modul elektronik yang


menghubungkan panel sensor ke Arduino. Modul ini
menghasilkan tegangan output sesuai dengan tahanan
panel dan tersedia di pin Analog Output (AO).

Pada modul terdapat sebuah resistor variabel yaitu


sebuah trimpot yang dapat kita atur nilai resistansi nya,
nilai resistansi yang kita atur ini sebagai cara untuk
mengatur tingkat sensitifitas. Biasanya pengaturan
sensitifitas ini digunakan jika kita akan menggunakan data digital sebagai inputnya.

Buatlah rangkaian seperti berikut:

137
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Buatlah sketsa sebagai berikut:

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.

138
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Terdapat beragam sensor ini. Gambar di samping ini


memperlihatkan contoh sensor.

Contoh tersebut mempunyai kode YL-100. Namun,


banyak vendor yang menyediakan produk serupa,
misalnya FC-28 dan SparkFun Soil Moisture Sensor.

Cara menghubungkan sensor ini ke Arduino ditunjukkan


di gambar ini:

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

139
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

delay(1000);
}

Pada dasarnya, cara penggunaan dan cara membuat kode programnya adalah sama dengan
sensor curah hujan. Bahkan cara memprogramnya pun sama karena ketiga sensor tersebut
membaca keadaan fisik yang ada di sekeliling dia menjadi gelombang elektromagnetik yang
diatur menggunakan resistor. Ketiga sensor tersebut menggunakan resistor variabel.

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

Pada pembahasan ini kita akan menggunakan media suara / bunyi untuk menghitung jarak.
Seperti yang kita tahu, bahwa suara ini merambat melalui media zat padat, zat cair, dan gas.
Suara sendiri memiliki kecepatan rambatan yaitu 1.224 km/jam di udara dan 5.400 km/jam
di air (jauh lebih cepat daripada di udara). Suara sendiri kecepatan perambatannya akan
lebih lambat jika merambat pada suhu dan tekanan yang lebih rendah.

Cara kerja sensor pengukur jarak yang menggunakan suara ini adalah dengan mengeluarkan
suara dari transmitter, kemudian suara tersebut merambat melalui udara sampai mengenai
objek yang ingin diukur jaraknya yang kemudian suara tadi akan dipantulkan oleh objek
tersebut ke receiver. Hasilnya dihitung menggunakan rumus tadi.

140
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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:

v = 1224 km/jam = 0.0343 cm/µs


t = 0.001 detik

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.

Ragam sensor pengukur jarak yang menggunakan


ultrasonic ini cukup banyak, diantaranya seperti
LV-MaxSonar-EZ1, PING, dan HC-SR04. HC-SR04
termasuk sensor pengukur jarak yang sangat populer dan
mampu mengukur pada jarak 2 cm hingga 3 meter. Selain
harganya murah, cara menggunakannya juga mudah.
Sensor ini mempunyai empat pin. Kegunaan
masing-masing adalah seperti berikut:

1. VCC sebagai tegangan positif dihubungkan ke


tegangan 5V Arduino.
2. GND sebagai listrik negatif dihubungkan ke ground Arduino.

141
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Cara kerja sensor ini adalah dengan mengeluarkan gelombang suara ultrasonik pada bagian
Trigger dan menerima pantulan suara ultrasonik pada bagian Receiver.

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.

142
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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 5V

Frekuensi 40 kHz

Jarak Pengukuran 2 - 400 cm

Resolusi 3 mm

Sudut Pengukuran 15 Derajat

Sinyal Input (Trigger) 10 µs

143
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

Contoh hubungan antara HC-SR04 dan Arduino:

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

144
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(5);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

durasi = pulseIn(echoPin, HIGH);


jarak = durasi * 0.034 / 2;

Serial.print("Jarak = ");
Serial.print(jarak);
Serial.println(" cm");

delay(50);
}

Pertama-tama, pin trigger dan echo didefinisikan:

#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 trigPin, kompiler akan menggantinya
dengan nilai 2 saat program dikompilasi.

Selanjutnya kita mendefinisikan dua buah variabel:

long durasi;
int jarak;

145
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

durasi = pulseIn(echoPin, HIGH);


jarak = durasi * 0.034 / 2;

Akhirnya, kita tampilkan jarak tersebut pada serial monitor.


Serial.print("Jarak = ");
Serial.print(jarak);
Serial.println(" cm");

Agar pembacaan tidak terlalu cepat maka kita tambahkan delay tiap selesai menampilkan
jarak.

146
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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.

Library ini memang menyertakan beberapa contoh yang dapat kita gunakan, tetapi tentu kita
harus memodifikasinya agar sesuai dengan pengaturan rangkaian kita. berikut kode contoh
kode program yang telah dimodifikasi dan dapat digunakan dengan rangkaian yang sama
seperti sebelumnya.

Sketsa : ukurJarak_NewPing.ino
#include <NewPing.h>

#define trigPin 2
#define echoPin 3
#define MAX_DISTANCE 350

NewPing sonar(trigPin, echoPin, MAX_DISTANCE);


float duration, distance;

void setup() {
Serial.begin(9600);
}

void loop() {

147
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

delay(50);
duration = sonar.ping();
distance = (duration / 2) * 0.0343;

Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");

Kita juga dapat menggunakan distance = sonar.ping_cm() atau distance =


sonar.ping_in() untuk mendapatkan jarak yang dalam satuan sentimeter atau inci.
Dengan fungsi ini kita tidak perlu melakukan pengukuran durasi dan menghitung jarak.

Membrane Keypad 3x4


Keypad atau kadang disebut membrane keypad yang berisi
12 tombol bisa digunakan untuk memasukan angka dari 0
sampai 9. Selain itu, peranti ini dilengkapi dengan tombol *
dan # dengan Jumlah pin 7. Seperti gambar disamping.

Untuk mempermudah dalam memprogram keypad, pusaka


bernama keypad dilibatkan. Pusaka ini dapat diunduh di:
https://playground.arduino.cc/Code/Keypad/#Download

148
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Untuk menguji keypad, rangkaian berikut perlu disusun sesuai dengan gambar berikut:

Sketsa yang digunakan untuk menguji adalah seperti berikut:

Sketsa : keypad.ino
#include <Keypad.h>

char tombol[4][3] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};

byte pinBaris[] = {3, 4, 5, 6};


byte pinKolom[] = {7, 8, 9};
Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom, 4, 3);

149
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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:

byte pinBaris[] = {3, 4, 5, 6};

array berikut menyatakan pin-pin yang menyusun kolom pada keypad:

byte pinKolom[] = {7, 8, 9};

pembuatan objek untuk mengakses keypad dilakukan oleh pernyataan berikut:

Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom, 4,


3);

150
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

argument pertama menentukan susunan nama-nama tombol. Argumen kedua menyatakan


array yang berisi pin-pin di Arduino yang dihubungkan ke pin-pin baris di keypad. Argumen
ketiga menyatakan array yang berisi pin-pin di Arduino yang dihubungkan ke pin-pin kolom di
keypad. Argumen keempat menyatakan jumlah baris di keypad dan argumen kelima
menyatakan jumlah kolom di keypad.

Pembacaan tombol dilakukan oleh:

char kode = keypad.getKey();

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

Berikut contoh rangkaian keypad dan LED:

Sketsa ini dikembangkan berdasarkan kode pada sketsa keypad 3x3. Itulah sebabnya,
bagian yang sama tidak perlu dibahas kembali.

151
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Setelah kode tombol yang diklik diperoleh melalui:

char kode = keypad.getKey();

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.

berikut merupakan sketsanya:

Sketsa : keypadLed.ino
#include <Keypad.h>

const int PIN_LED = 2;

char tombol[4][3] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};

byte pinBaris[] = {3, 4, 5, 6};


byte pinKolom[] = {7, 8, 9};

152
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom, 4, 3);

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

Membrane Keypad 4x4


Keypad 4x4 mengandung 16 tombol. Selain tombol-tombol yang terdapat di keypad 3x4,
keypad ini mengandung huruf. Secara prinsip, cara memprogramnya keypad 4x4 serupa
dengan keypad 3x4.

153
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Adapun cara merangkainya diperlihatkan pada gambar dibawah ini:

Berikut menguji rangkaian di atas, sketsa berikut perlu diunggah:

Sketsa : keypad4x4.ino
#include <Keypad.h>

char tombol[4][4] = {
{'1', '2', '3', 'A'},

154
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

{'4', '5', '6', 'B'},


{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};

byte pinBaris[] = {3, 4, 5, 6};


byte pinKolom[] = {7, 8, 9, 10};
Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom, 4, 4);

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

Dalam hal ini, tombol adalah array dua dimensi berukuran 4x4. Kedua, array pinKolom berisi
4 elemen, yang dideklarasikan sebagai berikut:

byte pinKolom[] = {7, 8, 9, 10};

155
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Inputan PIN Menggunakan Keypad


Untuk mewujudkan hal ini, password disimpan pada variable password yang dideklarasikan
bertipe string dengan isinya berupa “DA124”. Nah, untuk mengujinya, kita harus
menggunakan rangkaian seperti yang digunakan pada sketsa keypad 4x4. Selanjutnya,
unggah sketsa berikut:

Sketsa : password.ino
#include <Keypad.h>

char tombol[4][4] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};

String password = "DA124";


String sandiPemakai;

byte pinBaris[] = {3, 4, 5, 6};


byte pinKolom[] = {7, 8, 9, 10};
Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom, 4, 4);

int posisi = 0;
boolean aksesDitolak = false;

void setup() {
Serial.begin(9600);
}

void loop() {
char kode = keypad.getKey();

156
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

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

sandiPemakai = ""; // Kosongkan


return; // Akhiri loop
}

sandiPemakai = sandiPemakai + kode;


Serial.println(sandiPemakai);
}
}
Adapun kode berikut ditujukan untuk memproses perbandingan isi sandiPemakaian dengan
isi password sekiranya isi kode berupa ‘#’;

if(kode == '#') {

if (sandiPemakai.equals(password)) {

Serial.println("Akses Diterima");

delay(2000);

157
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat
Arduino Dasar Bagi Pemula

Serial.println("Pintu sudah ditutup kembali");

}else{

Serial.println("Akses ditolak");

sandiPemakai = ""; // Kosongkan

return; // Akhiri loop

Perbandingan kedua string dilakukan dengan menggunakan:

sandiPemakai.equals(password)

Jika kedua string sama, tiga pernyataan berikut dieksekusi:

Serial.println("Akses Diterima");

delay(2000);

Serial.println("Pintu sudah ditutup kembali");

Jika kedua string tidak sama, pernyataan berikut dijalankan:

Serial.println("Akses ditolak");

Setelah if..else dijalankan, string sandiPemakai dikosongkan dan prosedur loop()


diakhiri. Adapun jika kode tidak berupa ‘*’ maupun ‘#’, isi kode ditambahkan diakhir
sandiPemakai dan Serial.println(kode); dijalankan. Dalam hal ini,
Serial.println(kode); adalah perintah yang ditujukan untuk melacak hasil sementara
pada variabel sandiPemakai.

158
Gedung Nusabot
Jl. Gerilyawan No. 1
Kota Cirebon, Jawa Barat

Anda mungkin juga menyukai