You are on page 1of 50

PART 1

ARDUINO INTRODUCTION

Bab ini menjelaskan tentang apa itu arduino secara hardware dan software selain itu bab
ini juga akan menjelaskan rangkaian arduino dan interface apa saja yang ada didalam
arduino. Bab ini juga akan menjelaskan istilah istilah dasar elektronika di arduino itu
sendiri.

1.1. Mikrokontroler
Sebelum kita mengenal apa itu arduino ada baiknya kita mengetahui apa itu
mikrokontroler karena arduino itu sendiri dasarnya adalah sebuah mikrokontroler.
Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian
elektronik dan umunya dapat menyimpan program didalamnya. Mikrokontroler
umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit
pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di
dalamnya. Intinya mikrokontroller adalah sebuah chip yang didlamnya terdiridari
microprosesor, memori dan I/O ports sehingga sangat cocok menjadi pengendali sistem
elektronika maupun robotika berbeda dengan mikroprosesor yang tidk terdapat I/O port
dan memori didalamnya.

1.2. What’s Arduino


Arduino adalah Sebuah Mikrokontroller Single-Board yang bersifat open-source,
diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik
dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya
memiliki bahasa pemrograman sendiri.

Gambar 1.1 Platform Arduino

platform hardware arduino juga open-source yang ditujukan kepada siapa saja yang
ingin membuat prototype peralatan elektronik interaktif berdasarkan hardware dan
software yang fleksibel dan mudah digunakan. Mikrokontroler diprogram menggunakan
bahasa pemrograman arduino yang memiliki kemiripan syntax dengan bahasa

LETS LEARN ARDUINO 1


pemrograman C. Karena sifatnya yang open-source maka siapa saja dapat mengunduh
skema hardware arduino dan membangunnya. Jadi dapat disimpulkan arduino bukan
mkrokontroler tapi sebuah board yang didalamnya ada mikokontroler sehingga
mempermudah pengguna dalam penggunaan mikrokontroler baik secara hardware
maupun software.
1.3. Sejarah Arduino
Dari manakah arduino itu bermula? Semuanya berawal dari sebuah thesis yang dibuat
oleh Hernando Barragan, di institute Ivrea, Italia pada tahun 2005, dikembangkan oleh
Massimo Banzi dan c dan diberi nama Arduin of Ivrea. Lalu diganti nama menjadi Arduino
yang dalam bahasa Italia berarti teman yang berani.

Gambar 1.2 Massimo banzi dan David Cuartielles

Tujuan awal dibuat Arduino adalah untuk membuat perangkat mudah dan murah, dari
perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang
akan membuat perangkat desain dan interaksi. Saat ini tim pengembangnya adalah Massimo
Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti.
Mereka mengupayakan 4 hal dalam Arduino ini, yaitu:

1. Harga terjangkau
2. Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Max, dan sebagainya.
3. Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam,
bukan untuk orang teknik saja.
4. Open Source, hardware maupun software.
Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat. Dan
banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino. Dan
Arduino juga sudah banyak dipakai oleh perusahaan besar. Contohnya Google
menggunakan Arduino untuk Accessory Development Kit,dan NASA memakai Arduino
untuk prototypin.

LETS LEARN ARDUINO 2


1.4. Arduino Board di pasaran dan spesifikasinya
No Arduino Board Spesifikasi
1. - mikrokontroler Atmega 328p
- 14 Digital I/O pin (6 PWM out)
- Analog input 6 pin
- Arus per I/O pin 20 mA dan 3.3V
pin 50 mA
- Flash memory 32 KB
- SRAM 2 KB & EEPROM 1 KB
- Clock speed 16 MHz
- Dimension 6.86 cm x 5.34 cm
Arduino Uno - Berat 25 gram
2. - mikrokontroler Atmega 2560
- 54 Digital I/O pin (15 PWM out)
- Analog input 16 pin
- Arus per I/O pin 20 mA dan 3.3V
pin 50 mA
- Flash memory 256 KB
- SRAM 8 KB & EEPROM 4 KB
- Clock speed 16 MHz
- Dimensi 10.152 cm x 5.33 cm
Arduino Mega - Berat 37 gram
3. - mikrokontroler Atmega 32u4
- 20 Digital I/O pin (7 PWM out)
- Analog input 12 pin
- Arus per I/O pin 40 mA dan 3.3V
pin 50 mA
- Flash memory 32 KB
- SRAM 2.5 KB & EEPROM 1 KB
- Clock speed 16 MHz
- Dimensi 6.86 cm x 5.33 cm
Berat 20 gram
Arduino Leonardo
4. - mikrokontroler Atmel Atmega 328
atau 168
- 14 Digital I/O pin (6 PWM out)
- Analog input 8 pin
- Arus per I/O pin 40 mA
- Flash Memory 16 KB (ATmega168)
atau 32 KB (ATmega328)
- SRAM 1 KB (ATmega168) atau 2
Arduino Nano KB (ATmega328)
- EEPROM 512 bytes (ATmega168)
atau1 KB (ATmega328)
- Clock speed 16 MHz
- Dimensi 4.5 cm x 1.8 cm
- Berat 5 gram

LETS LEARN ARDUINO 3


5. - Intel Curie
- 14 Digital I/O pin (4 PWM out)
- Analog input 6 pin
- Arus per I/O pin 20 mA
- Flash memory 196 KB
- SRAM 24 KB
- Clock speed 32 MHz
- Fitur: Bluetooth LE, 6-Axis Gyro &
Arduino Genuino 101 Accelerometer
- Dimensi 6.86 cm x 5.34 cm
- Berat 34 gram
6. - mikrokontroler AT91SAM3X8E
- 54 Digital I/O pin (12 PWM out)
- Analog input 12 pin
- Analog output pin (DAC 2 pin)
- Arus per I/O pin 130 mA , 3.3V
pin 800 mA dan 5V 800 mA
- Flash memory 512 KB
- SRAM 96 KB (2 Banks: 64 KB dan
Arduino due 32 KB
- Clock speed 84 MHz
- Dimensi 10.152 cm x 5.33 cm
- Berat 36 gram

1.5. Rangkaian arduino


Pada umumnya Rangkaian Sebuah Arduino terdiri dari satu unit jack USB, Rangkaian
Regulator, Rangkaian bootloader, rangaian led , reset button dan rangkaian
mikrokontroler yang terdiri dari crystal oscilator dan chip mikrokontroler . Rangkaian
Arduino mirip dengan Rankaian sebuah Minimum System Mikrokontroler pada
umumnya.

LETS LEARN ARDUINO 4


Gambar 1.3 Arduino UNO PinOut Diagram

1.6. Interface arduino


Pada gambar1.3 telah dijelaskan pinout diagram pada sebuah arduino uno. Pada gambar
tersebut kita bisa melihat output sebuah Arduino terdiri dari I/O pin, sda/scl pin (I2C),
rx/tx pin (UART) dan Mosi/Miso/Sck/SS pin (SPI). Pada subbab ini akan dijelaskan lebih
dalam tentang pin-pin tersebut pada arduino dan penggunaanya.

1.6.1. Arduino I/O pin


Dalam sebuah board arduino terdapat I/O Pin yang berfungsi sebagai penghubung
arduino ke sistem elektronik yang ingin dibuat. I/O pin pada arduino terdiri dari digital
Out pin, digital input pin, Analog Out pin (PWM) & Analog Input pin yang kesemuanya
merupakan bagian dari mikrokontroler yang dipasang di arduino board

1.6.1.1. Digital Output pin


Digital Output Pada Arduino memiliki fungsi mengeluarkan logika digital yaitu logic 1
(+5V) atau logic 0 (0v).

1.6.1.2. Digital Input pin


Kebalikan Dari Digital Output Pin, Digital input pin memiliki fungsi membaca logika digital
yaitu logic 1 (+5V) atau logic 0 (0v) yang masuk ke arduino.

LETS LEARN ARDUINO 5


1.6.1.3. Analog Output Pin
Analog Output Pin memiliki fungsi mengelurkan tegangan antara 0-5v dalam hal ini (0-
255) pada arduino. Analog Output Pin Cocok untuk control speed motor dc atau terang
redup led. Perlu diperhatikan tidak semua pin pada arduino dapat digunakan sebagai
Analog output Pin. Pin yang dapat digunakan sebagai analog input biasanya akan tertera
simbol (~) pada pinya.

1.6.1.3. Analog Input Pin


Analog Input pin memiliki fungsi untuk membaca output tegangan rangkaian elekronik,
Analog input pin kebanyakan digunakan sebagai pembaca sensor.dalam hal ini arduino
akan mengolah tegangan yang di baca menjadi angka 0-1024 (ADC 10 bit). Perlu
diperhatikan batas maksimum tegangan yang bisa di baca arduino adalah 0-5V apabila
ingin membaca lebih dari 5V di butuhkan rangkaian tambahan.

1.6.2. Arduino I2C pin


Dalam sebuah arduino terdapat pin I2C. Inter Integrated Circuit atau sering disebut I2C
adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain
khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial
Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan
pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan
sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C
Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal
Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.

Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai
perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan
sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA
dari “0” menjadi “1” pada saat SCL “1”. Kondisi sinyal Start dan sinyal Stop seperti
tampak pada Gambar 1.4

Gambar 1.4. kondisi sinyal start dan stop pada I2C

Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang disimbolkan
dengan ACK Setelah transfer data oleh master berhasil diterima slave, slave akan
menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan membuat SDA

LETS LEARN ARDUINO 6


menjadi “0” selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah menerima 8 bit
data dari Master. Kondisi sinyal acknowledge seperti tampak pada Gambar 1.5.

Gambar 1.5 Sinyal ACK dan NACK

Dalam melakukan transfer data pada I2C Bus, kita harus mengikuti tata cara yang telah
ditetapkan yaitu:

1. Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk.
2. Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL
dalam keadan tinggi. Keadaan perubahan “1” atau “0” pada SDA hanya dapat
dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan SDA
pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap sebagai sinyal
Start atau sinyal Stop.

I2C biasanya dapat digunakan sebagai kontroler modul atau pembaca data modul
kelebihan I2C hanya membutuhkan 2 buah pin sehingga bisa menghemat jumlah
penggunaan pin pada arduino. I2C pin Juga bisa menjadi jalur komunikasi antar 2 buah
arduino atau lebih.

1.6.3. Arduino UART pin


Didalam sebuah board arduino terdapat pin RX/TX. TX dan RX menggunakan protokol
yang diimplementasikan dalam sebuah perangkat bernama UART (Universal
Asynchronaus Receiver / Transmitter). Rx adalah jalur penerimaan data (perpindahan
data) dari satu komputer ke komputer lain. Rx biasa disebut received, yang berguna
menangkap data yang dikirim oleh transmitter (Tx). Tx disebut transmit yang berfungsi
untuk mengirim data/mengeluarkan data, atau merupakan jalan yang dilalui dalam
mengirim data antar device. data akan dikirim melalui Tx (transmitter) dan di ujung
lainnya data akan diterima melalui Rx (Received). Terdapat beberapa perangkat yang
menggunakan RX/TX dalam pengoersianya seperti bluetooth dan GPS (Global Positioning
System) sama seperti I2C UART juga bisa digunakan sebagai sebagai media komunikasi
antar Arduino.

1.6.4. Arduino SPI pin (Serial Pheriperal Interface)


sebuah arduino juga memiliki jalur komunikasi antarmuka yang lain yaitu SPI (Serial
Pheriperal Interface). Serial Peripheral Interface ( SPI ) merupakan salah satu mode
komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh Mikrokontrler.

LETS LEARN ARDUINO 7


Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini
data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroler
dengan peripheral lain di luar mikrokontroller. Penjelasan 3 jalur utama dari SPI adalah
sebagai berikut :

1. MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka
pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI
sebagai input.

2. MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka
pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO
sebagai output.

3. CLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output
tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.

Ada banyak kit arduino yang menggunakan interface SPI seperti Ethernet dan DMD (Dot
Matrix Display).

1.7. GUI Arduino


Pada subbab ini kita akan membahas tentang penjelasan software arduino dan
penggunaan library pada arduino.

1.7.1. Arduino IDE


Untuk memprogram arduino perintah yang akan dimasukkan kedalam arduino ditulis di
software arduino. Arduino IDE bisa didownload di website
http://arduino.cc/en/Main/Software kemudian Pilih OS yang anda gunakan. Download
dan install software seperti biasa, apabila komputer belum pernah diinstall driver
sebelumnya maka akan muncul perintah untuk install driver saat menginstall software
penting untuk tidak melewatkan semua instalasi driver.

LETS LEARN ARDUINO 8


Gambar 1.6 laman web http://arduino.cc/en/Main/Software

Apabila proses instalasi sudah selesai maka software sudah siap digunakan

Gambar 1.7 Arduino IDE dan penjelasan bagian bagian software

LETS LEARN ARDUINO 9


1.7.2. Library Arduino
Setelah merasa nyaman dengan software Arduino dan menggunakan fungsi built-in-nya,
Anda mungkin ingin menambah kemampuan Arduino dengan library tambahan. Apa itu
Library? Library/ Perpustakaan adalah kumpulan kode yang akan memudahkan kita
terhubung ke sensor, display, modul, dll. Sebagai contoh, built-in library LiquidCrystal
berfungsi untuk memudahkan berkomunikasi dengan karakter display LCD. Ada ratusan
perpustakaan tambahan yang tersedia di Internet untuk di-download. Built-in
perpustakaan dan beberapa dari library tambahan yang tercantum dalam referensi.
Untuk menggunakan library tambahan, Perpustakaan sering didistribusikan sebagai file
ZIP atau folder. Nama folder adalah nama dari perpustakaan. Di dalam folder tersebut
terdapat file .cpp, file .h dan file keywords.txt, contoh folder, dan file lain yang
dibutuhkan oleh perpustakaan.Anda dapat menginstal perpustakaan pihak ke-3 dalam
IDE.
Jangan unzip perpustakaan yang telah didownload, biarkan apa adanya. Dalam Arduino
IDE, arahkan ke Menu Sketch > Include Library . Di bagian daftar drop-down, pilih opsi
"Add.ZIP Library".

Gambar 1.8 menambah Library pada Arduino

Anda akan diminta untuk memilih perpustakaan yang ingin ditambahkan. Arahkan ke
lokasi file .zip kemudian buka file tersebut.

LETS LEARN ARDUINO 10


Gambar 1.9 memilih file.zip
Kembali ke menu Menu Sketch > Include Library. Sekarang Anda akan melihat
perpustakaan di bagian bawah menu drop-down. Dengan ini perpustakaan siap untuk
digunakan dalam sketsa Anda.

Gambar 1.10 Library Siap dipakai

LETS LEARN ARDUINO 11


1.8. Arduino starting
Setelah berhasil menginstall arduino saatnya kita mulai menggunakan arduino. Pertama
siapkan arduino dan kabel arduinonya. Colokkan arduino di usb port laptop/pc anda dan
buka software arduino ide. Buka File>Examples>basics>Blink maka akan tampil
program seperti dibawah ini.

Program diatas adalah program untuk menghidupkan led 13 pada arduino atau led L
pada board. Pada program diatas tertulis Void Setup() yang artinya program akan dimulai
sekali saat arduino dihidupkan program bagian program arduino dimulai dari tanda( { )
dan diakhiri tanda( } ) yang artinya suatu kumpulan program diawali dan di akhiri. Setelah
void Setup program kemudian dilanjutkan dengan void loop() yang artinya program
diulangi terus menerus setiap text yang diawali tanda (//) berarti comment yang artinya
tidak di baca oleh arduino. Comment biasanya didisi tentang penjelasan program. Pada
buku ini juga setiap program akan dijelaskan melalui comment tersebut.
Selanjutnya kita akan memilih board yang kita gunakan dengan cara pilih menu Tools >
Board. Setelah memilih board langkah selanjutnya adalah memilih port yang terpakai ke
arduino dengan cara pilih menu Tools > Port dan piih port yang tersedia apabila port
tidak bisa di pilih berarti arduino yang kita apakai belum terbaca oleh komputer coba cek
koneksi Arduino anda. Kemudian kita upload sketch blink yang telah ada tadi dengan klik
Upload lalu tunggu hingga lampu indikator RX dan TX pada board arduino anda selesai

LETS LEARN ARDUINO 12


berkelap-kelip. Setelah upload program selesai akan ada tulisan pada lingkaran dibawah
ini.

Gambar 1.11 program telah selesai ditulis pada arduino

Jika pogram telah selesai diupload maka lampu led L Arduino akan berkedip dalam
rentang waktu 1 detik (1000 milidetik).

LETS LEARN ARDUINO 13


PART 2
ARDUINO PROGRAMMING LANGUAGE
Pada Bab ini akan dijelaskan tentang bahasa, struktur dan syntax pemrograman pada
arduino. Arduino pada dasarnya menggunakan bahasa C yang akan di compile ke
Microcontroller menjadi (.HEX). Pada bab ini juga di jelaskan tentang tipe variabel data
pada arduino. Syntax bahasa C arduino untuk lebih jelasnya bisa di cek di halaman
https://www.arduino.cc/en/Reference/HomePage.

2.1 What’s C Language?


Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richards pada
tahun 1967. Bahasa ini memberikan ide pada Ken Thompson yang kemudian
mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan
selanjutnya dari bahasa B adalah bahasa C yang ditulis oleh Dennis Ritchie sekitar tahun
1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories).
Bahasa C pertama kali digunakan pada komputer Digital Equipment Corporation PDP-11
yang menggunakan sistem operasi UNIX.

Standar bahasa C yang asli adalah standar dari UNIX. Sistem operasi, kompiler C dan
seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa C. Kepopuleran bahasa
C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro. Untuk
membuat versi-versi tersebut menjadi standar, ANSI (American National Standard
Institutes) membentuk suatu komite (ANSI Committee X3J11) pada tahun 1983 yang
kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini didasarkan kepada
standar UNIX yang diperluas.

Bahasa C mempunyai kemampuan lebih dibanding dengan bahasa pemrograman yang


lain. Bahasa C merupakan bahasa pemrograman yang bersifat portabel, yaitu suatu
program yang dibuat dengan bahasa C pada suatu komputer akan dapat dijalankan pada
komputer lain dengan sedikit (atau tanpa) ada perubahan yang berarti. Arduino
menggunakan bahas C tapi bahasa C yang lebih disederhanakan lagi agar mudah
dipelajari oleh banyak orang seperti tujuan awal Arduino itu sendiri.

2.2. Tipe-tipe data pada Arduino


Di dalam bahasa pemrograman pasti terdapat yang namanya tipe data tak terkecuali
bahasa c pada arduino. Tipe Data adalah jenis nilai yang dapat ditampung oleh suatu
variabel. Jadi singkatnya dalam memprogram Arduino kita pasti membutuhkan data agar
memudahkan kita dalam melakukan perhitungan menggunakan rumus dan melakukan
penyimpanan data. Data yang dimaksud biasa berupa angka, huruf,karakter dan boolean
(True atau False). Berikut tipe tipe data pada Arduino. Dalam beberapa kasus di
pemrograman arduino kita membutuhkan konversi(mengubah) tipe data. Berikut sintax
konversi data pada Arduino:

LETS LEARN ARDUINO 14


Memori
No. Tipe Data Range Keterangan
(byte)
fungsi yang tidak
mengembalikan nilai
1 Void -
memiliki jenis return
sebagai void.
Boolean hanya terdiri dari
Boolean
2 1 1 atau 0 2 nilai logika yaitu True
(bool)
(benar) dan False (Salah)
nilai tipe data Char
mengacu pada tabel
3 char 1 -128 s/d 127 ASCII (American
Standard Code for
Information Interchange)
nilai tipe data Unsigned
Char mengacu pada
Unsigned
4 1 0 s/d 255 tabel ASCII (American
Char
Standard Code for
Information Interchange)
Berisi nilai byte yang
5 byte 1 0 s/d 255 terdiri dari bilangan 8 bit
angka 1 atau 0
6 int 2 -32,768 s/d 32,767 Berisi bilangan integer
Berisi bilangan integer
7 Unsigned int 2 0 s/d 65,535
(tidak negatif)
-2,147,483,648 s/d Berisi bilangan yang lebih
8 Long 4
2,147,483,647 besar dari integer
Berisi bilangan yang lebih
Unsigned
9. 4 0 s/d 4,294,967,295 besar dari integer (tidak
Long
negatif)
Berisi bilangan sama
10. short 2 -32,768 s/d 32,767
seperti integer
- 3.4028235E+38 s/d Berisi bilangan desimal
11. Float 4
3.4028235E+38 (bilangan berkoma)
Berisi bilangan desimal
- 1.7E+308 s/d
12. Double 4 (bilangan berkoma) yang
1.7E+308
lebih besar dari float
Sesuai
jumlah Berisi kumpulan dari
char yang beberapa char yang
13. String -
digunakan membentuk kata atau
(1 char = kalimat
1 byte)

LETS LEARN ARDUINO 15


No. Syntax Konversi dari Di Konversi ke
1. Char() Semua tipe data Char

2. Byte() Semua tipe data Byte

3. Int() Semua tipe data Integer

4. Long() Semua tipe data Long

5. Float() Semua tipe data Float

6. String() Semua tipe data String

2.3. Operasi Aritmatika


Arduino mampu melakukan operasi perhitungan atau aritmatika. Selain aritmatika
arduino juga mampu melakukan operasi trigonomtri dan logika. Berikut daftar operasi
yang bisa dilakukan oleh arduino.

No. Syntax Nama operasi Keterangan


1. = equals Sama dengan
2. + addition Melakukan operasi penjumlahan
3. - Subtraction Melakukan operasi pengurangan
4. * Multiplication Melakukan operasi perkalian
5. / division Melakukan operasi pembagian
6. % Modulo Melakukan operasi modulus (pesen)
7. == Equal to Operasi pembanding sama dengan
8. != Not Equal to Operasi pembanding tidak sama dengan
9. < Less than Operasi pembanding kurang dari
10. > Greater than Operasi pembanding lebih dari
Less than equal Operasi pembanding kurang dari sama
11. <=
to dengan
Greather than
12. >= Operasi pembanding lebih dari sama dengan
equal to
13. && And Operasi logi (dan)
14. || Or Operasi logika or (atau)
15. ! Not Operasi logika not (tidak)
16. & Bitwise and Operasi pembanding and pada bit
17. | Bitwise or Operasi pembanding or pada bit

LETS LEARN ARDUINO 16


18. ~ Bitwise not Operasi pembanding not pada bit
19. << Bitshift left Menggeser bit ke kanan
20. >> Bitshift Right Menggeser bit ke kiri
21. ++ Increment Penjumlahan 1 bit angka
22. -- Decrement Pengurangan 1 bit angka
Compound Melakukan penambahan sama dengan pada
23. +=
addition variabel
Compound Melakukan pengurangan sama dengan pada
24. -=
substraction variabel
Compound Melakukan perkalian sama dengan pada
25. *=
multiplication variabel
Compound Melakukan pembagian sama dengan pada
26. /=
division variabel
Compound Melakukan modulus sama dengan pada
27. %=
modulo variabel
Compound Melakukan perbandingan variabel bit dengan
28. &=
bitwise and and
Compound Melakukan perbandingan variabel bit dengan
29. |=
bitwise or or
30. min() minimum Mencari nilai minimum dari beberapa angka
31. max() maximum Mencari nilai maximum dari beberapa angka
32. abs() absolute Mengitung nilai absolut dari suatu angka
33. constrain() constrain Membatasi angka dalam range
Melakukan pemetaan (perubahan nilai pada
34. map() map
angka)
Memetakan suatu angka ke bilangan
35. pow() power
eksponen
36. sqrt() squirt Melakukan operasi aritmatika akar
37. sin() sinus Melakukan operasi trigonometri sinus
38. cos() cosinus Melakukan operasi trigonometri cosinus
39. tan() tangen Melakukan operasi trigonometri tangen

2.3. Sintaks if...else


If adalah sebuah konjungsi dalam bahasa c yang biasanya dibarengi dengan operator
pembanding (==, !=, <, >, <=, >=), yang mana bila kondisi tersebut tercapai maka
akan dilakukan eksekusi sebuah program. Contoh:

LETS LEARN ARDUINO 17


if (variabel > 50)
{
// lakukan aksi
}

Sintaks if juga bisa dipasangkan dengan else untuk membuat aksi lain jika kondisi lain
tidak dipenuhi. Contoh:

if (variabel < 500)


{
// aksi a
}
else
{
// aksi b
}

Sintaks if juga bisa dibuat menjadi if berantai untuk melakukan operasi eksekusi kondisi
yang lebih banyak dengan menggunan sintaks else if. Contoh:

if (variabel < 500)


{
// aksi a
}
else if (variabel >= 1000)
{
// aksi b
}
else
{
// aksi c
}

2.3. Sintaks for


Sintaks for digunakan Untuk mengulangi satu bait kode dalam angka tertentu.
Berikutpenggunaan kode sintaks for pada arduino:

for (i=0;i<10;i++)
{
// aksi a
}

/* for(inisialisasi;kondisi;penambahan) maksud dari sintaks


ini selama kondisi variabel i bernilai dibawah 10 aksi akan
terus dilakukan apabila sudah melewati 10 program akan
dilewatkan */

LETS LEARN ARDUINO 18


2.4. Sintaks Switch Case
Sama seperti logika if fungsi switch case juga menyeleksi suatu kondisi dan
mengeksekusi kondisi apabila kondisi terpenuhi hanya saja eksekusi kondisi pada switch
case dilakukan secara sekaligus. Contoh:

switch (var) {
case 1:
//lakukan sesuatu jika var bernilai 1
break;
case 2:
//lakukan sesuatu jika var bernilai 2
break;
default:
// jika tidak ada yang cocok default akan melakukan aksi
// opsional
break;
}

2.5. Sintaks While


Sintaks While berfungsi mengulangi suatu aksi secara berulang ulang selama kondisi
while itu masih benar dan akan dilewatkan jika kondisi salah.

while(kondisi){
// aksi
}

2.6.Sintaks do...while
Sintaks do....while berfungsi sama seperti while hanya saja kondisi akan di check di
akhirsedangkan while dari awal kondisi di cek.. Contoh:

do
{
// blok kondisi
} while (tes kondisi);

2.6. Sintaks goto


Sintaks Mentransfer aliran program ke tempat yang di label. Contoh:

label:

goto label; // mengirim program kembali ke label lagi

LETS LEARN ARDUINO 19


PART 3
ARDUINO PROJECT: BEGINNER LEVEL

Setelah mengenal tentang arduino IDE, Hardwarenya dan bahasa pemrogramanya


sekarang kita akan memulai melakukan project menggunakan arduino. Ada beberapa
project arduino yang akan kita lakukan pada bab ini, diantaranya:
1. Running LED dengan Arduino (6 LED)
2. Arduino LED control dengan push Button
3. Arduino Flipflop LED speed Control dengan Potensiometer
4. Arduino Motor Control dengan Potensiometer
5. Serial Control Arduino
6. Arduino Up Down Counter 7-Segment dengan push button
7. Arduino Automatic LED menggunakan sensor LDR
8. Thermometer Digital Arduino dengan sensor NTC

Di setiap Project akan terdapat beberapa section seperti:


1. What’s We’re Doing : menjelaskan tentang Project yang akan dibuat
2. Material & Circuit : rangkaian elektronik projek dan bahan bahan yang di butuhkan
3. Important: penjelasan penting tentang suatu project
4. Code : kode program project
5. Challenge: tantangan setelah project berhasil agar lebih mengerti

LETS LEARN ARDUINO 20


PROJECT 1
Running LED dengan Arduino

What We’re Doing:


Setelah membuat satu buah LED berkedip pada bab 1. Sekarang kita akan mencoba
menghubungkan 8 buah LED dengan Arduino. Tidak hanya membuat LED berjalan
.setelah melakukan Project ini diharapkan kita mampu membuat LED tersebut hidup dan
mati bervariasi Selama melakukan project kita akan mencoba membuat program
sesingkat mungkin agar lebih sedikit memakan memori pada arduino.

MATERIAL :
- Arduino x1 - Kabel Jumper - 5mm LED x6
- Breadboard x1 - Resistor 330 OHM x6

CIRCUIT

! IMPORTANT

Fungsi Resistor Pada Rangkaian


adalah sebagai penahan Arus agar
tidak terjadi arus berlebih pada LED,
Karna sebuah LED memiliki Spesifikasi
Arus Maksimum 20mA dan Tegangan
3.5v.

LETS LEARN ARDUINO 21


CODE:

CHALENGE:
1. Buatlah LED berjalan dari Kanan ke kiri /Sebaliknya
2. Buatlah Variasi LED bertabrakan dan LED Berkedip Selang-Seling

LETS LEARN ARDUINO 22


PROJECT 2
Buzzer bell arduino

What We’re Doing:


Setelah membuat running led kali ini kita akan mencoba mengendalikan sebuah buzzer.
Buzzer merupakan sebuah komponen elektronika yang mampu mengubah tegangan
menjadi suara. Pada project kali ini kita akan membuat buzzer mengeluarkan suara
hanya ketika push button ditekan.

MATERIAL :
- Arduino x1 - Kabel Jumper - 5mm LED x1 - push button 1x
- Breadboard x1 - buzzer 1x - Resistor 330 ohm 1x - resistor 10k 1x

CIRCUIT

! IMPORTANT

Cara kerja sebuah button adalah


ketika tombol ditekan maka btton
akan kontak ke rangkaian dan
menyebabkan pin arduino
mendeteksi nilai logika 1 (+5V)

LETS LEARN ARDUINO 23


CODE :

CHALLENGE:
1. Buatlah program ketika button ditekan buzzer akan hidup terus dan ketika ditekan lagi
buzzer akan mati.
2. buatlah program ketika button ditekan led dan buzzer berkedip.

LETS LEARN ARDUINO 24


PROJECT 3
Delay control dengan potensiometer

What We’re Doing:


Pada project kai ini kita akan mencoba menggunakan sebuah potensiometer untuk
mengatur kecepatan delay sebuah flip flop otensiometer adalah sebuah komponen yang
nilai resistansinya akan berubah ketika wiper nya di putar.

MATERIAL :
- Arduino x1 - Kabel Jumper - 5mm LED x2 - Breadboard x1
- potensiometer 10k - Resistor 330 ohm x2

CIRCUIT

! IMPORTANT
Beberapa jenis potensiometer

LETS LEARN ARDUINO 25


CODE :

CHALLENGE:
1.buatlah program mengatur intensitas cahaya dengan potensiometer
2.buatlah program ketika ketika potensio diputar kekiri led1 hidup Led 2 mati dan ketika
potensio diputar kekanan led 2 hidup dan led 1 mati.

LETS LEARN ARDUINO 26


PROJECT 4
motor control dengan potensiometer

What We’re Doing:


setelah mencoba menggunakan sebuah potensiometer untuk mengatur kecepatan
delaykali ini kita akan menggunakan potensiometer untuk mengontrol kecepatan motor
dc.

MATERIAL :
- Arduino x1 - Kabel Jumper - motor dc x1 - Breadboard x1
- potensiometer 10k - Resistor 2k2 ohm x1 - transistor mps2222 x1 - dioda 1n4001x1

CIRCUIT

! IMPORTANT

Prinsip kerja motor dc dalah ketika


arus mengalir melalui kmparan dalam
medan magnet. Gaya magnet
menghasikan torsi yang akan
memutar motor. Fungsi kumutator
adalah membalik arah arus setiap
setengah putaran untuk menjaga
arah putaran pada arah yang sama.

LETS LEARN ARDUINO 27


CODE :

CHALLENGE:
1. Buatlah program kecepatan motor naik secara perlahan dan ketika kecepaan motor
mencapai maksimum kecepatanya akan turun secara perlahan.

LETS LEARN ARDUINO 28


PROJECT 5
Arduino Serial Control

What We’re Doing:


Dalam Arduino kita mengenal istilah Serial Monitor. Serial Monitor selain bisa digunakan
sebagai penampil pembacaan data pada arduino bisa juga digunakan sebagai controler
atau pemberi perintah pada arduino. Pada projek ini kita akan mencoba mengendalikan
led, buzzer dan motor melalui serial monitor .

MATERIAL :
- Arduino x1 - Kabel Jumper - 5mm LED x2 - 1x transitor 2n2222
- Breadboard x1 - Resistor 330 OHM x2 - motor x1 - dioda 1N4001
- resistor 2.2 k x1 - buzzer 1x

CIRCUIT

! IMPORTANT
Serial.read()  untuk membaca karakter
Serial.parseInt()  untuk membaca
angka
Serial.readString()  untuk membaca
String

LETS LEARN ARDUINO 29


CODE :

LETS LEARN ARDUINO 30


Challenge
1.buatlah program untuk menampilkan perintah pada serial Monitor

LETS LEARN ARDUINO 31


PROJECT 6
7 SEGMENT COUNTER

What We’re Doing:


Kali ini kita akan mencoba membuat alat counter 7-segment. Dimana nilai yang tertulis
pada 7 segment akan bertambah atau berkurang sesuai dengan tombol di push button
yang kita tekan.

MATERIAL :
- Arduino x1 - Kabel Jumper - 7 segment x1 - resistor 10 k x1
- Breadboard x1 - push button x2

CIRCUIT

LETS LEARN ARDUINO 32


CODE :

CHALLENGE:
1. Buatlah program counter berjalan otomatis apabila tombol ditekan dan akan berhenti bila
tombol tersebut ditekan lagi.

LETS LEARN ARDUINO 33


PROJECT 7
AUTOMATIC LDR LED

What We’re Doing:


Kali ini kita akan mencoba membuat sebuah LED otomatis yang akan hidup ketika sensor
sedikit mendeteksi cahaya. Dan mati ketika sensor banyak mendeteksi cahaya. Hal ini
diterapkan juga untuk lampu Otomatis yang hidup ketika malam dan mati ketika pagi.

MATERIAL :
- Arduino x1 - Kabel Jumper - 5mm LED x2 - resistor 10k x1
- Breadboard x1 - Resistor 330 OHM x1 - LDR x1

CIRCUIT

! IMPORTANT
LDR (Light Dependant Resistor) adalah
sensor yang mengubah intesitas cahaya
menjadi resistansi (tahanan). Maka untuk
mengubahnya ke tegangan diperlukan
rangkaian votage divider (pembagi
tegangan).

LETS LEARN ARDUINO 34


CODE :

CHALLENGE:
1. Buatlah program untuk mengatur intensitas cahaya LED melalui LDR

LETS LEARN ARDUINO 35


PROJECT 8
THERMOMETER DIGITAL NTC

What We’re Doing:


Setelah mencoba counter dengan satu buah 7 segment, kali ini kita akan mencoba
membuat sebuah thermometer digital yang nilainya akan ditampilkan pada dua buah 7-
segment. Untuk sensor suhunya kita akan menggunakan sensor ntc, cara merangkai ntc
pada rangkaian sama seperti merangkai LDR karana NTC mengubah suhu menjadi
resistansi dimana semakin rendah suhunya resistansi akan semakin besar.

MATERIAL :
- Arduino x1 - Kabel Jumper - 7-segment LED x2 - resistor 10k x1
- Breadboard x1 - NTC x1

CIRCUIT

! IMPORTANT

LETS LEARN ARDUINO 36


CODE :

LETS LEARN ARDUINO 37


CHALLENGE:
1. Buatlah program untuk mengatur motor otomatis apabila suhu diatas 30 derajat celcius
maka motor hidup dana apabila dibawah motor mati.
2. Buatlah program untuk membaca suhu fahrenheit

LETS LEARN ARDUINO 38


PART 4
ARDUINO PROJECT: INTERMEDIETE LEVEL

Setelah mengenal dasar arduino melalui project beginner. Kali ini kita akan mencoba
project arduino yang lebih mendalam lagi pada bab ini diantaranya:
1. potensio Servo Arduino
2. ping sensor (water level alarm)
3. Arduino Bluetooth control
4. gyro-Accel starting
5. arduino doorlock with keypad & LCD
6. sound switch relay arduino

Di setiap Project akan terdapat beberapa section seperti:


1. What’s We’re Doing : menjelaskan tentang Project yang akan dibuat
2. Material & Circuit : rangkaian elektronik projek dan bahan bahan yang di butuhkan
3. Important: penjelasan penting tentang suatu project
4. Code : kode program project
5. Challenge: tantangan setelah project berhasil agar lebih mengerti

LETS LEARN ARDUINO 39


PROJECT 1
POTENSIO SERVO ARDUINO

What We’re Doing:


Pada project kali ini kita akan mencoba mengendalikan motor servo dengan
menggunakan potensiometer. Motor servo merupakan motor dc yg di couple dengan
potensiometer sehingga arahnya putaranya bisa dilimit ke derajat tertentu. Motor servo
ini kebanyakan digunakan untuk sendi robot dan penggerak pesawat RC.

MATERIAL :
- Arduino x1 - Kabel Jumper - Motor Servo 1x
- Breadboard x1 - potensiometer 10k 1x

CIRCUIT

! IMPORTANT

Control pada Motor servo berbeda


dengan motor dc dimana motor
servo tidak dicontrol melalui pwm
seperti pada motor dc tetapi
menggunakan input pulsa
dikarenakan rangkaian di dalam
motor servo membaca
menggunakan pulsa.

LETS LEARN ARDUINO 40


CODE:

CHALENGE:
1. Buatlah servo berjalan otomatis dari kiri ke kanan dan sebaliknya

LETS LEARN ARDUINO 41


PROJECT 2
Water Ping Level Alarm

What We’re Doing:


Pada project kali ini kita akan mencoba membuat sebuah alat yang mendeteksi ketinggian
air, ketika ketinggian air sudah mencapai ke yang kita set maka alarm akan hidup untuk
mendeteksi airnya kita akan menggunakan sensor ping. Cara kerja sensor ping mirip
seperti cara kelelawar berburu di malam hari yaitu dengan memancarkan gelombang
ultrasonic dan menangkapnya kembali.

MATERIAL :
- Arduino x1 - Kabel Jumper - buzzer x1
- Breadboard x1 - sensor Ping x1

CIRCUIT

! IMPORTANT

Sensor ping dapat mengukur jarak antara 3


cm sampai 300 cm. keluaran dari sensor ini
berupa pulsa yang lebarnya
merepresentasikan jarak. Lebar pulsanya
bervariasi dari 115 uS sampai 18,5 mS. Pada
dasanya, Ping))) terdiri dari sebuah chip
pembangkit sinyal 40KHz, sebuah speaker
ultrasonik dan sebuah mikropon ultrasonik.
Speaker ultrasonik mengubah sinyal 40 KHz
menjadi suara sementara mikropon
ultrasonik berfungsi untuk mendeteksi
pantulan suaranya.

LETS LEARN ARDUINO 42


CODE:

CHALENGE:
1. Buatlah program baca sensor ping ke serial monitor tetapi dengan menggunakan satuan
inci

LETS LEARN ARDUINO 43


PROJECT 3
BT Arduino Control

What We’re Doing:


Pada project kali ini kita akan mencoba mengontrol led menggunakan sebuah arduino
melalui android dan aplikasi bluetooth. Untuk aplikasi bluetoothnya bisa didownload di
playstore di alamat:
https://play.google.com/store/apps/details?id=com.circuitmagic.arduinobluetooth.
Download dan install appsnya.

MATERIAL :
- Arduino x1 - Kabel Jumper - resistor
- Breadboard x1 - led - bluetooth hc-05

CIRCUIT

! IMPORTANT

Tampilan Display Aplikasi Bluetooth Android


, connect nama bluetooth dengan arduino
password 1234

LETS LEARN ARDUINO 44


CODE:

CHALENGE:
1. Buatlah program membaca data dari bluetooth ke serial monitor

LETS LEARN ARDUINO 45


PROJECT 4
Gyro Accel starting

What We’re Doing:


Pada project kali ini kita akan mecoba mebaca sensor gyro dan membuat outputnya
dibaca melalui serial monitor. Sensor gyro/accelerometer merupakan sensor yang mampu
membaca sikap/attitudenya sendiri, sensor ini biasa digunakan didalam smartphone,
pesawat,satelit, multicopter dsb.

MATERIAL :
- Arduino x1 - Kabel Jumper
- Breadboard x1 - modul sensor gy-521

CIRCUIT

! IMPORTANT
Accelerometer adalah sensor yang digunakan untuk mengukur percepatan suatu objek. Accelometer
mengukur percepatan dynamic dan static. Pengukuran dynamic adalah pengukuran percepatan pada objek
bergerak, sedangkan pengukuran static adalah pengukuran terhadap gravitasi bumi. Untuk mengukur sudut
kemiringan (tilt). giroskop adalah perangkat untuk mengukur atau mempertahankan orientasi, dengan prinsip
ketetapan momentum sudut. Mekanismenya adalah sebuah roda berputar dengan piringan didalamya yang
tetap stabil. Giroskop sering digunakan pada robot atau heli dan alat-alat cangggih lainnya.

LETS LEARN ARDUINO 46


CODE:

CHALENGE:
1. Buatlah program mengendalikan servo menggunakan gy-521

LETS LEARN ARDUINO 47


PROJECT 5
Arduino sound switch

What We’re Doing:


Pada project kali ini kita akan mencoba menghidupkan sebuah led menggunakan sensor
suara/saklar suara.

MATERIAL :
- Arduino x1 - Kabel Jumper - resistor 220 ohm
- Breadboard x1 - modul sensor fc-04 - LED

! IMPORTANT
Modul fc-04 adalah modul sensor yang
terdiri dari rangkaian microphone untuk
menangkap suara dan meneruskanya ke
output berupa tegangan

LETS LEARN ARDUINO 48


CODE:

CHALENGE:
1. Buatlah program membaca kebisingan suara ke serial monitor

LETS LEARN ARDUINO 49


DAFTAR PUSTAKA
“pengertian arduino” wikipedia. 20 November 2016. Web. 22 november 2016.
https://id.wikipedia.org/wiki/Arduino
“Sejarah Arduino” wikipedia. 20 November 2016. Web. 22 november 2016.
https://id.wikipedia.org/wiki/Arduino
“jenis-jenis Arduino” arduino.cc. 19 November 2016. Web. 22 november 2016.
https://www.arduino.cc/en/Main/Products
“i2c Arduino” purnomosejati 25 agustus 2011. Web. 23 november 2016.
https://purnomosejati.wordpress.com/2011/08/25/mengenal-komunikasi-i2cinter-
integrated-circuit/
“Arduino Syntax” arduino.cc 19 november 2016. Web. 23 november 2016.
https://www.arduino.cc/en/Reference/HomePage
“Interface UART” pintar komputer 19 november 2014. Web. 23 november 2016.
http://www.pintarkomputer.com/pengertian-dan-penjelasan-tentang-tx-pada-sistem-
pengkabelan-jaringan-komputer/
“Interface SPI” STMIK_RAHARJA 10 maret 2014. Web. 24 november 2016.
http://edybillstephen.ilearning.me/2014/03/10/pengertian-serial-peripheral-interface-spi-
dan-pengenalan-usart-atmega8535/

LETS LEARN ARDUINO 50

You might also like