Anda di halaman 1dari 79

ARDUINO

BASIC #1

www.bogor-instrument.id | 0812-3107-8488 | Cluster Griya Cakrawala Block C8 Pondok Rajeg Cibinong Bogor JABAR
Arduino Basic #1 2018

Bogor Instrument | www.bogor-instrument.id|081231078488 2


Arduino Basic #1 2018

1. Pengenalan Arduino

Arduino adalah platform prototype opensource atau terbuka yang mengedepankan penggunaan yang
mudah dan simple dari sisi hardware maupun software di bidang mikrokontroller. Arduino sendiri terdiri
atas dua bagian, development board Arduino dan Arduino Software IDE (Integrated Development
Environment) yaitu development tools yang digunakan untuk menulis kode program dan
menguploadnya ke board Arduino dengan mudah. Berikut adalah salah satu penampakan dari apa yang
dimaksud dengan arduino itu sendiri.

Board Arduino Type Uno R3 Arduino IDE

Untuk kedepannya, buku ini akan memfokuskan pembaca untuk mengenal lebih jauh board arduino
type UNO saja, karena untuk entry level, board ini sudah cukup mumpuni dengan jumlah fiture dasar
yang melimpah pada suatu mikronkotroler. Dan jika pembaca sudah memahami betul board type Uno
ini, maka secara otomatis, pembaca bisa dengan mudah memahami karakteristik board mikronkontroler
type yang lainnya.

Arduino awal kali diciptakan di Italy, hanya saja, kita bisa menciptakan atau mereduplikasi board arduino
type apa saja sesuai kebutuhan kita karena semua rangkaian, semua wiring sekmatik serta komponen
listnya sudah masuk dalam kategori OPEN SOURCE. Hanya saja pesan penulis, daripada bikin sendiri,
rempong, mending beli di lapak penulis saja ni online shopnya www.bogor-instrument.id 

Bogor Instrument | www.bogor-instrument.id|081231078488 3


Arduino Basic #1 2018

1.1.1 Keuntungan Menggunakan Platform Arduino


Berikut adalah keuntungan kita menggunakan platform Arduino:
1. Tidak perlu susah membuat board atau minimum system mikrokontroler sendiri, karena dengan
menggunakan board Arduino kita bisa menggunakan semua fiture dari sebuah mikrokontroller
dengan lengkap.
2. Tidak lagi memerlukan downloader atau alat tambahan yang digunakan untuk mengupload code
program dari PC/laptop ke board microcontroller, karena pada board Arduino sendiri sudah
terdapat usb downloader. Tinggal colok USB dan klik Upload.
3. Bahasa pemrograman yang lebih mudah dipahami untuk segala lapisan, mulai dari newbie yang
belum pernah coding sama sekali, sampai dengan yang sudah expert di bahasa pemrograman
yang lain, kayak penulis.. :)
4. Dukungan hardware atau module sensor maupun module komunikasi yang sudah banyak
beredar dipasaran, sehingga memudahkan kita untuk bisa langsung mengimplementasi system
sesuai kebutuhan kita. Tinggal beli (ingat belinya disini ya www.bogor-instrument.id), colok,
code, dan upload.
5. Dukungan Library atau bahasa kerennya driver untuk tiap module hardware yang banyak
tersedia diinternet maupun forum mikrontroler, sehingga banyak user yang dimudahkan dari sisi
implementasi code tidak perlu ribet cos sudah ada manusia-manusia yang dermawan yang telah
menyumbangkan buah pikirannya untuk membuatkan sebuah library, kayak penulis yang sudah
meluangkan waktunya untuk membuat sebuah buku gratis untuk kamu.. iya kamu.. hehehe.. :)

Bogor Instrument | www.bogor-instrument.id|081231078488 4


Arduino Basic #1 2018

1.1.2 Macam dan Type Board Arduino


Di pasaran Indonesia, banyak sekali board arduino yang beredar, dari mulai tingkat beginer level sampai
dengan yang level advance. Berikut akan di kulik sedikit perbedaan mendasar pada board arduino
tersebut. Perbedaan mendasar yang paling utama adalah pada jenis tipe prosesor yang dipakai. Semakin
tinggi tingkat prosesor tersebut maka jumlah fiture yang ditampung juga makin tinggi, dan semakin
banyak pula jumlah resource pin - pin yang bisa digunakan dan semakin cepat pula clock speednya.

Berikut adalah perbedaan mendasar board arduino yang beredar dipasaran khususnya Indonesia.

Digital
Analog Clock
Boards MCU I/O SRAM EEPROM
Input Pins Speed
pins
Arduino Uno R3 16Mhz
Arduino Promini Atmega328 14 6 2Kb 1Kb 8Mhz/16Mhz
Arduino Nano 8Mhz/16Mhz
Arduino Leonardo ATmega32U4 20 12 2.5Kb 1Kb 16Mhz
Arduino Mega260 Atmega2560 54 16 8Kb 4Kb 16Mhz

Dan masih banyak lagi tipe dan jenis board arduino yang beredar dipasaran yang disesuaikan dengan
kebutuhan seperti Arduino Yun yang digunakan khusus untuk project Internet Of Things, Lilypad yang
digunakan untuk wearable device dan lain lain yang nanti dibahas pada buku selanjutnya.. :)

Bogor Instrument | www.bogor-instrument.id|081231078488 5


Arduino Basic #1 2018

1.2 Arduino Pinout Mapping

Berikut adalah penjelasan masing masing blok pin out dari arduino UNO R3 :

1.2.1 Digital Pin


Digital Pin adalah pin yang digunakan untuk membaca atau menulis sinyal digital (HIGH/LOW)
pada board Arduino. Untuk diketahui nilai dari logika HIGH atau LOW pada sistem arduino
ditentukan dari besar nilai tegangan yang masuk atau keluar dari board arduino. Untuk nilai

Bogor Instrument | www.bogor-instrument.id|081231078488 6


Arduino Basic #1 2018
tegangan pada logik HIGH adalah bernilai diatas 3 - 5 Volt, sedangkan nilai logic LOW adalah
kurang dari 1.5 Volt.

Jika ingin mengakses pin digital pada board arduino, maka diperlukan setting terlebih dahulu
untuk menset mode pin tersebut apakah akan digunakan sebagai INPUT ataukah OUTPUT.
Untuk melakukannya cukup dengan menambahkan perintah syntax sebagai berikut:

pinMode(pin digital, INPUT/OUTPUT).

Berikut adalah salah satu contoh untuk setting mode pada pin digital 13 sebagai OUTPUT dan
pin digital 5 sebagai INPUT
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
// initialize digital pin 13 as an output.
pinMode(5, INPUT);
}

Syntax untuk membaca status logika pada pin digital (HIGH/LOW) adalah dengan perintah
sebagai berikut:

digitalRead(pin digital);

Sebagai contoh jika kita ingin membaca status logik (HIGH/LOW) pada pin 5 tadi, maka berikut
adalah syntaxnya:

void loop() {
Serial.println(digitalRead(5)); //hasil logika akan ditampilkan pada serial
terminal
}

Untuk menset atau menulis output suatu digital pin ke logik HIGH atau LOW, maka berikut
adalah format perintahnya:

digitalWrite(pin digital,HIGH/LOW);

Contoh, jika kita ingin menset output dari pin 13 dengan logik HIGH, maka berikut adalah
perintahnya:

void loop() {
//menset output pin 13 ke HIGH
digitalWrite(13,HIGH);
//menset output pin 13 ke LOW
digitalWrite(13,LOW);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 7


Arduino Basic #1 2018
1.2.2 Analog Pin
Analog Pin adalah pin yang digunakan untuk membaca nilai tegangan analog dengan range
antara 0 - 5 Volt DC. Jangan digunakan untuk membaca nilai tegangan lebih dari 5 Volt karena
dapat merusak pin chip Arduinonya, karena masing - masing pin pada board arduino Uno R3
hanya mampu membaca input tegangan sampai dengan maksimal 5 volt DC saja.

Pada board arduino uno ada 6 pin analog yang bisa digunakan, yaitu mulai pin A0 - A5.
Semuanya bisa diakses dengan syntax perintah sebagai berikut:

analogRead(sensorPin);

Syntax perintah analogRead() sendiri akan memberikan hasil pembacaan analog to digital
converter (ADC) sampai dengan range decimal 1023, sehingga jika kita ingin mengubahnya ke
bentuk tegangan, maka diperlukan konversi ke nilai tegangan, dengan contoh syntax
perintahnya sebagai berikut:

float voltage= analogRead(sensorPin) * (5.0 / 1023.0);

1.2.3 Power Pin


Power Pin adalah pin yang digunakan untuk keperluan supply baik input maupun supply output.
Dimana yang dimaksud dengan supply input adalah tegangan minimal yang diperlukan agar
board arduino bekerja optimal. Untuk supply input pin sendiri minimal 3.7 volt, dan maksimal 5
volt. Dan di hubungkan ke pin Vin pada board Arduino.

Sedangkan supply output pin disini adalah pin yang outputnya bisa digunakan sebagai input
supply ke module atau perangkat yang lain diluar rangkaian board arduino. Pada board arduino
type uno, terdapat 2 jenis supply output pin yaitu yang nilai tegangannya 3.3 volt dan 5 volt.

1.2.4 Serial Pin,


Serial pin adalah pin yang digunakan untuk komunikasi serial dengan perangkat elektronik yang
lain. Dimana pin ini terdiri atas dua pin RX dan TX. Untuk board arduino uno sendiri hanya
memiliki 1 Serial Pin yang terhubung dengan USB Port. Port ini bisa disetting untuk kecepatan
baudrate speednya, mulai sehingga bisa disesuaikan dengan speed baudrate pada perangkat
lain.

Bogor Instrument | www.bogor-instrument.id|081231078488 8


Arduino Basic #1 2018
Untuk mengakses fitur serial pin kita perlu menginisialiasi dan menset terlebih dahulu fungsi
serial dengan syntax perintah sebagai berikut:

Serial.begin(nilai baudrate);

dimana nilai baudrate yang bisa disetting adalah sebagai berikut:


300 bps, 1200 bps, 2400 bps, 4800 bps, 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115200
bps, 230400 bps dan 250000 bps. Dimana bps adalah satuan bit per detik.

Sebagai contoh, jika kita ingin menginisialisasi port serial dengan nilai baudrate 9600, maka
berikut adalah syntax perintahnya.

void setup() {
//menset output pin 13 ke HIGH
digitalWrite(13,HIGH);
//menset output pin 13 ke LOW
digitalWrite(13,LOW);
}

Semakin besar nilai baudrate, maka semakin cepat pula data akan ditransmit, namun semakin
pendek pula jarak komunikasi yang bisa ditempuh. Jika diperlukan komunikasi serial dengan
jarak yang lumayan jauh, kita bisa menset nilai baudrate ke yang paling rendah, namun hal
tersebut disesuaikan pula dengan kemampuan perangkat device yang lain.

1.2.5 SPI Pin


SPI pin adalah pin yang digunakan untuk keperluan komunikasi Serial Peripheral Interface
dengan perangkat lain. Umumnya SPI pin terdiri atas 4 pin yaitu MISO (Master In Slave Out),
MOSI(Master Out Slave In), SCK(Serial Clock), SS (Slave Select).

Berikut adalah pin SPI pada board arduino


Board Name MOSI MISO SCK SS Level
Arduino Uno R3
Arduino Nano 11 12 13 10 5 Volt
Arduino Promini
Arduino Lilypad
Arduino Mega2560 51 50 52 53 5 Volt

1.2.6 I2C Pin


I2C pin adalah pin yang digunakan untuk komunikasi I2C (Inter Integrated Circuit) dengan device
lain yang suppport dengan type komunikasi tersebut, dimana untuk kebutuhan wiringnya hanya
memerlukan 2 kabel saja, yaitu SDA dan SCL. SDA adalah jalur data sedangkan SCL adalah jalur
sinyal clock pulsa. Untuk jenis komunikasi I2C ini bisa support hubungan master dan slave
device sampai dengan 112 slave yang berbeda. Pada board arduino uno, pin I2C SDA terhubung
pada pin analog A4 sedangan SCL terhubung pada pin analog A5.

Bogor Instrument | www.bogor-instrument.id|081231078488 9


Arduino Basic #1 2018

1.2.7 PWM Pin


PWM pin adalah pin yang digunakan untuk keperluan projek yang memerlukan modifikasi
modulasi lebar signal atau Pulse Width Modulation. Dimana dengan sistem PWM ini, kita bisa
mengkontrol kecepatan motor DC, mengatur tingkat kecerahan atau brightness pada lampu LED
dan lain lain dengan cara memanipulasi lama waktu ON dan lama waktu OFFF yang kita set
dengan nilai range tertentu (antara 0-255) pada pin digital dengan harapan nilai tegangan yang
keluar dari pin digital akan variatif dengan syntax perintah sebagai berikut:

analogWrite(pin digital, range 0-255);

dimana untuk mencari nilai range yang sesuai dengan duty cycle bisa menggunakan rumus
berikut:

range = (duty cycle * 255) / 100

Sebagai contoh jika kita ingin menset output pwm dengan duty cycle sebesar 75% maka dengan
menggunakan rumus diatas, nilai range yang harus dimasukan ke kode adalah 191.

Bogor Instrument | www.bogor-instrument.id|081231078488 10


Arduino Basic #1 2018
1.2.8 Interupt Pin
Interrupt pin adalah pin yang digunakan untuk menghandle interupsi dari luar yang harus
diutamakan oleh microcontroller ketimbang melakukan sekuensial yang lain. Dimana dengan
menggunakan interrupt, kita tidak perlu lagi melakukan metode pollin dengan mengecek per
satuan waktu untuk mengetahui ada tidaknya input interupsi dari luar karena sudah dilakukan
secara otomatis oleh microcontrolernya sendiri. Untuk board arduino type Uno, terdapat 2
interrupt pin yang bisa digunakan pada board arduino type UNO, yaitu INT0 dan INT1 dimana
untuk INT0 terhubung pada pin digital 2 dan INT1 terhubung pada pin digital 3.

Untuk mengeset pin digital 2 maupun pin digital 3 sebagai input Interrupt, maka kita perlu
menulis sintak perintah sebagai berikut:

attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);

dimana
 pin adalah digital pin yang ingin digunakann, dalam hal ini board UNO adalah 2 atau 3
 ISR adalah interrupt function handler, yaitu fungsi yang akan dieksekusi jika muncul
interrupt
 mode, adalah mode pendeteksian trigger interrupt, dalam hal ini ada beberapa mode
yang diperbolehkan:
 LOW : deteksi trigger interrupt ketika input pin pada kondisi LOW
 CHANGE : deteksi trigger interrupt ketika input pin kondisinya berubah LOW ke
HIGH ataupun HIGH ke LOW
 RISING : deteksi trigger interrupt ketika input pin kondisinya berubah dari LOW
ke HIGH
 FALLING : deteksi trigger interrupt ketika input pin kondisinya berubah dari
HIGH ke LOW
 HIGH : deteksi trigger interrupt ketika input pin pada kondisi HIGH

Berikut adalah contoh kode untuk menset pin digital 2 sebagai interrupt dengan memanggil
fungsi interrupt handler void blink().

const byte ledPin = 13;


const byte interruptPin = 2;
volatile byte state = LOW;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 11


Arduino Basic #1 2018

void loop() {
digitalWrite(ledPin, state);
}

void blink() {
state = !state;
}

Bogor Instrument | www.bogor-instrument.id|081231078488 12


Arduino Basic #1 2018

1.3 Arduino IDE

Langkah awal sebelum menulis koding adalah dengan menginstall terlebih dahulu software Arduino IDE.
Silahkan download Arduino IDE terbaru di link berikut: Download Page. Disini penulis memilih untuk
mendownload type file instalasi Windows Installer, dimana dengan memilih type installer ini, semua file
yang terasosiasikan dengan arduino ide, semisal file dengan ekstensi *.ino, *.h dan lain lain bisa
langsung dibuka dengan sekali klik tanpa memilih lagi progam ataupun aplikasi mana yang sesuai
dengan type extensi file tersebut.

1.3.1 Proses instalasi Arduino IDE


Berikut adalah proses intstalasi software arduino IDE :
1. Buka Folder download dimana file installer arduino berada, dan jalankan file exe nya.

Bogor Instrument | www.bogor-instrument.id|081231078488 13


Arduino Basic #1 2018
2. Klik Agree --> Klik Next

3. Pilih folder instalasi

4. Klik install driver serial port untuk beberapa vendor arduino seperti adafruit dll. Dan klik
Close jika sudah selesai.

5. Ketika sudah sukses terinstall, maka kita bisa langsung running software Arduino IDE
Klik Start -> Arduino

Bogor Instrument | www.bogor-instrument.id|081231078488 14


Arduino Basic #1 2018
1.3.2 Pengenalan Environment Arduino IDE
Tool bars

Serial Terminal

Compile / Verify

Upload Sketch

Sketch Name

Editor Window

Comment Line

Notification Bar

Console Window

Cursor Line
Board Status

Berikut adalah keterangan untuk masing - masing fiture dari Arduino IDE software:
 Compile/Verify : adalah fiture yang digunakan untuk kompilasi serta pengecekan kode yang
ditulis terkait ada salah penulisan syntax perintah ataupun warning pada algoritma
pemrogramannya. Jika terdapat error waktu kompilasi atau verify, hasilnya akan
ditampilkan pada konsol window dan notification bar.

 Upload : adalah fiture yang digunakan untuk mengupload hasil penulisan code yang sudah
diverify atau dicompile tanpa error ke board controller arduino.

 Editor Window : adalah jendela untuk menulis kode program.

 Console Window : adalah jendela yang digunakan untuk melihat hasil kompilasi maupun
hasil upload apakah sukses atau masih terdapat kesalahan atau error didalamnya.

 Serial Terminal: adalah fiture yang digunakan untuk menampilkan jendela dialog serial
terminal, dimana dengan mengaktifkan fiture ini kita melihat data serial yang masuk atau
yang terbaca pada board arduino, dan fiture ini bisa juga digunakan untuk debugging
manual dengan cara menambahkan fungsi serial print pada code program.

Bogor Instrument | www.bogor-instrument.id|081231078488 15


Arduino Basic #1 2018

Command Field

Data Logg

Baudrate Selector

Berikut adalah keterangan untuk masing fiture:


 Command Line : disini kita bisa menginput text dan mengirimkannya ke arduino.
 Data Log: tampilan data yang terbaca pada komunikasi serial board arduino.
 Baudrate Selector : selector yang digunakan untuk memilih kecepatan baud rate
speed.

 Board status, adalah bar informasi status untuk board arduino, di port COM berapa board
tersebut terhubung ke PC atau laptop.

 Notification Bar, adalah bar notifikasi hasil kompile maupun hasil upload sketch program ke
board arduino. Jika terdapat error atau kesalahan pada saat kompilasi maupun upload sketch,
maka akan ditmapilkan jenis dan type kesalahannya disini.

Salah satu contoh notifikasi error


saat kompilasi atau verify

Bogor Instrument | www.bogor-instrument.id|081231078488 16


Arduino Basic #1 2018
 Comment Line, adakalanya ketika kita sedang menulis kode atau program, kita ingin memberi
catatan kaki atau komentar disamping ataupun diatasnya dengan tujuan agar kita maupun
orang lain yang membaca ulang kode kita bisa paham maksud dari kode tersebut. Oleh karena
itu, kita bisa memberinya syntax atau perintah comment line. Untuk mengaktifkan comment
line, cukup dengan awalan sebagai // atau /*komentar*/.

Contoh

/* Ini adalah komentar multiple line


Dan komentar ini tidak akan ikut terkompilasi pada saat
proses compile berlangsung
*/

void loop() {
digitalWrite(ledPin, state);
}

void blink() {
state = !state; // ini adalah komentar disamping kode.
}

 Sketch , adalah istilah nama file kode arduino, dan biasanya berkestensi *.ino.

Bogor Instrument | www.bogor-instrument.id|081231078488 17


Arduino Basic #1 2018
1.3.3 Setup Arduino - PC Pertama Kali
Berikut adalah langkah - langkah setup board arduino ke PC pertama kali:

1. Colok kabel USB type B ke port USB pada board Arduino dan Type A ke port USB pada
laptop.

2. Secara otomatis Power LED pada board arduino akan menyala karena sudah diberi power
supply tegangan 5V dari port USB laptop. Ini berarti arduino board sudah siap digunakan
karena sudah mendapat supply tegangan dari port USB laptop.

3. Pada laptop, buka device manager, check apakah driver board Arduino sudah terintall atau
belum, jika sudah terinstall, maka pada device manager bagian Ports (COM & LPT) akan
tampak nama board Arduino Uno yang terhubung dengan COM port tertentu, pada gambar
dibawah, terhubung di port COM4. Jika tidak ada nama board arduino, maka perlu instalasi
driver.

Tampilan driver arduino sudah diinstall

Tampilan driver arduino belum diinstall

Bogor Instrument | www.bogor-instrument.id|081231078488 18


Arduino Basic #1 2018
4. Jika driver board arduino belum diinstall, maka pada device manager, Ports (COM&LPT), klik
kanan USB Serial Device yang terdeteksi dan Update Software

5. Maka akan muncul kotak dialog baru. Pilih Browse my computer for driver software

6. Pada kotak dialog berikutnya, klik Browse dan pilih folder 'drivers' yang terdapat pada folder
installer arduino. Dan pilih OK

Bogor Instrument | www.bogor-instrument.id|081231078488 19


Arduino Basic #1 2018
7. Maka selanjutnya kita akan dibawa ke tampilan kotak dialog awal, pillih Next.

8. Jika muncul kotak dialog Windows Security, maka klik install untuk melanjutkan proses
instalasi.

9. Setelah proses instalasi driver arduino selesai, maka klik close, dan pastikan pada device
manager bagian Ports(COM&LPT) board arduino sudah dikenali.

Bogor Instrument | www.bogor-instrument.id|081231078488 20


Arduino Basic #1 2018

1.4 Arduino Program Structure

Platform Arduino menggunakan bahasa pemrograman C/C++ yang sudah dimodifikasi dengan tujuan
agar lebih memudahkan orang awam untuk belajar alur pemrograman dari suatu microcontroller.
Struktur program dari platform arduino sendiri terbagi atas 2 fungsi utama yaitu fungsi Setup () dan
fungsi Loop() serta fungsi tambahan yang kita buat sendiri.

1.4.1 void setup ()


Adalah suatu fungsi dimana fungsi ini hanya dipanggil satu kali saja ketika board arduino sedang
booting up atau dalam kondisi restarting. Sesuai dengan namanya fungsi Setup () ini bertujuan
sebagai setup atau inisialisasi saja seperti setting mode pin INPUT/OUTPUT, mendefinisikan
variable, membaca parameter data pada EEPROM dan lain lain sesuai kebutuhan.

Berikut adalah contoh dari fungsi Setup() yang bertujuan untuk menset pin digital 13 sebagai
output.

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(13, OUTPUT);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 21


Arduino Basic #1 2018
1.4.2 void loop ()
Adalah fungsi dimana algoritma program utama dijalankan. Fungsi Loop() secara otomatis
dieksekusi setelah fungsi Setup () selesai dijalankan terlebih dahulu. Fungsi Loop () akan
dijalankan terus menerus oleh microcontroller sampai dengan kondisi tertentu semisal board
booting up atau restart, maka system akan langsung keluar dari fungsi Loop () dan akan kembali
mengeksekusi fungsi Setup ().

Berikut adalah salah satu contoh algoritma utama suatu program yang bertujuan untuk
memberikan output digital HIGH pada pin 13 setiap 1 detik dan akan menset LOW setiap 1 detik
terus menerus.

// the loop function runs over and over again forever


void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

1.4.3 Function
Selain kedua fungsi utama diatas, kita bisa menambahkan atau membuat fungsi sendiri.
Berikut adalah contohnya:
 Fungsi InitPinMode() akan dipanggil di fungsi void Setup() yang berfungsi untuk
mensetting pin 13 sebagai OUTPUT.
 Fungsi BlinkLampu () akan dipanggil di fungsi void Loop() yang berfungsi untuk menset
output digital pin 13 HIGH selama 1 detik dan LOW selama 1 detik kemudian begitu
seterusnya.

void setup(){
InitPinMode();
}
void loop(){
BlinkLampu();
}
//created new function called InitPinMode()
void InitPinMode(){
pinMode(13,OUTPUT);
}
//created new function called BlinkLampu()
void BlinkLampu(){
digitalWrite(13,HIGH); delay(1000);
digitalWrite(13,LOW); delay(1000);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 22


Arduino Basic #1 2018
1.4.4 Define Variable (Global & Local)
Untuk mendefinisikan suatu variable, kita perlu memahami terlebih dahulu pengertian dan
fungsi suatu variable. Variable adalah suatu parameter yang digunakan untuk menyimpan data.
Suatu variable memiliki nama, nilai, dan type. Berikut adalah salah satu contoh deklarasi suatu
variable dengan nama pinLampu yang bernilai awal 13 dan memiliki tipe data integer.

int pinLampu = 13;

nilai suatu variable bisa dinamis, namun bisa juga suatu variable sifatnya statis. Untuk membuat
suatu variable sifatnya statis, maka diperlukan syntax perintah static sebelum type data.
Berikut adalah contohnya:

static int pinLampu = 13;

Pada deklarasi variable diatas, nilai pinLampu selalu 13, tidak akan berubah karena sudah kita
deklarasikan variable tersebut sifatnya statis.

Pada pemrograman arduino, terdapat dua tipe variable, yaitu variable global dan variable local.
Variable global adalah variable yang deklarasinya diluar suatu fungsi, dan nilainya bisa diakses
pada fungsi manapun. Berbeda dengan variable local, variable local hanya dideklarasikan pada
suatu fungsi saja, dan hanya bisa diakses dan digunakan pada fungsi itu sendiri. Berikut adalah
salah satu contoh deklarsi variable global dan variable local.

int pinLampu=13; //deklarasi variable global dengan nama pinLampu

void setup(){
InitPinMode();
}
void loop(){
BlinkLampu();
}

//created new function called InitPinMode()


void InitPinMode(){
pinMode(pinLampu,OUTPUT); // variable global bisa diakses disini
}

//created new function called BlinkLampu()


void BlinkLampu(){
int loop=0; //deklarasi variable lokal hanya bisa digunakan di sini saja
while(loop<=3){
digitalWrite(pinLampu,HIGH); delay(1000);
digitalWrite(pinLampu,LOW); delay(1000);
loop++;
}

Bogor Instrument | www.bogor-instrument.id|081231078488 23


Arduino Basic #1 2018

1.5 Type Data

Pada bagian ini, kita akan belajar mengenal beberapa tipe data yang biasa digunakan pada
pemrograman arduino. Tentu saja tipe data yang akan diulas terlebih dahulu adalah tipe data
sederhana, dimana dengan memahami karakteristik beberapa tipe data yang biasa digunakan,
diharapkan pembaca akan lebih mudah memahami dan memecahkan permasalahan yang timbul pada
saat kompilasi program yang diakibatkan oleh ketidakcocokan tipe data, salah deklarasi tipe data atau
bisa juga salah memperhitungkan jangkauan atau lebar range data yang kurang lebar.

1.5.1 integer
Tipe data integer adalah tipe data yang memiliki angka yang mana nilainya bisa negatif maupun
positif tetapi tidak memiliki nilai decimal alias angka bulat. Contoh, 0, -5, dan 10. Jangkauan nilai
yang untuk tipe data integer adalah -32768 sampai dengan 32767 pada board arduino 16 bit
seperti arduino tipe UNO. Sedangkan untuk tipe arduino tipe lain semisal arduino DUE maupun
SAMD yang notebene adalah 32bit controller, jangkauan range untuk tipe data integer bisa
dimulai pada angka -2147483648 sampai dengan 2147483647, karena pada board tipe tersebut
tipe data integer mampu menyimpan data sebanyak 4 byte.

Untuk mendeklarasikan suatu variable dengan tipe data integer adalah dengan menambah
fungsi int pada awal deklarasi, berikut adalah contoh format syntax perintahnya.

int variable_name = value;

contoh:

int lampuLED= 13; //mendeklarsikan variable lampuLED dengan nilai awal 13

1.5.2 float
Variable dengan tipe data float adalah variable yang memiliki nilai cacah dibelakang koma.
Jangkauan range nilainya diantara -3.4028235E+38 sampai dengan 3.4028235E+38. Variable
dengan tipe float ini sangat cocok digunakan untuk pembacaan data analog seperti arus ataupun
tegangan yang membutuhkan presisi lebih bagus daripada bilangan bulat atau integer.

Berikut adalah format perintah untuk mendeklarasikan variable dengan tipe data float:

float variable_name = value;

contoh:

float pi = 3.14; //mendeklarasikan variable pi dengan nilai awal 3.14

Bogor Instrument | www.bogor-instrument.id|081231078488 24


Arduino Basic #1 2018
1.5.3 char
Tipe data char adalah tipe data yang terdiri atas 1 byte memory yang digunakan untuk
menyimpan data karakter. Karakter yang dimaksud adalah karakter ASCII yang memiliki range
nilai decimal dari 0 sampai 127 untuk tipe karakter ASCII standar dan 128 sampai 255 untuk
Extended ASCII Chracter.

Berikut adalah tabel ASCII yang biasa digunakan pada saat pemrograman arduino.

Untuk mendeklarasikan variable dengan tipe data char adalah dengan mengikuti syntax perintah
sebagai berikut:

char variable_name = decimal_value; atau bisa juga dengan syntax seperti ini,
char variable_name ='karakter';

Contoh,

char hurufA ='A'; //mendeklarasikan hurufA dengan nilai awal 'A'


atau
char hurufA =65; //sama-sama mendeklarasikan hurufA tapi dengan nilai
//decimal dari huruf 'A' yaitu 65 pada tabel karakter
//ASCII diatas.

Bogor Instrument | www.bogor-instrument.id|081231078488 25


Arduino Basic #1 2018
1.5.4 string
String adalah tipe data untuk teks yang merupakan gabungan huruf, angka, whitespace (spasi),
dan berbagai karakter lainnya. Untuk mendeklarasikan suatu variable dengan tipe data string
adalah dengan mengikuti format perintah sebagai berikut:

String nama_variable="teks";

Contoh,

String TextHello ="Hello World"; //mendeklarasikan variable dengan nama


//TextHello yang memiliki nilai berupa
//gabungan text "Hello World"

Semakin panjang jumlah karakter yang ditampung pada suatu variable dengan tipe data string,
maka semakin besar pula resource memory yang dibutuhkan. Hal ini mempengaruhi
perfomansi SRAM (Static Random Access Memory) pada board arduino, dimana semakin sedikit
kapasitas SRAM yang tersisa, maka besar kemungkinan mikrokontroller kita akan mengalami
HANG atau bekerja tidak sesuai harapan algoritma pemrograman yang telah kita buat.

1.5.5 byte
Tipe data byte adalah tipe data yang digunakan untuk menyimpan angka bulat dari 0 sampai
dengan 255. Dimana dalam 1 byte terdiri atas 8 bit data yang diwakilkan bilangan binner '1'
atau '0'.

Berikut adalah perbedaan antara bit dan byte

Bit adalah satuan unit data terkecil dalam komputasi digital yang pada dasarnya terdiri dari satu
digit biner (bisa berupa nilai 0 ataupun 1). Bit sebenarnya merupakan singkatan dari Binary Digit
(Digit Biner). Biner merupakan sistem bilangan yang berbasis dua yaitu hanya terdiri dari angka
0 dan 1 saja. 0 (nol) menandakan kondisi “OFF” atau tidak ada aliran arus listrik pada rangkaian
elektronik sedangkan 1 (satu) adalah kondisi “ON” atau adanya aliran arus listrik pada rangkaian
elektronik. Kondisi Bit ini juga dapat mewakilkan nilai logika seperti “TRUE” atau “FALSE” dan
“YES” atau “NO”. Bit biasanya dilambangkan dengan “b” (huruf b kecil). Satuan kecepatan
transfer data pada umumnya menggunakan bit per second (bit per detik) atau disingkat dengan
“bps”.

Bogor Instrument | www.bogor-instrument.id|081231078488 26


Arduino Basic #1 2018
Sebagai contoh, kode bilangan biner 000010102 ini terdiri dari 8 bit dan mewakili nilai 10 pada
sistem bilangan Desimal.

Cara perhitungan untuk mengkonversikan bilangan biner ke bilangan desimal adalah sebagai
berikut :

000010102 = (0 x 27 ) + (0 x 26 ) + (0 x 25 ) + (0 x 24 ) + (1 x 23 ) + (0 x 22 ) + (1 x 21 ) + (0 x 20)
000010102 = 0 +0 +0 +0 +8 + 0 + 2 + 0
000010102 = 1010

Berikut adalah contoh format perintah untuk mendeklarasikan variable dengan tipe data byte

byte nama_variable=angka_0_sampai_255;

Contoh,

String TextHello ="Hello World"; //mendeklarasikan variable dengan nama


//TextHello yang memiliki nilai berupa
//gabungan text "Hello World"

Bogor Instrument | www.bogor-instrument.id|081231078488 27


Arduino Basic #1 2018

1.6 Arduino Operator

Berikut akan dijelaskan sedikit tentang beberapa operator dasar pada arduino, operator ini meliputi
operator aritmatika (operator yang digunakan pada proses perhitungan matematik) dan operator
pembandingan. Diharapkan dengan mengetahui dasar - dasar operator diatas, pembaca bisa memahami
dan membuat flow atau alur pemrograman dengan baik dan benar.

1.6.1 Operator Aritmatika


Operator artimatika adalah operator yang menangani perhitungan matematika yang meliputi
penambahan, pengurangan, pengkalian dan pembagian. Berikut adalah operator - operator
dasar aritmatika pada arduino yang bisa digunakan:

Tanda
Jenis Operator Deskripsi Contoh
Operator
A = 20;
Men set suatu variable
Set Operator =  Men set variable A
dengan nilai tertentu
dengan nilai 20
A=B+10;
Menambah suatu
 Menambah variable B
variable dengan suatu
Penambahan + dengan nilai 10 dan
nilai atau variable yang
menyetor hasilnya ke
lain
variable A
C=A-B;
Mengurangi suatu
 Mengurangi variable A
variable dengan suatu
Pengurangan - dengan variable B dan
nilai atau variable yang
menyetor nilainya ke
lain
variable C
Mengkalikan suatu C=A*B;
variable dengan  Mengkalikan variable A
Pengkalian *
variable yang lain atau dengan B dan menyetor
dengan nilai tertentu hasilnya ke variable C
C=A/B;
Membagi suatu
 Membagi variable A
variable dengan
Pembagian / dengan variable B dan
variable yang lain atau
menyetor hasilnya ke
dengan nilai tertentu
variable C
Operator yang C = 20%10;
menghasilkan sisa  hasil nilai variable C
Modulus % pembagian dari suatu adalah 0, karena 20 habis
bilangan terhadap dibagi dengan 10 tiada
bilangan lainnya sisa

Berikut adalah contoh operasi matematika diatas:

Bogor Instrument | www.bogor-instrument.id|081231078488 28


Arduino Basic #1 2018

void loop (){


int a=9,b=4,c;
c=a+b; //hasilnya 13
c=a-b; //hasilnya 5
c=a*b; //hasilnya 36
c=a/b; //hasilnya 2
c=a%b; //hasilnya sisa 1
}

1.6.2 Operator Perbandingan


Operator perbandingan adalah operator yang digunakan untuk membandingkan suatu variable
dengan suatu nilai, parameter atau juga dengan variable yang lain. Dimana hasil output dari
operator perbandingan adalah TRUE jika benar dan FALSE jika salah. Berikut adalah contoh -
contoh operator perbandingan yang bisa digunakan pada platform arduino.

Misal A= 10 dan B = 20, maka,


Jenis Tanda
Deskripsi Contoh
Perbandingan Operator
A==B;
Membandingkan dua variable  hasilnya adalah
apakah memiliki nilai yang sama FALSE karena nilai
Sama dengan ==
atau tidak, jika sama, maka A tidak sama
outputnya menjadi TRUE dengan B

A!=B;
Membandingkan dua variable
 hasilnya adalah
Tidak sama apakah memiliki nilai yang
!= TRUE karena nilai A
dengan berbeda, jika benar, maka output
tidak sama dengan
dari perbandingan adalah TRUE
B
Membandingkan variable sebelah
A<B;
kiri operator apakah memiliki nilai
 Hasilnya adalah
Kurang dari < yang lebih kecil dari variable
TRUE karena nilai A
disebelah kanan operator. Jika iya,
kurang dari B
maka outputnya adalah TRUE
Membandingkan variable sebelah
A>B;
kiri operator apakah memiliki nilai
 Hasilnya FALSE
Lebih besar dari > yang lebih besar dari variable
karena nilai A
disebelah kanan operator. Jika iya,
kurang dari nilai B
maka outputnya adalah TRUE
Membandingkan variable sebelah
kiri operator, apakah memiliki nilai A<=B;
Kurang dari yang lebih kecil atau sama dengan  Hasilnya adalah
<=
sama dengan variable disebelah kanan operator. TRUE, karena nilai
Jika iya, maka outputnya adalah A lebih kecil dari B
TRUE
Lebih besar dari Membandingkan variable sebelah A>=B;
>=
sama dengan kiri operator, apakah memiliki nilai  Hasilnya adalah

Bogor Instrument | www.bogor-instrument.id|081231078488 29


Arduino Basic #1 2018
yang lebih besar atau sama dengan FALSE, karena nilai
variable disebelah kanan operator. A lebih kecil dari B
Jika iya, maka outputnya adalah
TRUE

Berikut adalah contoh penulisan programmnya,

void loop (){


int a=9,b=4;
bool c = false;

if(a==b) //outputnya c=false


c=true;
else
c=false;

if(a!=b) //outputnya c=true


c=true;
else
c=false;

if(a<b) //outputnya c=false


c=true;
else
c=false;

if(a>b) //outputnya c=true


c=true;
else
c=false;

if(a<=b)//outputnya c=false
c=true;
else
c=false;

if(a>=b)//outputnya c=true
c=true;
else
c=false;
}

Bogor Instrument | www.bogor-instrument.id|081231078488 30


Arduino Basic #1 2018

1.7 Arduino Control Statement

Didalam setiap pemrograman pasti diperlukan metode pengambilan keputusan dengan cara mengecek
suatu variable dengan suatu kondisi atau expression yang kita harapkan. Pada arduino, control
statement yang paling sering digunakan adalah pengkondisian IF, IF..ELSE dan SWITCH Case Statement.
Berikut akan dibahas satu per satu fungsi dan perbedaan antar tiap control statement.

1.7.1 IF Statement
IF statement adalah metode pengecekan suatu variable dengan suatu nilai atau variable yang
lain. Jika nilainya benar, maka sekuense atau block statement dibawahnya dikerjakan, jika tidak,
maka block statement dibawahnya tidak dikerjakan atau dilewati. Dengan kata lain, hasil jika
pengecekan tidak benar, maka tidak ada opsi sekuense yang dijalankan kecuali melewatinya.
Berikut adalah flowchart dari IF Statement.

FALSE
Pengecekan
Jika

TRUE

Blok Statement TRUE

Berikut adalah format penulisan IF Statement.

if(ekspresi pengecekan){
Block statement yang akan dieksekusi jika benar (TRUE)
}

contoh:
void setup(){
Serial.begin(9600); //mulai serial communication
int A = 10; //deklarasi variable A dengan nilai awal 10
int B = 8; //deklarasi variable B dengan nilai awal 8
}
void loop(){
if(A>B){ //cek jika A lebih besar B
Serial.println("Nilai A Lebih besar B); //akan diekseusi
}

Bogor Instrument | www.bogor-instrument.id|081231078488 31


Arduino Basic #1 2018
if(A<B){
Serial.println("Nilai A Lebih besar B); //tidak dieksekusi
}
}

1.7.2 IF ELSE Statement


IF ELSE statement adalah metode pengecekan suatu variable dengan suatu nilai atau variable
yang lain. Jika nilainya benar, maka sekuense atau block statement dibawahnya dikerjakan, jika
tidak, maka opsi blok statement yang lain yang akan dikerjakan. Dengan kata lain, setiap
pengecekan memiliki fungsi blok statement masing - masing yang akan dikerjakan jika hasil
pengecekan benar ataupun salah.

Berikut adalah flowchart dari IF ELSE Statement.

FALSE
Pengecekan
Jika

TRUE Blok Statement FALSE

Blok Statement TRUE

Berikut adalah format penulisan IF ELSE Statement

if(ekspresi pengecekan){
Block statement yang akan dieksekusi jika benar (TRUE)
}else{
Block statement yang akan dieksekusi jika salah (FALSE)
}

Contoh:

void setup(){
Serial.begin(9600); //mulai serial communication
int A = 10; //deklarasi variable A dengan nilai awal 10
int B = 8; //deklarasi variable B dengan nilai awal 8
}
void loop(){
if(A<B){ //cek jika A kurang dari B
Serial.println("Nilai A Lebih kecil B); //tidak akan diekseusi
}else{
Serial.println("Nilai A Lebih besar B); //akan diekseusi
}
}

Bogor Instrument | www.bogor-instrument.id|081231078488 32


Arduino Basic #1 2018
1.7.3 Switch Case Statement
Switch Case Statement adalah metode pengecekan suatu variable dengan banyak nilai yang
diwakili dengan syntax case, dimana masing - masing case akan mengeksekusi blok statement
dibawahnya jika bernilai TRUE. Jika setelah selesai menjalankan blok statement, maka system
akan keluar dari Switch Case Statement yang ditandai dengan syntax perintah break.

Berikut adalah flow dari switch case statement

TRUE
Case 1 Blok Statement TRUE

FALSE
TRUE
Case 2 Blok Statement TRUE

FALSE
TRUE
Case 3 Blok Statement TRUE

FALSE
TRUE
Case n Blok Statement TRUE

FALSE
default Statement

Berikut adalah format penulisan switch case statement

switch (variable){
case label1:
//run something if variable is equal to label1
break;
case label2:
//run something if variable is equal to label2
break;
case label-n:
//run something if variable is equal to label-n
break;

Bogor Instrument | www.bogor-instrument.id|081231078488 33


Arduino Basic #1 2018

default:
//run something if none of case label are equal with variable
break;
}

Semisal kita mempunyai suatu variable name "Lampu" dengan nilai range 1,2 dan 3, dimana
masing masing nilai mewakili jalur lampu mana yang akan dinyalakan, maka berikut adalah
contoh pengunaan switch case statement pada kasus diatas.

switch (Lampu){
case 1:
NyalaLampu_1(); //fungsi untuk menyalakan lampu jalur 1
break;
case 2:
NyalaLampu_2(); //fungsi untuk menyalakan lampu jalur 2
break;
case 3:
NyalaLampu_3(); //fungsi untuk menyalakan lampu jalur 3
break;
default:
//jika range tidak valid, maka kasih tau user
Serial.println("Input range tidak valid!!");
break;
}

Bogor Instrument | www.bogor-instrument.id|081231078488 34


Arduino Basic #1 2018

1.8 Perulangan Loops Statement

Perulangan Loops Statement memungkinkan kita untuk mengeksekusi suatu kode atau program
beberapa kali atau bahkan terus menerus, dan berikut adalah bentuk umum dari sebuah pernyataan
loop di sebagian besar pemrograman Arduino:

1.8.1 While Loops Statement


While Loops statement adalah perulangan yang memperhatikan faktor syarat, dimana
perulangan suatu kode atau program akan dilakukan jika memenehui syarat tertentu. Jika sudah
tidak memenuhi syarat, maka sytem akan keluar dari perulangan.

Berikut adalah contoh flowhcart While Loops Statement

FALSE
memenuhi
syarat??
Exit Loop
Loop Here TRUE

Blok Statement TRUE

Untuk format penulisan syntax while loop statement adalah sebagai berikut

while(syarat_loop){

//kode yg ingin diulang


blok_statement;
}

Berikut adalah contoh program pengulangan penambahan variable 'i' dengan angka 1 per tiap
iterasinya sampai nilai variable 'i' mencapai 100, maka exit dari while loop.
while(i<=100){
i++;
Serial.println("Nilai i sekarang"); Serial.println(i);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 35


Arduino Basic #1 2018
1.8.2 For Loop Statement
For Loop Statement adalah metode perulangan suatu kode atau program dimana perulangan ini
kita yang menentukan jumlah iterasinya. Berbeda dengan While Loops Statement yang
membutuhkan syarat tertentu agar terus bisa beriterasi, For Loop Statement, tidak
membutuhkan syarat, karena jumlah iterasi ditentukan di awal deklarasi for loop statement.

Berikut adalah flowchart dari For Loop Statement.

counter=0

FALSE
counter
<=9
Exit Loop
Loop Here TRUE
counter++

Blok Statement TRUE

Untuk syntax format penulisan metode For Loop Statement adalah sebagai berikut:
for(initial; iterasi_limit;pengurangan atau penambahan ){
//kode program yang ingin dieksekusi berulang
}

Berikut adalah contoh penulisan angka urut dari 0 sampai dengan 20 dan menampilkannya ke
serial port PC, dengan menggunakan metode for loop statement

int angka_urut=0;

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

void loop(){
for(angka_urut=0;angka_urut<=20;angka_urut++){
Serial.println(angka_urut);
}
}

Bogor Instrument | www.bogor-instrument.id|081231078488 36


Arduino Basic #1 2018

1.9 Array Control

Array merupakan sebuah variabel yang menyimpan lebih dari 1 buah data yang memiliki tipe data yang
sama. Jadi dapat dikatakan bahwa array merupakan kumpulan dari data-data tunggal yang dijadikan
dalam 1 variabel array yang alamat memorinya berbeda yang selanjutnya disebut elemen-elemen array
yang bisa kita akses berdasarkan indeks.

Bentuk umun dari pendeklarasian sebuah array adalah sebagai berikut.

tipe_data nama_array[jumlah_indeks]={indeks0, indeks1, indeks2, indeks3, indeks4};

Berikut adalah contoh bagaimana mendeklarasikan suatu variable array dengan tipe data integer yang
memiliki elemen - elemen array 1,2,3,4 dan 5 serta cara mengakses tiap elemen arraynya pada arduino.

int var[5]={1,2,3,4,5};

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

void loop(){
for(int x=0;x<5;x++){
Serial.println(var[x]); //tulis nilai element array pada sesuai indeks
}
}

Bogor Instrument | www.bogor-instrument.id|081231078488 37


Arduino Basic #1 2018

Bagian 2 Praktikum

Berikut adalah bagian praktikum dimana dengan melakukan praktikum yang terstruktur,
diharapkan pembaca bisa mengerti dan memahami cara kerja dan arsitektur suatu
mikrokontroler khususnya arduino. Untuk praktek dan kedepannya, kita akan menggunakan
kabel jumper dan project board untuk menyambung kaki - kaki komponen elektronik seperti
resistor, led ataupun module - module arduino lainnya. Dengan menggunakan project board,
kita tidak perlu menyolder, cukup plug and connect kabel jumper saja. Berikut adalah
penampakan kabel jumper dan project board yang dimaksud.

Bogor Instrument | www.bogor-instrument.id|081231078488 38


Arduino Basic #1 2018

2.1 Praktikum I : Set Digital Output


2.1.1 Blinking Lampu LED
Tujuan:
 Pembaca bisa memahami pemetaan pin digital pada board arduino
 Pembaca bisa melakukan setting pin digital sebagai GPIO yang berfungsi
sebagai output
 pembaca bisa memahami timing atau delay sederhana

Gambar Rangkain:

Code
/*
Project : 2.1.1 Blinking Lampu LED
Tujuan : Menyalakan LED dan Mematikan Led
Author :Bogor Instrument /Masqush
Date : 2 Jan 2018
*/
void setup() {
// put your setup code here, to run once:
pinMode(12,OUTPUT); //set pin digital 12 sebagai output LED1
pinMode(11,OUTPUT); //set pin digital 11 sebagai output LED2
pinMode(10,OUTPUT); //set pin digital 10 sebagai output LED3
}

Bogor Instrument | www.bogor-instrument.id|081231078488 39


Arduino Basic #1 2018
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(12,HIGH); //set pin digtal 12 dengan logik HIGH / 5V
digitalWrite(11,HIGH); //set pin digtal 11 dengan logik HIGH / 5V
digitalWrite(10,HIGH); //set pin digtal 10 dengan logik HIGH / 5V

delay(1000); //kasih jeda nyala selama 1 detik 1000 ms -> 1 detik

digitalWrite(12,LOW); //set pin digtal 12 dengan logik LOW


digitalWrite(11,LOW); //set pin digtal 11 dengan logik LOW
digitalWrite(10,LOW); //set pin digtal 10 dengan logik LOW

delay(1000); //kasih jeda off selama 1 detik 1000 ms -> 1 detik

Langkah - langkah Upload Sketch:


1. Rangkai terlebih dahulu arduino board, led, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE

4. Klik Upload, dan lampu led akan nyala selama 1 detik dan matik selama 1
detik.

Hasil Percobaan yang diharapkan:


1. Ketiga lampu LED1, LED2 dan LED3 akan blinking secara bersamaan tiap 1
detik.

Bogor Instrument | www.bogor-instrument.id|081231078488 40


Arduino Basic #1 2018

LED Mati LED Nyala

Bogor Instrument | www.bogor-instrument.id|081231078488 41


Arduino Basic #1 2018

2.1.2 Blinking LED Without Delay


Tujuan:
 Pembaca bisa memahami pemetaan pin digital pada board arduino
 Pembaca bisa melakukan setting pin digital sebagai GPIO yang berfungsi
sebagai output
 pembaca bisa memahami timing scheduling yang lebih kompleks tanpa
mempengaruhi sekuense yang lain yang sedang berjalan.

Start Start

set delay 1 sec count millis

count millis Yes


millis>=1sec Process 1
Yes c
No No
millis>=1sec
c
Yes
millis>=2sec Process 1
c
Next Process No

Yes
millis>=3sec Process 1
System Delay c

No

System Tanpa Delay

 Dengan mengetahui perbedaan system code yang memakai delay dan


tanpa delay, diharapkan pembacaan bisa mengimplementasikan system
yang bagus dan baik sesuai yang dibutuhkan.

Bogor Instrument | www.bogor-instrument.id|081231078488 42


Arduino Basic #1 2018
Gambar Rangkain:

Code
/*
Project : 2.1.2 Blinking Lampu LED Without Delay
Tujuan : Menyalakan LED dan Mematikan Led
Author :Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

//define pin digital


#define ledPin1 12 //set pin digital 12 untuk led1
#define ledPin2 11 //set pin digital 12 untuk led2
#define ledPin3 10 //set pin digital 12 untuk led3

// Variables untuk status masing masing led LOW


int ledStatePin1 = LOW; // ledState used to set the LED1
int ledStatePin2 = LOW; // ledState used to set the LED2
int ledStatePin3 = LOW; // ledState used to set the LED3

//set milis terakhir untuk masing2 led


unsigned long previousMillisLED1 = 0;
unsigned long previousMillisLED2 = 0;
unsigned long previousMillisLED3 = 0;

//set interval blink untuk masing2 led


const long intervalLED1 = 5000; //set interval blink per 5 detik
const long intervalLED2 = 1000; //set interval blink per 1 detik
const long intervalLED3 = 100; //set interval blink per 0,1 detik

Bogor Instrument | www.bogor-instrument.id|081231078488 43


Arduino Basic #1 2018

void setup() {
// set the digital pin as output:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
}

void loop()
{
//declare milis
unsigned long currentMillis = millis();

//cek apakah timing interval led 1 sudah terpenuhi


if(currentMillis - previousMillisLED1 >= intervalLED1) {
previousMillisLED1 = currentMillis;
if (ledStatePin1 == LOW)
ledStatePin1 = HIGH;
else
ledStatePin1 = LOW;
digitalWrite(ledPin1, ledStatePin1);
}

//cek apakah timing interval led 2 sudah terpenuhi


if(currentMillis - previousMillisLED2 >= intervalLED2) {
previousMillisLED2 = currentMillis;
if (ledStatePin2 == LOW)
ledStatePin2 = HIGH;
else
ledStatePin2 = LOW;
digitalWrite(ledPin2, ledStatePin2);
}

//cek apakah timing interval led 1 sudah terpenuhi


if(currentMillis - previousMillisLED3 >= intervalLED3) {
previousMillisLED3 = currentMillis;
if (ledStatePin3 == LOW)
ledStatePin3 = HIGH;
else
ledStatePin3 = LOW;
digitalWrite(ledPin3, ledStatePin3);
}

Langkah - langkah Upload Sketch:


1. Rangkai terlebih dahulu arduino board, led, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload

Bogor Instrument | www.bogor-instrument.id|081231078488 44


Arduino Basic #1 2018

Hasil Percobaan yang diharapkan:


1. Lampu LED1 akan blinking tiap 5 detik
2. Lampu LED2 akan blinking tiap 1 detik
3. Lampu LED3 akan blinking tiap 0.5 detik
4. Kesemuanya dieksekusi tanpa mengganggu flow program dari masing
masing sekuense.

Bogor Instrument | www.bogor-instrument.id|081231078488 45


Arduino Basic #1 2018

2.1.3 Set ON / OFF Relay Module


Tujuan:
 Pembaca bisa memahami pemetaan pin digital pada board arduino
 Pembaca bisa melakukan setting pin digital sebagai GPIO yang berfungsi
sebagai output
 Pembaca bisa mengetahui bagaimana mentrigger suatu relay module
dengan benar.

Gambar Rangkain:

Code
/*
Project : 2.1.3 Set ON/OFF Relay Module
Tujuan : Bisa mentrigger relay ON atau OFF
Author :Bogor Instrument /Masqush
Date : 2 Jan 2018
*/
void setup() {
// put your setup code here, to run once:
pinMode(8,OUTPUT); //set pin digital 12 sebagai output trigger relay
digitalWrite(8,HIGH); //set high terlebih dahulu karena modulenya
aktif LOW
}

Bogor Instrument | www.bogor-instrument.id|081231078488 46


Arduino Basic #1 2018

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(8,LOW); //set pin digtal 8 dengan logik HIGH / 5V
delay(3000); //kasih jeda set ON selama 1 detik 3000 ms -> 3 detik

digitalWrite(8,HIGH); //set pin digtal 8 dengan logik LOW / 0V


delay(3000); //kasih jeda off selama 3 detik 3000 ms -> 3 detik

Langkah - langkah Upload Sketch:


1. Rangkai terlebih dahulu arduino board, led, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload

Hasil Percobaan yang diharapkan:


1. Relay akan ditrigger ON selama 3 detik, dan lampu LED juga akan menyala 3
detik
2. Relay akan ditrigger OFF selama 3 detik dan lampu LED juga akan padam 3
detik

Bogor Instrument | www.bogor-instrument.id|081231078488 47


Arduino Basic #1 2018

Bogor Instrument | www.bogor-instrument.id|081231078488 48


Arduino Basic #1 2018

2.2 Praktikum II : Read Digital Input


2.2.1 Menyala dan mematikan LED dengan Push Button
Tujuan:
 Pembaca bisa memahami pemetaan pin digital pada board arduino
 Pembaca bisa melakukan setting pin digital sebagai GPIO yang berfungsi
sebagai INPUT dan OUTPUT pada saat yang bersamaan dalam satu sistem

Gambar Rangkain:

Code:
/*
Project : 2.2.1 Menyala dan mematikan LED dengan Push Button
Tujuan : Bisa memahami cara membaca input digital pada arduino
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

#define pushButton 8
#define LED 7

void setup() {
//set pin digital 8 sebagai input untuk membaca push button
pinMode(pushButton,INPUT);
//set pin digital 7 sebagai output untuk menyalakan led
pinMode(LED,OUTPUT);
//matikan led terlbeih dahulu
digitalWrite(LED,LOW);

Bogor Instrument | www.bogor-instrument.id|081231078488 49


Arduino Basic #1 2018
void loop() {
if((digitalRead(pushButton)) == LOW ){ //jika ada perubhan dari HIGH
to LOW, maka nyalakan lampu
digitalWrite(LED,HIGH);
}else{
digitalWrite(LED,LOW); //jika tidak ada perubhan, lampu mati
}
}

Langkah - langkah Upload Sketch:


1. Rangkai terlebih dahulu arduino board, led, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload

Hasil Percobaan yang diharapkan:


1. Setelah upload sketch, lampu LED dalam keadaan tidak menyala
2. Ketika push button ditekan maka lampu LED akan menyala
3. Ketika dilepas, lampu LED nya akan mati.
4. Selama push button ditekan, maka lampu LED akan menyala

Bogor Instrument | www.bogor-instrument.id|081231078488 50


Arduino Basic #1 2018

2.2.2 Menset tingkat kecerahan Lampu LED dengan Push Button


Tujuan:
 Pembaca bisa memahami pemetaan pin digital pada board arduino
 Pembaca bisa melakukan setting pin digital sebagai GPIO yang berfungsi
sebagai INPUT dan OUTPUT pada saat yang bersamaan dalam satu sistem

Gambar Rangkain:

Code
/*
Project : 2.2.2
Tujuan : Bisa memahami cara PWM bekerja pada arduino
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

#define pushButton 8
#define LED 6
int brightness = 0; // how bright the LED is

void setup() {
//set pin digital 8 sebagai input untuk membaca push button
pinMode(pushButton,INPUT);
//set pin digital 7 sebagai output untuk menyalakan led
pinMode(LED,OUTPUT);
//matikan led terlbeih dahulu
analogWrite(LED, 0);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 51


Arduino Basic #1 2018

void loop() {
if((digitalRead(pushButton)) == LOW ){ //tambah tingkat kecerahan
brightness = brightness + 2;
if(brightness>=150){ //maksimal 255
brightness=0;
}
}
analogWrite(LED, brightness);
delay(30);
}

Langkah - langkah Upload Sketch:


1. Rangkai terlebih dahulu arduino board, led, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload

Hasil Percobaan yang diharapkan:


1. Setelah upload sketch, lampu LED dalam keadaan tidak menyala
2. Ketika push button ditekan maka lampu LED akan menyala redup
3. Ketika ditekan terus menerus,maka lampu LED menyala lebih terang
4. Ketika sudah sampai kondisi paling terang, maka lampu LED akan
redup lagi
5. Dan akan menyala lebih ketika ditekan push buttonnya

Bogor Instrument | www.bogor-instrument.id|081231078488 52


Arduino Basic #1 2018

Bogor Instrument | www.bogor-instrument.id|081231078488 53


Arduino Basic #1 2018

2.2.3 Membaca Interrupt


Tujuan:
 Pembaca bisa memahami pemetaan pin digital pada board arduino
 Pembaca bisa melakukan setting pin digital sebagai GPIO yang berfungsi
sebagai INPUT INTERUPT dan mengaplikasikannya pada sistem

Gambar Rangkain:

Code
/*
Project : 2.2.3
Tujuan : Bisa memahami apa itu interrupt handler
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

#define LED 6
volatile int state=LOW; //variable volatile state lampu

void setup() {
//deklarasi interrupt INT0 akan memanggil fungsiBrighntess
attachInterrupt(0,fungsiLED,RISING);

//set pin digital 6 sebagai output untuk menyalakan led


pinMode(LED,OUTPUT);
analogWrite(LED,0);

void loop() {
digitalWrite(LED,state);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 54


Arduino Basic #1 2018
void fungsiLED(){
if(state==LOW){
state=HIGH;
}else{
state=LOW;
}
}

Langkah - langkah Upload Sketch:


1. Rangkai terlebih dahulu arduino board, led, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload

Hasil yang diharapkan:


1. Ketika ada penekanan push button maka seketika itu kondisi lampu akan
berubah dari mati ke nyala dan sebaliknya.
2. Kadang - kadang lampu berkelip cepat dari kondisi nyala ke mati maupun
sebaliknya, hal itu lazim karena ada efek debouncing pada komponen push
button yang mengakibatkan perubahan state yang sangat cepat yang diterima
dari pushbutton akibat dari diaktifkannya interrupt.

Bogor Instrument | www.bogor-instrument.id|081231078488 55


Arduino Basic #1 2018

Bogor Instrument | www.bogor-instrument.id|081231078488 56


Arduino Basic #1 2018

2.3 Praktikum III : Read Analog Input


2.3.1 Membaca nilai tegangan dengan bantuan Potensiometer
Tujuan:
 Pembaca bisa memahami pemetaan pin analog pada board arduino
 Pembaca bisa melakukan setting dan pembacaan nilai tegangan yang
terbaca pada pin analog pada board arduino dan menerapkannya pada
sistem yang ingin dibuat.

Gambar Rangkain:

Code
/*
Project : 2.3.1
Tujuan : Bisa memanfaatkan fungsi analog khususnya membaca nilai
tegangan
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

int sensorPin = A0; // select the input pin for the potentiometer
int sensorValue = 0; // variable to store the value coming from the
sensor
float voltage =0.0; //variable untuk simpan tegangan

void setup() {
Serial.begin(9600); //aktifkan serial terminal
}

void loop() {
sensorValue = analogRead(sensorPin);
voltage= sensorValue*(5/1023.0);
Serial.println(voltage);
delay(100);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 57


Arduino Basic #1 2018
Langkah - langkah Percobaan:
1. Rangkai terlebih dahulu arduino board, resistor, dan project board seperti
rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload
5. Jalankan serial monitor

Hasil yang diharapkan:


1. Putar potensiometer ke kiri dan ke kanan, maka nilai dari tegangan yang
terbaca pada pin analog akan ditampilkan di serial monitor.
2. Pembacaan yang tertulis pada serial monitor diharapkan sama dengan
pembacaan pada alat ukur multimeter.

Bogor Instrument | www.bogor-instrument.id|081231078488 58


Arduino Basic #1 2018

2.4 Praktikum IV : Serial Communication - Bluetooth


2.4.1 Membaca Data Serial yang masuk ke board Arduino
Tujuan:
 Pembaca bisa memahami algoritma pembacaan pada software serial
 Pembaca bisa memahami fungsi dari komunikasi serial.

Gambar Rangkain:
untuk aplikasi android yang akan dipakai
silahkan download di google playstore :
https://play.google.com/store/apps/detai
ls?id=project.bluetoothterminal

Code
/*
Project : 2.4.1
Tujuan : Bisa memanfaatkan software serial untuk
serial komunikasi dengan bluetooth
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

//include software serial


#include<SoftwareSerial.h>

SoftwareSerial BT_Serial(8,9); //RX,TX

#define LED 7

String dataBT="";

Bogor Instrument | www.bogor-instrument.id|081231078488 59


Arduino Basic #1 2018
void setup() {
Serial.begin(9600); //aktifkan serial terminal
BT_Serial.begin(9600);
pinMode(LED,OUTPUT);
digitalWrite(LED,LOW);
}

void loop() {
// baca data bluetooth
while(BT_Serial.available()>0){
dataBT+=(String)(char)BT_Serial.read();
}

// chek kalo ada data dari bluetoth


if(dataBT!=""){
// Trim untuk menghilangkan karakter space dan enter
// pada aplikasi bluetooth
dataBT.trim();

// tulis data dari bluetooth ke serial monitor


Serial.println(dataBT);

//cek jika instruksi bluetooth menyalakan led


if(dataBT=="L11"){ //LED Nyala
digitalWrite(LED,HIGH);

//kirim response ke hape bluetooth


BT_Serial.println("LED Dinyalakan!");
}

//cek jika instruksi bluetooth mematikan led


if(dataBT=="L10"){//LED OFF
digitalWrite(LED,LOW);

//kirim response ke hape bluetooth


BT_Serial.println("LED Dimatikan!");
}

//reset dataBT
dataBT="";
}
delay(1000);
}

Langkah - langkah Percobaan:


1. Rangkai terlebih dahulu arduino board, resistor, hc05, dan led pada project
board seperti rangkaian diatas.
2. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
3. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
4. Upload Sketch.
5. Jalankan aplikasi bluetooth terminal pada hape android.
6. Pairing. Untuk password default bluetooth HC05 adalah "1234".
7. Pada aplikasi bluetooth terminal, masukan string "L11" untuk menyalakan
LED.
8. Cek kondisi lampu LED.

Bogor Instrument | www.bogor-instrument.id|081231078488 60


Arduino Basic #1 2018
9. Pada aplikasi bluetooth terminal, masukan string "L10" untuk mematikan
LED
10. Cek kondisi lampu LED

Hasil yang diharapkan:


1. Pada saat kode string "L11" dikirim dari aplikasi android ke arduino, maka
kondisi lampu LED akan menyala.
2. Pada saat kode string "L10" dikirim dari aplikasi android ke arduino, maka
kondisi lampu LED akan mati.
3. Selain kode string diatas, maka arduino tidak akan memprosesnya.

Bogor Instrument | www.bogor-instrument.id|081231078488 61


Arduino Basic #1 2018

2.5 Praktikum V : Manipulasi Memory EEPROM


2.5.1 Set and Read data pada memory EEPROM
Tujuan:
 Pembaca memahami tipe data yang bisa disimpan pada internal memory
EEPROM pada board arduino
 Pembaca bisa mengaplikasikan penyimpanan dan pembacaan pada
internal memory EEPROM

Code:
/*
Project : 2.5.1
Tujuan : Bisa memahami cara membaca dan menulis data
pada internal memory EEPROM Arduino
- Arduino Uno: 1kb EEPROM storage.
- Arduino Mega: 4kb EEPROM storage.
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
*/

#include <EEPROM.h>

int address = 0;
byte value;

void setup(){
Serial.begin(9600);
Serial.println("Set all address to 5, please wait..");
//Tulis semua alamat EEPROM dengan data 5
for(address=0;address<EEPROM.length();address++){
EEPROM.write(address,5);
}
address=0;

Serial.println("Reading address..");
Serial.print("Address");
Serial.print("\t");
Serial.println("Data");
}

void loop(){
// read a byte from the current address of the EEPROM
value = EEPROM.read(address);
Serial.print(address);
Serial.print("\t");
Serial.print(value, DEC);
Serial.println();

address = address + 1;
if(address == EEPROM.length()){
address = 0;
}
delay(200);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 62


Arduino Basic #1 2018
Langkah - langkah Percobaan:
1. Colok board arduino ke PC dengan kabel USB yang sudah tersedia.
2. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
3. Upload Sketch
4. Jalankan Serial Monitor

Hasil yang diharapkan:


1. Pada tampilan serial monitor, setiap address pada memory internal EEPROM
akan terisi dan terbaca nilai data '5'.
2. Pada board arduino uno, panjang range address EEPROM adalah 0 - 1000.
Kesemuanya terisi data '5'.

Bogor Instrument | www.bogor-instrument.id|081231078488 63


Arduino Basic #1 2018

2.6 Praktikum VI : Real Time Clock


2.6.1 Mengakses data RTC pada Module RTC DS1302
Tujuan:
 Pembaca memahami bagaimana setting dan akusisi data real time clock
pada module RTC DS1302.

Gambar Rangkaian:

Untuk pemakaian module DS1302, maka


kita perlu menginstall terlebih dahulu
library untuk DS1302 !!!

Code:

/*
Project : 2.6.1
Tujuan : Bisa memahami cara membaca dan menset data RTC
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018

DS1302: CE | RST pin -> Arduino Digital 2


I/O | DAT pin -> Arduino Digital 3
SCLK pin -> Arduino Digital 4
*/

#include <DS1302.h> //include libaray DS1302


DS1302 rtc(3, 4, 5); //RST,DAT,CLK

Bogor Instrument | www.bogor-instrument.id|081231078488 64


Arduino Basic #1 2018
void setup(){
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);

// Setup Serial connection


Serial.begin(9600);

// Set hari, tanggal dan jam


rtc.setDOW(WEDNESDAY); // Set Day-of-Week to WEDNESDAY
rtc.setTime(13, 0, 0); // Set the time to 13:00:00 (24hr format)
rtc.setDate(3, 11, 2017); // Set the date to 3 September 2017
}

void loop(){
// Tulis Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");

// Tulis date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");

// Tulis time
Serial.println(rtc.getTimeStr());

// Wait one second before repeating :)


delay (1000);
}

Langkah - langkah Percobaan:


1. Rangkai board arduino, module RTC dan project board seperti gambar
rangkaian diatas, colok board arduino ke PC dengan kabel USB.
2. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
3. Upload Sketch, jalankan Serial Monitor

Bogor Instrument | www.bogor-instrument.id|081231078488 65


Arduino Basic #1 2018
Hasil yang diharapkan:
1. Pada tampilan serial monitor, akan tampak data hari, tanggal, jam menit dan
detik sesuai yang kita setting sebelumnya.

Bogor Instrument | www.bogor-instrument.id|081231078488 66


Arduino Basic #1 2018

2.7 Praktikum VII : Display LCD1602


2.7.1 LCD 16 x 2 Character Hello World
Tujuan:
 Pembaca memahami bagaimana dasar setting dan wiring lcd display
karakter 16 karakter 2 baris.

Gambar Rangkaian:

Code:
/*
Project : 2.7.1
Tujuan : Bisa memahami cara kerja LCD 1602 dan
komponen apa saja yang dibutuhkan
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
*/

// include the library code


#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Bogor Instrument | www.bogor-instrument.id|081231078488 67


Arduino Basic #1 2018
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2); //16 kolom 2 baris

// Print a message to the LCD.


lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}

Langkah - langkah Percobaan:


1. Rangkai board arduino, LCD1602, potensiometer dan project board seperti
gambar rangkaian diatas, colok board arduino ke PC dengan kabel USB.
2. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
3. Upload sketch
4. Putar kiri kanan potensiometer sampai muncul text "Hello World" pada lcd.

Bogor Instrument | www.bogor-instrument.id|081231078488 68


Arduino Basic #1 2018
Hasil yang diharapkan:
1. Muncul tampilan 'Hello World' pada baris pertama dan pada baris kedua
akan muncul angka counting up dari 0 smapai 655355.
2. Brightness atau tingkat kecerahan LCD bisa diatur pada putaran
potensiometer.

Bogor Instrument | www.bogor-instrument.id|081231078488 69


Arduino Basic #1 2018

2.8 Praktikum VIII : Motor Servo


2.8.1 Menggerakkan putaran motor servo kekiri dan kekanan
Tujuan:
 Pembaca memahami bagaimana dasar cara kerja motor servo
 Pembaca bisa memutar motor servo ke kiri dan kekanan.

Gambar Rangkaian:

Code:

/*
Project : 2.8.1
Tujuan : Bisa memahami cara kerja motor servo
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018

* Kabel Coklat - GND


* Kabel Merah - +5V
* Kabel Orange - Data
*/

#include <Servo.h>

Servo myservo;
int pos = 0; //derajat posisi (0-90')

void setup(){
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

Bogor Instrument | www.bogor-instrument.id|081231078488 70


Arduino Basic #1 2018

void loop()
{
for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180
degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in
variable 'pos'
delay(15); // waits 15ms for the servo to
reach the position
}
for(pos = 180; pos>=0; pos-=1) // goes from 180 degrees to 0
degrees
{
myservo.write(pos); // tell servo to go to position in
variable 'pos'
delay(15); // waits 15ms for the servo to
reach the position
}
}

Langkah - langkah Percobaan:


1. Rangkai board arduino, dan motor servo seperti rangkaian diatas, colok
board arduino ke PC dengan kabel USB.
2. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
3. Upload sketch

Bogor Instrument | www.bogor-instrument.id|081231078488 71


Arduino Basic #1 2018
Hasil yang diharapkan:
1. Motor servo akan berputar 180' ke kanan dan 180' ke kiri.
2. Motor akan berputar sedikit lambat,ini diatur oleh script delay(15); dengan
memperpendek nilai delaynya, maka putaran motor servo akan semakin
cepat, begitu juga sebaliknya.

Bogor Instrument | www.bogor-instrument.id|081231078488 72


Arduino Basic #1 2018

2.9 Praktikum IX : Sensor Ultrasonic HC-SR04


2.9.1 Mengukur jarak suatu benda dengan sensor ultrasonic
Tujuan:
 Pembaca memahami bagaimana dasar cara kerja motor servo
 Pembaca bisa memutar motor servo ke kiri dan kekanan.

Gambar Rangkaian:

Code:
/*
Project : 2.9.1
Tujuan : Bisa memahami cara kerja motor servo
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018

rumus mencari jarak:


s= (time* 0.034cm)/2

*/

// defines pins numbers


const int trigPin = 10;
const int echoPin = 9;
// defines variables
long duration;
int distance;

Bogor Instrument | www.bogor-instrument.id|081231078488 73


Arduino Basic #1 2018

void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
}

void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

// Sets the trigPin on HIGH state for 10 micro seconds


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

// Reads the echoPin, returns the sound wave travel time in


microseconds
duration = pulseIn(echoPin, HIGH);

// Calculating the distance


distance= duration*0.034/2;

// Prints the distance on the Serial Monitor


Serial.print("Distance: ");
Serial.println(distance);
}

Langkah - langkah Percobaan:


1. Rangkai board arduino, dan sensor HCSR04 seperti rangkaian diatas, colok
board arduino ke PC dengan kabel USB.
2. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
3. Upload sketch, dan jalankan serial monitor.

Bogor Instrument | www.bogor-instrument.id|081231078488 74


Arduino Basic #1 2018
Hasil yang diharapkan:
1. Sensor HCSR04 bisa mendeteksi jarak dengan benar dan tepat.
2. Gunakan penggaris untuk mempermudah pembacaan dan pengukuran.

Bogor Instrument | www.bogor-instrument.id|081231078488 75


Arduino Basic #1 2018

2.10 Praktikum X : Detection Sensor


2.10.1 Mendeteksi keberadaan manusia
Tujuan:
 Pembaca memahami bagaimana dasar cara kerja motor servo
 Pembaca bisa memutar motor servo ke kiri dan kekanan.

Gambar Rangkaian:

Code:
/*
Project : 2.10.1
Tujuan : Bisa menggunakan sensor detection motion
Author : Bogor Instrument /Masqush
Date : 2 Jan 2018

*/

int ledPin = 8; // choose the pin for the LED


int inputPin = 9; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status

void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input
Serial.begin(9600);
}

Bogor Instrument | www.bogor-instrument.id|081231078488 76


Arduino Basic #1 2018
void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
}else {
digitalWrite(ledPin, LOW); // turn LED OFF
if (pirState == HIGH){
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}

Langkah - langkah Percobaan:


1. Rangkai board arduino, dan sensor PIR seperti rangkaian diatas, colok board
arduino ke PC dengan kabel USB.
2. Jalankan Arduino IDE, dan copy paste code diatas ke editor Arduino IDE
3. Upload sketch, dan jalankan serial monitor.

Bogor Instrument | www.bogor-instrument.id|081231078488 77


Arduino Basic #1 2018
Hasil yang diharapkan:
1. Sensor PIR berhasil mendeteksi setiap pergerakan tubuh kita.
2. Ketika berhasil mendeteksi pergerakan tubuh manusia, maka lampu led akan
menyala.
3. Dan ketika selesai tidak mendeteksi adanya lagi pergerakan maka lampu led
akan mati.

Bogor Instrument | www.bogor-instrument.id|081231078488 78


Arduino Basic #1 2018

END

Bogor Instrument | www.bogor-instrument.id|081231078488 79

Anda mungkin juga menyukai