Anda di halaman 1dari 43

Cover

i
Kata Pengantar

ii
Daftar Isi

Cover ................................................................................................................................................ i
Kata Pengantar ................................................................................................................................ ii
Daftar Isi ........................................................................................................................................ iii
Daftar Gambar ................................................................................................................................ v
Bab 1 Pengenalan Arduino ......................................................................................................... 1
1.1. Pengenalan Mikrokontroler dan Arduino ......................................................................... 1
1.2. Arduino IDE ..................................................................................................................... 2
1.3. Instalasi Arduino IDE....................................................................................................... 3
Bab 2 Dasar Pemrograman Bahasa C/C++................................................................................. 6
2.1 Struktur Penulisan Bahasa C ............................................................................................ 6
2.2 Tipe-tipe data dalam Bahasa C......................................................................................... 7
2.3 Deklarasi Variabel dan Konstanta .................................................................................... 7
2.4 Pernyataan ........................................................................................................................ 8
2.5 Fungsi ............................................................................................................................... 8
2.6 Pernyataan berkondisi dan Pengulangan .......................................................................... 9
2.7 Operasi Logika dan Bilangan Biner ............................................................................... 10
2.8 Operasi Aritmatika ......................................................................................................... 11
2.9 Ekspresi Bilangan ........................................................................................................... 11
Bab 3 Pemrograman Dasar Arduino ......................................................................................... 12
3.1 Fitur-Fitur Arduino Uno ................................................................................................. 12
3.2 Pemrograman I/O Pin Digital Arduino UNO ................................................................. 14
3.2.1 Percobaan 1 – Menyalakan LED ............................................................................ 14
3.2.2 Percobaan 2 – Running LED .................................................................................. 16
3.2.3 Percobaan 3 – Membaca Input Dari Tombol .......................................................... 17
3.2.4 Percobaan 4 – Input Dua Tombol ........................................................................... 19
3.2.5 Percobaan 5 – Counter dengan Push Button ........................................................... 20
Bab 4 Analog to Digital Converter (ADC) ............................................................................... 22
4.1 Pengenalan ADC ............................................................................................................ 22
4.2 Pemrograman Analog to Digital Converter ................................................................... 23

iii
4.2.1 Percobaan 1 – Membaca Nilai ADC ....................................................................... 24
4.2.2 Percobaan 2 – Membaca Tegangan Analog............................................................ 25
4.3 Sensor Suhu Analog LM35 ............................................................................................ 26
Bab 5 Pemrograman Liquid Crystal Display (LCD) ................................................................ 29
5.1 Alphanumeric LCD 16x2 ............................................................................................... 29
5.2 Pemrograman LCD Alphanumeric 16x2........................................................................ 30
Bab 6 Pemrograman Aktuator .................................................................................................. 33
6.1 Pengendalian Motor DC Brushed .................................................................................. 33
6.2 Pengendalian Motor Servo ............................................................................................. 36
Bab 7 Penutup ........................................................................................................................... 38

iv
Daftar Gambar

Gambar 1.1 Board Arduino Uno .................................................................................................... 2


Gambar 1.2 Tampilan awal Arduino IDE ...................................................................................... 2
Gambar 1.3 Tampilan jendela Device Manager ............................................................................ 4
Gambar 3.1 Diagram Pinout Arduino UNO ................................................................................ 13
Gambar 3.2 Skema pengendali LED ........................................................................................... 14
Gambar 3.3 Skema pengendali LED dengan push button ........................................................... 18
Gambar 4.1 Rangkaian Arduino Uno dan Potensiometer ............................................................ 24
Gambar 4.2 Sensor suhu LM35 ................................................................................................... 27
Gambar 4.3 Rangkaian arduino dan LM35.................................................................................. 27
Gambar 5.1 LCD alphanumeric 16x2 .......................................................................................... 29
Gambar 5.2 Rangkaian Arduino dan LCD alphanumeric 16x2 ................................................... 31
Gambar 6.1 Motor DC brushed ................................................................................................... 33
Gambar 6.2 Modul driver motor L298 ........................................................................................ 34
Gambar 6.3 Skema pemasangan servo ke arduino uno ............................................................... 36

v
Bab 1
Pengenalan Arduino

Buku ini dibuat dengan konsep yang sederhana sehingga pemula dapat mempelajari
Arduino dengan mudah dan menyenangkan. Dalam mempelajari arduino dari buku ini,
diperlukan pengetahuan dasar mengenai komponen elektronika serda dasar bahasa
pemrograman. Di dalam buku akan disajikan dasar-dasar dari penggunaan arduino serta modul-
modul pendukung serta komponen-komponen elektronika yang dibutuhkan.

Setiap pembahasan dalam buku ini akan diikuti dengan praktek, mulai dari pembuatan
rangkaian elektronik, pemrograman dan pemecahan masalah. Hal ini ditujukan agar pemula
dapat menguasai penggunaan arduino dengan baik dan benar. Berbagai macam projek menarik
akan digunakan sebagai latihan.

1.1. Pengenalan Mikrokontroler dan Arduino

Sebelum mulai mempelajari Arduino dan pemrogrammannya, terlebih dahulu kita akan
membahas mengenai mikrokontroler. Mikrokontroler adalah sebuah komponen elektronika
berupa IC (Integrated Circuit) yang di dalamnya terdapat prosesor, memori dan perangakat I/O
(Input/Ouputt). Mikrokontroler dapat dikatakan sebagai sebuah komputer yang berukuran sangat
kecil dan dapat diisi program. Mikrokontroler sering dikenal juga dengan sebutan MCU, uC, µC.
Ada banyak sekali produsen IC yang memproduksi mikrokontroler, antara lain adalah , Atmel
(sekarang dibeli Microchip), NXP, Texas Instruements, Maxim, ST Microelectronics, Philips
dan masih banyak lagi.
Arduino sendiri adalah sebuah development board yang didalamnya terdapat sebuah
mikrokontroler sebagai komponen utama, serta beberapa komponen elektronika pendukung. Jadi
pada dasarnya, arduino bukanlah mikrokontroler, akan tetap sebuah rangkaian sistem minimum
dari mikrokontroler yang dipasang pada sebuah PCB. Dengan rangkaian system minimum ini,
maka mirkokontroler dapat diprogram dan digunakan untuk berbagai macam aplikasi
elektronika. IC Mikrokontroler buatan Atmel merupakan produk mikrokontroler yang digunakan
di Arduino. Arduino sendiri ada banyak variannya, namun dari banyak varian tersebut yang
sering digunakan adalah Arduino Uno.

1
Gambar 1.1 Board Arduino Uno

1.2. Arduino IDE


Untuk memprogram board Arduino, kita butuh aplikasi IDE (Integrated Development
Environment) bawaan dari Arduino. Aplikasi ini berguna untuk membuat, membuka, dan
mengedit source code Arduino (Sketches, para programmer menyebut source code arduino dengan
istilah "sketches"). Selanjutnya, jika kita menyebut source code yang ditulis untuk Arduino, kita
sebut "sketch" juga ya :). Sketch merupakan source code yang berisi logika dan algoritma yang
akan diupload ke dalam IC mikrokontroller (Arduino).
Aplikasi Arduino IDE merupakan software open source dan dapat diperoleh dan
digunakan secara gratis. Untuk mendapatkannya kita dapat menngunduhnya langsung di website
resmi Arduino, yaitu www.arduino.cc.

Gambar 1.2 Tampilan awal Arduino IDE

2
Interface Arduino IDE tampak seperti gambar 1.2. Dari kiri ke kanan dan atas ke bawah,
bagian-bagian IDE Arduino terdiri dari:

Verify : pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi diupload
ke board Arduino, biasakan untuk memverifikasi terlebih dahulu sketch yang dibuat. Jika ada
kesalahan pada sketch, nanti akan muncul error. Proses Verify / Compile mengubah sketch ke
binary code untuk diupload ke mikrokontroller.

Upload : tombol ini berfungsi untuk mengupload sketch ke board Arduino. Walaupun kita
tidak mengklik tombol verify, maka sketch akan di-compile, kemudian langsung diupload ke
board. Berbeda dengan tombol verify yang hanya berfungsi untuk memverifikasi source code
saja.

New Sketch : Membuka window dan membuat sketch baru

Open Sketch : Membuka sketch yang sudah pernah dibuat. Sketch yang dibuat dengan IDE
Arduino akan disimpan dengan ekstensi file .ino

Save Sketch : menyimpan sketch, tapi tidak disertai mengcompile.

Serial Monitor : Membuka interface untuk komunikasi serial, nanti akan kita diskusikan
lebih lanjut pada bagian selanjutnya

Keterangan Aplikasi : pesan-pesan yang dilakukan aplikasi akan muncul di sini, misal
"Compiling" dan "Done Uploading" ketika kita mengcompile dan mengupload sketch ke
board Arduino

Konsol : Pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch akan muncul
pada bagian ini. Misal, ketika aplikasi mengcompile atau ketika ada kesalahan pada sketch
yang kita buat, maka informasi error dan baris akan diinformasikan di bagian ini.

Baris Sketch : bagian ini akan menunjukkan posisi baris kursor yang sedang aktif pada
sketch.

Informasi Port : bagian ini menginformasikan port yang dipakah oleh board Arduino.

1.3. Instalasi Arduino IDE


Saat kita mengunjungi halaman download dari website arduino, kita akan disuguhi
beberapa pilihan download. Kita akan menggunakan Arduino IDE yang versi portable, sehingga
yang diunduh adalah file „Windows zip‟. Setelah diunduh, kita cukup mengekstraknya di folder
manapun yang kita sukai pada computer kita. Untuk menjalankannya tinggal di-double click
pada file dengan nama „arduino‟ dan untuk memudahkan kita dalam mengaksesnya sewaktu-
waktu, dapat kita buat shortcutnya di desktop komputer.

Selain software Arduino IDE, kita juga perlu meng-instal software driver untuk arduino
board yang akan kita gunakan. Untuk driver tersebut langkah-langkahnya adalah sebagai berikut:

1. Pasang board Arduino Anda ke port USB pada komputer atau laptop, kemudian tunggu
hingga Windows mencoba untuk menginstall driver sendiri. Biasnya proses ini gagal

3
mengenali Arduino kita sebagai device yang baru. Untuk itu kita harus melakukan instalasi
driver secara manual.
2. Klik tombol start pada Windows, kemudian pada kolom search, ketikkan “device
manager”.
3. Pada Device Manager, perhatikan bagian Ports (COM & LPT), akan muncul device baru
dengan nama "Arduino UNO (COMxx)".

Gambar 1.3 Tampilan jendela Device Manager

4. Klik kanan pada "Arduino UNO (COMxx)", kemudian pilih "Update Driver Software".
5. Selanjutnya pilih "Browse my computer for Driver software".
6. Cari folder software Arduino Anda, kemudian cari folder driver, setelah itu klik “Next”,
maka computer akan mncari driver untuk arduino secara otomatis.
7. Setelah driver terinstal, maka sekarang akan muncul nomor COM setiap kali kita tancapkan
Arduino ke USB komputer.

Setelah driver terinstal dengan baik, selanjutnya kita dapat mencoba menguload sebuah
sampel program ke dalam Arduino untuk memastikan Arduino board dan Arduino IDE siap
untuk digunakan.

1. Jalankan Aplikasi Arduino (arduino.exe), pada pojok kanan bawah akan ada tulisan "Arduino
UNO on COMxx". Berarti port yang digunakan Arduino adalah COMxx, jika tulisan tersebut
tidak muncul, berarti instalasi driver belum berhasil atau board Arduino belum
disambungkan ke komputer.
2. Selanjutnya, silakan buka sampel led flip-flop dengan cara Klik menu File > Examples >
1.Basic > Blink.

4
3. Setting board Arduino dengan cara : Klik menu Tools > Board > Arduino UNO.
4. Pilih port yang digunakan Arduino dengan cara mengklik menu Tools > Ports > (pilih yang
ada Arduino-nya).
5. Klik tombol upload (tombol denga panah ke kanan).
6. Setelah berhasil diupload, akan muncul tulisan "Done uploading" di bagian bawah. Jika
berhasil, maka LED dengan tulisan "L" pada board Arduino akan kelap-kelip

5
Bab 2
Dasar Pemrograman Bahasa C/C++

Bahasa pemrograman yang digunakan untuk memprogram Arduino adalah bahasa


C/C++. Untuk itu sebelum lanjut ke pemrograman Arduino, terlebih dahulu kita akan
mempelajari tentang bahasa C/C++ secara singkat. Dengan menguasai dasar dari bahasi C/C++
kita dapat dengan mudah mempelajari pemrograman Arduino, karena struktur bahasa yang sama.

Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk


mikrokontroler, khususnya seri AVR dari Atmel. Ada yang menyebutkan bahwa bahasa ini
merupakan High Level Language sisanya menyebut sebagai Midle Level Language. Dengan
demikian seorang programmer dapat menuangkan (menuliskan) algoritmanya dengan mudah.

2.1 Struktur Penulisan Bahasa C


Perhatikan struktur penulisan dalam Bahasa C sebagai berikut

#include < [library1.h] > // Opsional


#define [nama1] [nilai]; // Opsional

[global variables] // Opsional

[functions] // Opsional

int main(void) // Program Utama

{
[Deklarasi local variable/constant]
[Isi Program Utama]
}

Keterangan:

Opsional artinya boleh ditulis boleh tidak, menyesuaikan kebutuhan. Tuliskan library
(pustaka) apa saja yang digunakan dan lain sebagainya.

Penulisan variabel dilakukan di awal agar aman bisa digunakan sepanjang program,
demikian juga dengan deklarasi fungsi-fungsi yang terlibat

Struktur penulisan bahasa pemrograman pada Arduino IDE tidak jauh berbeda

6
#include < [library1.h] > // Opsional

#define [nama1] [nilai]// Opsional

[global variables] // Opsional

[functions] // Opsional

void setup() // Program Utama

{
[Deklarasi local variable/constant]
[Program inisialisasi]
}

Void loop()
{
[Deklarasi local variable/constant]
[Program utama]
}

Yang perlu diperhatikan dalam bahasa C/C++ adalah, pada tiap akhir perintah /syntax
ditutup dengan tanda titik koma (;).

2.2 Tipe-tipe data dalam Bahasa C

char : 1 byte ( -128 s/d 127 )


unsigned char : 1 byte ( 0 s/d 255 )
int : 2 byte ( -32768 s/d 32767 )
unsigned int : 2 byte ( 0 s/d 65535 )
long : 4 byte ( -2147483648 s/d 2147483647 )
unsigned long : 4 byte ( 0 s/d 4294967295 )
float : bilangan decimal
array : kumpulan data-data yang sama tipenya.

2.3 Deklarasi Variabel dan Konstanta

Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.

7
Penulisan :

[tipe data] [nama] = [nilai];

Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
Penulisan :
const [nama] = [nilai];

Global variable atau constant dapat diakses di seluruh bagian program.

Local variable atau constant hanya dapat diakses oleh fungsi tempat dideklarasikannya.

2.4 Pernyataan
Statement atau pernyataan adalah setiap operasi dalam pemrograman, harus diakhiri
dengan [;] atau [}]. Pernyataan tidak akan dieksekusi bila diawali dengan tanda [//] untuk satu
baris. Lebih dari 1 baris gunakan pasangan [/*] dan [*/]. Pernyataan yang tidak dieksekusi
disebut juga komentar.

Contoh:

suhu=adc/255*100; //contoh rumus perhitungan suhu

2.5 Fungsi
Function atau fungsi adalah bagian program yang dapat dipanggil oleh program utama.

Penulisan :
[tipe data] [nama function]([tipe data input 1],[tipe data input2])

[pernyataan_1];

[pernyataan_2];

...

8
2.6 Pernyataan berkondisi dan Pengulangan

 if else: digunakan untuk menyeleksi satu atau beberapa kondisi

if ( [persyaratan] ) {
[statement1];
[statement2];
...
}
else
{
[statement3];
[statement4];
...
}

 for : digunakan untuk pengulangan dengan jumlah yang sudah diketahui – berapa kali
diulang.

for ( [nilai awal] ; [syarat] ; [operasi nilai] )


{
[statement1];
[statement2];
...
}

 while: digunakan untuk pengulangan (looping) jika dan sealama memenuhi suatu kondisi
masih dipenuhi (pengulangan selama benar

while ( [persyaratan] )
{
[statement1];
[statement2];
...
}

 do while: digunakan untuk pengulangan jika dan selama memenuhi syarat tertentu, namun
min 1 kali

9
do
{
[statement1];
[statement2];
...
}
while ([persyaratan])

 switch case: digunakan untuk seleksi dengan banyak kondisi

switch ( [nama variabel] )


{
case [nilai1]: [statement1];
break;
case [nilai2]: [statement2];
break;
...
}

2.7 Operasi Logika dan Bilangan Biner

Operator Logika:
AND : &&
OR : ||
NOT :!
Biner :
AND :&
OR : |
NOT :!
XOR :^
Shift right : >>
Shift left : <<
Lebih besar sama dengan : >=
Lebih kecil sama dengan : <=
Lebih besar/kecil :> , <

10
2.8 Operasi Aritmatika

Operator Keterangan
+, -, *, / Tambah, kurang, kali dan bagi
Nilai di sebelah kiri operator ditambah,
+=, -=, *=, /= dikurangi, dikali atau dibagi dengan nilai di
sebelah kanan operator.
% Sisa pembagian
Ditambah 1 (increment) atau dikurangi satu
++, -- (decrement)

Contoh:

a = 5 * 6 + 2 / 2 – 1 -> hasilnya 30
a *= 5 -> jika nilai awal a=30, maka hasilnya 150
a += 3 -> jika nilai awal a=30, maka hasilnya 33
a++ -> jika nilai awal a=5, maka hasilnya 6
a-- -> jika nilai awal a=5, maka hasilnya 4, dst

2.9 Ekspresi Bilangan


Dalam bahasa C/C++, bilangan dapat diekspresikan dengan macam-macam format, antara
lain :

 Biner
Ditulis dengan awalan huruf „0b‟ atau „0B‟. Contoh : 0b10101010, 0B1111000
 Desimal
Ditulis langsung tanpa awalan. Contoh : 124, 325
 Oktal
Ditulis dengan awalan angka „0‟. Contoh: 075, 035
 Hexadesimal
Ditulis dengan awalan „0x‟ atau „0X‟. Contoh: 0xff, 0XF4

11
Bab 3
Pemrograman Dasar Arduino

Pada bab ini, kita akan mulai mempelajari cara pemrograman Arduino. Sebelum memulai
alangkah baiknya mengenal lebih detail mengenai fitur-fitur serta karakteristik dari arduino,
sehingga kita dapat menggunakan arduino dengan resiko kesalahan sekecil mungkin. Setelah itu
dilanjutkan dengan membuat program-program sederhana untuk mengendalikan rangkaian
elektronik sederhana.

3.1 Fitur-Fitur Arduino Uno

Dalam buku ini kita akan lebih banyak menggunakan board Arduino Uno sebagai media
untuk belajar. Pada board Arduino Uno, mikrokontroler yang digunakan adalah seri
ATmega328P, yang merupakan salah satu produk dari perusahaan Atmel. Berikut ini adalah fitur
yang dimiliki oleh ATmega328P yang digunakan oleh Arduino Uno :

High Endurance Non-volatile Memory Segments


• 4/8/16/32K Bytes of In-System Self-Programmable Flash progam memory
(ATmega48PA/88PA/168PA/328P)
• 256/512/512/1K Bytes EEPROM (ATmega48PA/88PA/168PA/328P)
• 512/1K/1K/2K Bytes Internal SRAM (ATmega48PA/88PA/168PA/328P)
• Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
• Data retention: 20 years at 85°C/100 years at 25°C
Peripheral Features
• Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
• One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
• Six PWM Channels
• 8-channel 10-bit ADC in TQFP and QFN/MLF package. Temperature Measurement
• 6-channel 10-bit ADC in PDIP Package. Temperature Measurement
• Programmable Serial USART
• Master/Slave SPI Serial Interface
• Byte-oriented 2-wire Serial Interface (Philips I2C compatible)
I/O and Packages
• 23 Programmable I/O Lines
• 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MLF and 32-pad QFN/MLF
Operating Voltage:
• 1.8 - 5.5V for ATmega48PA/88PA/168PA/328P
Temperature Range:
• -40°C to 85°C

12
Speed Grade:
• 0 - 20 MHz @ 1.8 - 5.5V

Selain itu, pada board Arduino Uno, terdapat komponen elektronik lain yang mendukung
kinerja dari Arduino tersebut. Komponen tesebut antara lain IC regulator, USB to serial
converter, led indicator pin analog dan digital dan beberapa komponen pasif pendukung. IC
regulator yang terpasang di Arduino Uno mampu menurunkan tegangan dari Vin 12 Volt
menjadi 5 V. Tegangan 5 Volt inilah yang diperlukan untuk mengoperasikan mikrokontroler
ATmega328P. Devaive USB to serial converter berfungsi untuk mengupload program dari
komputer ke arduino serta digunakan sebagai jalur komunikasi serial antara komputer dan
arduino. Pada arduino uno terdapat total 13 pin digital dan 6 pin analog yang masing masing pin
mampu mensuplay arus sebesar 20 mA. Lebih jelasnya dapat dilihat pada gambar berikut.

Gambar 3.1 Diagram Pinout Arduino UNO

13
3.2 Pemrograman I/O Pin Digital Arduino UNO

Arduino uno memiliki total 13 pin digital yang dapat digunakan sebagai INPUT ataupun
OUTPUT. Sesuai dengan namanya, pin digital ini hanya dapat mengeluarkan ataupun menerima
inputan logika digital 1 dan 0 atau 5 dan 0 volt. Jika pin digital ini digunakan sebagai output,
masing-masing pin hanya mampu mengeluarkan tegangan maksimal 5 volt dengan arus
maksimal 20 mA. Hal ini perlu diperhatikan terutama bagi pemula, agar tidak membebani pin
digital ini lebih dari rating tegangan dan arus tersebut, karena dapat merusak arduino.

3.2.1 Percobaan 1 – Menyalakan LED

Sebagai latihan pertama, kita akan coba menyalakan lampu LED melalui pin digital. Perlu
diketahui bahawa LED merupakan komponen elektronika yang jika diberi tegangan kan
menghasilkan cahaya dengan warna tertentu. Dalam percobaan ini LED dihubungkan ke pin
digital arduino dan diseri dengan resistor pada masing-masing LED. Fungsi dari resistor ini
untuk mengamankan LED dari resiko putus atau terbakar. Berikut adalah daftar alat dan bahan
yang diperlukan:

Alat dan Bahan:

 Arduini uno dan kabel data USB


 Project Board
 Kabel jumper
 LED
 Resistor

Gambar 3.2 Skema pengendali LED

14
Langkah Kerja

1. Rangkai komponen-komponen yang diperlukan pada project board seperti pada skema
2. Jalankan Aduino IDE dan buat program baru untuk mengendalikan LED seperti contoh
berikut:

#define LED 12

void setup() {

pinMode(LED,OUTPUT); // inisialisasi pin LED(pin 12)jadi output

void loop() {

digitalWrite(LED,HIGH); // menyalakakn pin LED (pin 12)

3. Pastikan jenis board serta port COM sesuai dengan COM arduino yang terdeteksi di device
manager.
4. Upload program dengan meng-klik tombol upload. Jika tidak ada masalah, maka program
akan di upload ke arduino uno dan akan segera dijalan setelah proses upload selesai

Modifikasi Program
Modifikasi program diatas dengan tambahan syntak „delay()‟ untuk mengatur waktu
nyala dan mati dari LED. Kemudian upload dan amati apa yang terjadi.

#define LED 12

void setup() {

pinMode(LED,OUTPUT); // inisialisasi pin LED(pin 12)jadi output

void loop() {

digitalWrite(LED,HIGH); // menyalakan pin LED (pin 12)


delay(1000);
digitalWrite(LED,LOW) ; // mematikan pin LED (pin 12)
delay(1000);
}

15
Penjelasan Program
 Syntak „#define LED 12‟, digunakan untuk memberi nama bagi pin 12 dengan nama
LED. Sehingga kita tinggal memanggil pin 12 dengan nama „LED‟
 Syntak „pinMode(LED,OUTPUT); ‟, digunakan untuk membuat pin LED (pin 12) arduino
menjadi mode output. Semua program yang ditulis di dalam struktur void setup() hanya
akan dieksekusi sekali saja.
 Syntak „digitalWrite(LED,HIGH);‟, digunakan untuk mengirimkan sinyal logika HIGH
/ logika 1 ke pin LED. Logika 1 setara dengan tegangan 5 Volt. Dikarenakan pin LED
terhubung ke kutup positif dari LED dan kutup negatifnya terhubung ke GND (0 volt ),
maka LED akan menyala. Sebaliknya, jika yang diberikan adalah logika LOW, maka LED
akan mati, karena pin LED menjadi berlogika 0 atau setara dengan tegangan 0 volt.
 Syntak „delay(1000);‟ , digunakan untuk menunda eksekusi program. Angka didalam
kurung adalah lama waktu penundaan dengan satuan mili detik, sehingg 1000 mdetik setara
dengan 1 detik.

Latihan

1. Coba modifikasi skematik dengan menambahkan jumlah LED !


2. Buat program yang dapat digunakan untuk mengendalikan LED lebih dari satu !

3.2.2 Percobaan 2 – Running LED

Dengan alat dan bahan sama seperti pada percobaan 1 buatlah rangkaian untuk
menyalakan 8 buah LED. Kemudian buatlah program baru di Arduino IDE seperti berikut

int LEDs[8] = {12,11,10,9,8,7,6,5} ;

void setup() {

for(int a=0 ; a<8 ; a++){


pinMode(LEDs[a], OUTPUT);
}
}

void loop() {

for(char a=0 ; a<8 ; a++){


led_array(1 << a);
delay(100);
}
}

Bersambung ke halaman selanjutnya

16
Lanjutan program
//================================================================
// Fungsi
void led_array(int data){
char dataout ;
for(char a=0 ; a<8 ; a++){
dataout = (data >> a) & 0x01 ;
if(dataout == 0){ digitalWrite(LEDs[a], LOW);}
else if (dataout == 1) {digitalWrite(LEDs[a], HIGH) ;}
}
}

Program diatas akan membuat nyala satu persatu secara bergantian denyan rentang waktu
100 mili detik. Penentuan pin digital yang terhubung ke arduino, dijadikan satu kelompok ke
dalam array LEDs[8], sehingga untuk memanggil pin digital tertentu tinggal memanggil nama
LEDs[x], dengan x adalah nomor urutan led dari 0 s/d 7. Pada inisialisasi, digunakan
perulangan for untuk membuat tiap pin digital yang terhubung ke LED menjadi output. Fungsi
led_aray() digunakan untuk menyalakan atau mematikan ke-delapan LED.

3.2.3 Percobaan 3 – Membaca Input Dari Tombol


Pada percobaan ke-3 ini kita masih menggunakan pin digital arduino, namun pin digital
ini akan diseting sebagai input yang digunakan untuk membaca logika dari tombol yang
dipasang. Untuk alat dan bahannya adalah sebagai berikut:

 Arduini uno dan kabel data USB


 Project Board
 Kabel jumper
 LED
 Resistor
 Push button switch

Bualah rangkaian seperti pada gambar di bawah pada sebuah project board. Pada
dasarnya rangkaian berikut masih menggunakan rangkaian pada percobaan 1 hanya saja
ditambahi sebuah saklar push button (PB) yang berfungsi sebagai input. Pada percobaan ini,
input untuk pin digital 7 dihubungkan ke GND melaluI PB. Sebenarnya semua pin I/O di arduino
uno dapat digunakan sebagai input, jadi programmer dapat dengan bebas memilih pin mana yang
akan digunakan, selam pin tersebut belum digunakan untuk keperluan lainnya.

17
Gambar 3.3 Skema pengendali LED dengan push button
Buatlah program baru atau program pada percobaan 1 yang dimodifikasi dengan
menambahkan perintah untuk membaca input digital dari tombol.

#define LED 12 // pin LED


#define PB 7 // Pin Push button

void setup() {

pinMode(LED, OUTPUT);
pinMode(PB, INPUT_PULLUP); // Membuat pin PB jadi input /membaca

void loop() {

char kondisi ; // variable penampung kondisi PB


kondisi = digitalRead(PB); // Membaca kondisi PB, ditekan/tidak
if(kondisi == LOW ){ // jika kondisi LOW /Terhubung ke GND
digitalWrite(LED, HIGH); // maka led akan menyala
}
else{
digitalWrite(LED, LOW);
}
}

18
Program diatas akan membuat LED menjadi mati ketika tombol tidak ditekan, dan akan
menyala jika tombol ditekan. Silahkan dicoba-coba apa yang terjadi jika kondisi yang
dibandingkan adalah HIGH bukan LOW.

3.2.4 Percobaan 4 – Input Dua Tombol

Setelah sukses pada percobaan 3, selanjutnya tambahi rangkaian dengan satu tombol.
Kemudian buat atau modifikasi program sebelumnya agar bisa menyakan led dengan tombol 1
dan mematikan led dengan tombol 2.

#define LED 12 // pin LED


#define PB1 7 // Pin Push button 1
#define PB2 6 // Pin Push button 2

char kondisi_led ;

void setup() {

pinMode(LED, OUTPUT);
pinMode(PB1, INPUT_PULLUP); // Membuat pin PB jadi input /membaca
pinMode(PB2, INPUT_PULLUP);

void loop() {

if( digitalRead(PB1) == LOW ){


kondisi_led = 1 ;
}

if( digitalRead(PB2) == LOW) {


kondisi_led = 0 ;
}

digitalWrite(LED, kondisi_led);
}

Pada program diatas terdapat variable kondisi_led yang berfungsi untuk menyimpan
kondisi terakhir dari led (nyala/mati). PB1 digunakan untuk menyalakan led dan PB2 digunakan
untuk mematikan led.

Latihan : Gabungkan program led berjalan dengan tombol sebagai pemicu on/off-nya !

19
3.2.5 Percobaan 5 – Counter dengan Push Button
Counter atau penghitung jumlah suatu kejadian bisa dilakukan dengan menggunakan
arduino. Dalam percobaan ini, kita akan mencoba menghitung berapa kali tombol ditekan, dan
pada hitungan tertentu maka akan menyalakan led. Masih menggunakan rangkaian led dan push
button seperti sebelumnya.

Buatlah program baru atau modifikasi program sebelunnya seperti berikut :

#define LED 12 // pin LED


#define PB 7 // Pin Push button 1

char hitung ;

void setup() {

pinMode(LED, OUTPUT);
pinMode(PB, INPUT_PULLUP); // Membuat pin PB jadi input /membaca
}

void loop() {

if( digitalRead(PB) == LOW ){


delay(200);
hitung++ ;
}
if(hitung == 10){
digitalWrite(LED, HIGH);
}
}

Penjelasan:

 char hitung adalah variable dengan tipe char yang digunakan untuk menyimpan hasil
perhitungan.
 Pada void loop(), terdapat syntak if yang akan membaca logika dari tombol. Jika
tombol ditekan, maka nilai variable hitung akan bertambah 1 dengan menggunakan syntak
hitung++.
 delay(200)digunakan untuk anti bouncing.
 Pada syntak if yang berikutnya, digunakan untuk membandingkan nilai yang ada di
variable hitung dengan nilai yang kita inginkan (contoh 10). Jika variable hitung sudah
bernilai 10, maka led akan menyala.
 Jadi hasil akhirnya, led akan menyala ketika tombol dipencet sebanyak 10 kali.

20
Latihan

Buatlah program yang digunakan untuk menyalakan 2 buah led, dengan aturan :
1. Jika tombol 1 ditekan sebanyak 5 kali maka led 1 menyala.
2. Jika tombol 2 ditekan sebanyak 8 kali maka led 2 menyala.

21
Bab 4
Analog to Digital Converter (ADC)

Pada bab ini kita akan mempelajari, penggunaan Analog to Digital Converter (ADC) yang
merupakan salah satu fitur yang ada pada Arduino. ADC biasa digunakan mengubah tegangan
analog 0 – 5 volt menjadi logika digital 1 dan 0 (5 dan 0 volt) yang dimengerti oleh arduino.
ADC sering digunakan sebagai digital voltmeter dengan teganan input maksimal 5 volt, dan
dapat digunakan juga untuk membaca sensor-sensor yang keluarannya masih analog.

4.1 Pengenalan ADC


Pada arduino uno jumlah pin ADC yang dimiliki adalah 6 buah, yaitu pin A0 – A5. ADC
ini memiliki resolusi 10 bit, yang artinya ADC mampu mengkonversi tegangan analog
0 – 5 volt menjadi kode digital antara 0 – 1023. Untuk dapat beroperasi dengan baik, maka ADC
membutuhkan tegangan referensi yang dihubungkan ke pin AREF. Ada 3 mode operasi dalam
penggunaan tegangan referensi ini, yaitu AVCC, INTERNAL, EXTERNAL. Pada arduino,
tegangan referensi disetting awal dengan mode AVCC yang terhubung ke tegangan 5 volt tanpa
perlu tambahan komponen lagi. Namun demikian kita dapat mengubah modenya ke mode
INTERNAL dengan tegangan referensi sebesar 1,1 volt atau bisa menggunakan mode
EXTERNAL, yang mana tegangan referensi didapat dari sumber tegangan antara 0 – 5 volt yg
berasal dai luar arduino.

Dalam penggunaan ADC, tegangan yang terbaca pada pin analog diubah menjadi kode
desimal antara 0 – 1023. Untuk itu perlu dikonversi ke dalam bilangan yang menunjukkan nilai
tegangan yang sebenarnya, berikut rumus untuk mengkonversinya

Vmin = Tegangan terkecil yg mampu dibaca ADC


Vref = Tegangan referensi ADC. Sebesar 5 volt dengan AVCC
Resolusi = resolusi ADC sebesar 10 bit = 210 = 1023

Dari hasil perhitungan diatas dapat disimpulkan bahwa tegangan terkecil yang mampu
dibaca ADC jika tegangan refesensinya sebesar 5 volt adalah 0,004887 volt atau 4,887 milivolt.
Kemudian kita dapat mengkonversi hasli pembacaan ADC menjadi nilai tegangan dengan
menggunakan cara sebagai berikut:

22
Vout = Nilai tegangan sebenarnya yang dibaca ADC

nilaiADC = Nilai yang diperoleh oleh ADC

Vmin = Tegangan minimal ADC (dari perhitungan sebelumnya).

Sebagai contoh, arduino digunakan untuk membaca tegangan baterai AAA. Setelah
dimasukkan ke pin ADC, arduino membaca nilai dari baterai adalah 512. Berapakah tegangan
sebenarnya baterai tersebut jika arduino menggunkana tegangan referensi AVCC 5 volt.

Jawab :

Vout = 512 x 0,004887

= 2,5004

2, 5 volt.

jadi, tegangan baterai tersebut adalah 2,5 volt.

Untuk meningkatkan akurasi pembacaan tegangan, misa untuk membaca tegangan yang
kecil, maka kita dapat memperkecil tegangan referensinya melalui pin AVCC, atau dapat
menggunaka tegangan referensi internal sebesar 1,1 volt. Yang perlu diperhatikan saat
mengganti nilai tegangan referensi adalah, kita harus menghitung ulang berapa tegangan terkecil
yang mampu dibaca ADC. Selain itu, tegangan input maksimal yang bisa dibaca ADC adalah
sebesar tegangan referensi yang digunakan.

4.2 Pemrograman Analog to Digital Converter

Untuk mempelajari cara penggunaan ADC di arduino, kita akan membuat rangakaian
sederhana untuk membaca tegangan. Tegangan yang akan dibaca adalah tegangan dari VCC, dan
dilewatkan pada sebuah potensiometer agar tegangan dari VCC dapat diubah-ubah. Nilai dari
hasil pembacaan ADC ini natinya akan ditampilkan ke Serial Monitor pada Arduino IDE.

23
4.2.1 Percobaan 1 – Membaca Nilai ADC
Buatlah rangkaian seperti pada gambar dibawah pada project board.

Gambar 4.1 Rangkaian Arduino Uno dan Potensiometer

Kemudian buatlah program untuk membaca nilai ADC menggunakan Arduino IDE.
Berikut contoh programnnya.

#define potensio 0

int nilai_ADC ;

void setup() {

Serial.begin(9600);

void loop() {

nilai_ADC = analogRead(potensio);

Serial.print("Nilai ADC : ");


Serial.println(nilai_ADC);
delay(500);

24
Penjelasan:

 Pin analog 0 (ADC 0) yang digunakan diberi nama potensio dengan di-define-kan. Untuk
pembacaan analog cukup ditulis nomornya saja, tapi jika digunakan untuk I/O digital ditulis
dengan huruf “A” diikuti nomor urut pin (misal A0, A1, dst).
 Serial.begin(9600) , digunakan untuk membuka jalur komunikasi serial arduino dan
komputer (melalui USB), dengan kecepatan 9600 bps (bit per second).
 nilai_ADC = analogRead(potensio), digunakan untuk membaca input analog
pada pin potensio (A0).
 Serial.print & Serial.println , digunakan untuk menampilkan data teks ke
serial monitor melalui USB port. Tambahan huruf “ln” , digunakan untuk pindah baris
pada serial monitor.
 Delay(500) digunakan untuk memperlambat pengiriman data, agar mudah dibaca. Data
dikirim setiap 500 mili detik.

4.2.2 Percobaan 2 – Membaca Tegangan Analog

Pada percobaan sebelumnya, kita sudah bisa membaca nilai ADC dari suatu input
tegangan analog, akan tetapi informasi yang diperoleh masih sulit untuk dimegerti oleh manusia.
Maka dari itu pada percobaan kali ini, kita akan membuat arduino bisa menampilkan nilai
tegangan sebenarnya dari nilai ADC yang sudah terbaca, dengan menggunakan rumus yang
sudah dijelaskan sebelumnya.

Tambahkan beberapa baris perintah pada program di percobaan sebelumnya. Buat


menjadi seperti contoh berikut :

#define potensio 0

int nilai_ADC ;
float volt ;

void setup() {

Serial.begin(9600);

void loop() {

nilai_ADC = analogRead(potensio);

25
Serial.print("Nilai ADC : ");
Serial.println(nilai_ADC);

volt = nilai_ADC * 0.004887 ;

Serial.print("Tegangan = ");
Serial.print(volt,2);
Serial.println(" volt");
Serial.println();
delay(500);

Program diatas akan menampilkan nilai tegangan yang terbaca oleh ADC ke serial
monitor arduino. Coba putar-putar potensiometer dan lihat apa yang terjadi. Coba ukur tegangan
yang keluar dari potensiometer dengan menggunakan multi meter analog, dan bandingkan
dengan hasil pembacaan arduino.

Catatan:

Variabel untuk menampung nilai ADC menggunakan tipe data int (integer). Tipe data
integer hanya bisa menampung nilai bilangan bulat, tidak bisa dipakai untuk bilangan decimal.
Sedangkan tipe data float yang dipakai untuk menampung nilai volt, bisa digunakan untuk
bilangan desimal. Dikarenakan volt dikalikan dengan bilangan decimal (0,004887) maka
variable penampungnya harus float.

Latihan

Buatlah rangkaian dan program untuk mengukur tegangan analog dari dua sumber yang
berbeda. Bisa menggunakan dua buah potensiometer atau menggunakan baterai. Tampilkan hasil
pembacaan tegangan pada serial monitor.

4.3 Sensor Suhu Analog LM35

Salah satu sensor yang sering digunakan untuk proyek mikrokontroler adalaha sensor suhu
LM35. Sensor ini dapat mengukur suhu tanpa kontak 0 – 150o Celcius, sehingga bisa digunakan
untuk mengukur suhu ruangan. LM35 termasuk sensor analog, karena output dari sensor ini
berupa tegangan analog yang linear dengan perubahan suhu sekitar. LM35 akan mengeluarkan
tegangan 10 mili Volt tiap kenaikan suhu 1o Celcius. Untuk menggunakan sensor ini cukup
membaca tegangan keluaran dari sensor melalui ADC arduino. Sumber tegangan yang
diperlukan oleh LM35 adalah 5 Volt DC.

26
Gambar 4.2 Sensor suhu LM35

Pada percobaan berikutnya kita akan mengukur suhu ruangan dengan menggunakan
sensor LM35. Buatlah rangkaian seperti pada gambar berikut

Gambar 4.3 Rangkaian arduino dan LM35

27
Kemudian buatlah program arduino untuk membaca sensor LM35 dan menampilkannya
di Serial Monitor, seperti pada contoh berikut :
#define LM35

int adc_lm35 ;
float suhu ;

void setup() {

Serial.begin(9600);

}
void loop() {

adc_lm35 = analogRead(LM35);
suhu = adc_lm35 * 0.4887 ;

Serial.print(“Suhu Udara :”) ;


Serial.println(suhu,2);
Delay(500);
}

28
Bab 5
Pemrograman Liquid Crystal Display (LCD)

LCD atau Liquid Crystal Display merupakan salah satu perangakat elektronis yang
berfungsi untuk menampilkan karakter, teks, angka maupun simbol. Pada buku ini akan
dipelajari cara pemrograman LCD tipe alphanumeric yang mampu menampilkan teks dan angka
dengan panjang karakter 16 dan 2 baris (16x2).

5.1 Alphanumeric LCD 16x2

Jenis LCD yang sering digunakan dalam proyek arduino adalah tipe alphanumeric 16x2 ic
kontroler HD44780. LCD ini menggunakan tegangan kerja 5 volt, sehingga dapat dihubungkan
langsung ke pin VCC arduino tanpa tambahan komponen lain. Untuk menggunakannya
diperlukan 2 jalur perintah dan 4 jalur data yang dapat dihubungkan ke pin I/O arduino mana
saja. Antarmuka dari LCD ini melalui 16 pin deret yang dapat dilihat pada gambar berikut:

Gambar 5.1 LCD alphanumeric 16x2


Dan fungsi dari tiap pin dijelaskan pada table berikut :

Simbol Value Fungsi


VSS 0V Ground
VDD +5V Power Supply / VCC
V0 - Pengaturan kontras backlight
RS H/L H = data, L = command
R/W H/L H = read, L = write
E H.H - L Enable Signal
D1-D3 H/L Jalur untuk transfer 8 bit data
D4-D7 H/L Jalur untuk transfer 4 & 8 bit data
A +5V VCC untuk backlight
K 0V GND untuk backlight

29
Berdasarkan karakteristik tersebut, maka semua pin akan digunakan kecuali pin D1 – D3
sebab kita akan menggunakan jalur data untuk transfer 4 bit atau 8 bit. Penjelasan singkat tentang
RS, R/W, dan E:

 RS merupakan kependekan dari Register Selector, pin ini berfungsi untuk memilih
register control atau register data. Register control digunakan untuk mengkonfigurasi
LCD, sedangkan register data digunakan untuk menuliskan data berupa karakter untuk
ditampilkan di LCD.

 R/W atau Read/Write, digunakan untuk memilih aliran data mikrokontroller akan
membaca data yang ada di LCD atau menuliskan data ke LCD. Jika LCD hanya
digunakan untuk menulis / menampilkan data, maka pin ini bisa langsung disambungkan
ke GND sehingga logika bisa diset menjadi L (Low).

 E atau Enable, digunakan untuk mengaktifkan LCD ketika proses penulisan data ke
register control dan regiter data.

5.2 Pemrograman LCD Alphanumeric 16x2

Untuk memprogram LCD diperlukan 6 pin digital pada arduino. Komponen tambahan yang
diperlukan untuk merangkai LCD antara lain beberapa kabel jumper dan sebuah potensiometer.
Potensiometer ini berfungsi untuk mengatur kontras backlight LCD. Berikut langkah-langkah
yang perlu dilakukan :

1. Pin V0 pada LCD disambungkan ke kaki tengah potensiometer, sementara masing-


masing kaki potensiometer yang ada di pinggir disambungkan ke VCC dan GND. Jika
nanti tampilan tulisannya kurang jelas, silakan putar-putar potensiometernya.
2. Pin R/W pada LCD disambungkan ke GND
3. Pin RS pada LCD disambungkan ke pin 6 pada Arduino
4. Pin E pada LCD disambungkan ke pin 7 pada Arduino
5. Pin untuk data (D4 – D7) pada LCD disambungkan ke pin 9 – 12 pada Arduino
6. VDD dan A pada LCD disambungkan ke +5v
7. VSS dan K pada LCD disambungkan ke GND

Untuk lebih jelasnya mengenai rangkaian LCD, dapat dilihat pada gambar rangkaian
berikut:

30
Gambar 5.2 Rangkaian Arduino dan LCD alphanumeric 16x2

Program berikut ini berfungsi untuk membaca nilai ADC dari potensiometer, kemudian
meenampilkan hasil pembacaannya ke LCD.

#include <LiquidCrystal.h>

#define RS 2
#define RW 3
#define D4 4
#define D5 5
#define D6 6
#define D7 7
#define pot 0

LiquidCrystal lcd(RS, RW, D4, D5, D6, D7);

int nilai_adc ;

void setup() {

lcd.begin(16, 2);

31
void loop() {

nilai_adc = analogRead(pot);

lcd.setCursor(0, 0);
lcd.print("ADC: ");
lcd.print(nilai_adc);

Latihan
1. Buatlah rangkaian untuk membaca sensor suhu LM35, serta buatlah program untuk
menampilkan hasilnya ke dalam LCD !
2. Buatlah percobaan yang serupa untuk jenis-jenis sensor yang lain seperti LDR, PTC,
NTC dll !

32
Bab 6
Pemrograman Aktuator

Aktuator dalam ilmu elektronika merupakan sebuah komponen yang berfungsi untuk
mengubah energi listrik menjadi energi gerak. Aktuator yang akan dibahas pada bab ini adalah
motor dc dan motor servo.

6.1 Pengendalian Motor DC Brushed

Motor merupakan salah satau perangkat yang berguna untuk mengubah energy listrik
menjadi energi gerak berputar. Berdasarkan sumber listriknya motor listrik dibagi menjadi motor
DC dan motor AC. Pembahasan kita akan fokus pada motor DC tipe brushed, atau sering disebut
motor dc saja. Motor ini disebut motor brushed karena di dalam mekaniknya masih terdapat sikat
yang menjepit rotornya.

Gambar 6.1 Motor DC brushed

33
Motor DC pada umumnya memiliki rating tegangan maupun arus yang lebih tinggi dari
pada arduino. Untuk itu diperlukan rangkaian khusus yang dapat membantu arduino untuk
mentransferkan energi yang besar ke motor. Biasanya digunakan IC khusus untuk men-drive
motor DC, salah satunya adalah IC L298. IC ini dapat mengendalikan motor dengan tegangan
mencapai 12 volt dan arus hingga 2 A. Untuk mempermudah dalam mempelajari pengendalian
motor DC maka kita akan menggunakan modul driver motor yang sudah banyak terdapat
dipasaran.

Gambar 6.2 Modul driver motor L298

Modul driver motor L298 mampu mengendalikan 2 buah motor DC sekaligus, dan sudah
disertai komponen-komponen pendukung. Untuk mengendalikan tiap motor, diperlukan 3 pin (2
pin digital, 1 pin analog pwm), sehingga total terdapat 6 pin pada modul driver ini. Power suplai
yang digunakan antara 5-12 volt dc. Untuk merangkainya cukup hubungkan pin IN1 – IN4 ke
pin digital arduino dan pin Enable A dan B, dihubungkan ke pin pwm arduino. Pada bagian
bawah PCB modul ini sudah disertakan petunjuk tiap-tiap pin yang digunakan.

Untuk mengatur kecepatan motor DC, digunakan teknik Pulse Width Modulation
(PWM). Teknik ini cara kerjanya adalah men-switch pin digital PWM dengan frekuensi tinggi,

34
kemudian diatur lebar pulsanya (duty cycle). Semakin lebar pulsanya maka tegangan keluaran
semakin besar (mendekati 5 volt), sehingga kecepatan motor yang terhubung ke driver L298,
bisa lebih tinggi, dan sebaliknya. Pin PWM pada arduino tidak terdapat pada semua pin digital,
hanya pada pin-pin khusus yang ada simbol “ ~ “ saja. Pin PWM pada arduino biasa disebut juga
pin analog, dan dapat dihubungkan ke pin Enable A/B pada driver motor L298.

Pecobaan 1 – Mengendalikan Motor DC dengan driver L298


#define IN1 4
#define IN2 5
#define ENA 6
#define pot 0

int nilai_pot ;
int kecepatan ;

void setup(){

pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
}

void loop() {

nilai_pot = analogRead(pot);
kecepatan = map(nilai_pot, 0,1023,0,255);

digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, kecepatan);

Program diatas berfungsi untuk mebaca data analog dari potensiometer, kemudian nilai
yang terbaca digunakan untuk mengontrol kecepatan motor melalui pin analog output (PWM).
Nilai PWM yang digunakan oleh arduino adalah 0 – 255, sedangkan nilai ADC adalah 0 – 1023,
sehingga perlu dikompresi dengan menggunakan perintah map(). Untuk menyalakan motor
cukup memberi logika yang berbeda pada pin IN1 dan IN2, kemudian mengatur kecepatan
motornya dengan menggunakan perintah analogWrite().

Latihan

Coba modifikasi program agar putaran motor dapat beputar kearah sebaliknya dari
percobaan sebelumnya.

35
6.2 Pengendalian Motor Servo

Jenis motor lain yang sering digunakan untuk projek arduino adalah motor servo. Motor
jenis ini termasuk motor DC, hanya saja sudah terdapat rangkaian khusus didalam motor servo.
Rangkaian ini berfungsi untuk mengendalikan servo agar bisa diatur sudutnya sesuai keinginan
programmer. Servo dapat berputar ke kanan dan ke kiri dengan sudut 0 - 180 derajat. Karena
sudutnya dapat diatur sudutnya dengan presisi, maka motor ini cocok digunakan untuk apalikasi
lengan robot dan projek yang membutuhkan ketepatan sudut.

Untuk memprogram servo tidak dibutuhkan driver motor tambahan, karena driver
motornya sudah tertanam di dalam servo itu sendiri. Kita cukup memberi power supply dengan
arus yang cukup pada pin VCC servo. Pada motor servo terdapat 3 pin, yaitu GND, VCC dan
Signal. Pin VCC 5 volt dan GND dapat dihubungkan langsung ke pin VCC dan GND arduino,
sedangkan pin signal dapat langsung dihubungkan ke pin I/O arduino bebas.

Gambar 6.3 Skema pemasangan servo ke arduino uno

Gambar diatas, menampilakan koneksi wiring antara servo ke arduino. Servo pada
gambar tersebut termasuk servo ukuran standar. Untuk ukuran servo yang lebih kecil biasa
disebut dengan mikro servo. Untuk bahannya sendiri ada yang terbuat dari metal da nada yang
terbuat dari plastic. Untuk yang tipe metal gear biasanya memiliki torssi yang lebih besar
daripada yang plastic gear.

36
Percobaan 2 – Mengendalikan motor servo

Buatlah rangkaian seperti pada gambar 6.3, kemudian buatlah program seperti contoh
berikut

#include <Servo.h>

Servo myservo;

int pos = 0;

void setup() {
myservo.attach(9);
}

void loop() {
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15); }
}

Program diatas akan menggerakkan servo dari sudut 0 ke sudut 180 derajat, kemudian
kembali lagi ke sudut 0 derajat, dan akan berulang terus-menerus. Posisi sudut servo ditentukan
oleh perintah myservo.write(). Yang mana „myservo‟ adalah nama dari servo yang
kita tentukan sendiri. Dan perintah myservo.attach() digunakan untuk menentukan pin
digital arduino yang terhubung ke pin signal arduino.

Latihan

1. Modifikasi program untuk mengatur kecepatan pergerakan servo !


2. Buatlah program untuk mengatur sudut servo melalui inputan potensiometer!

37
Bab 7
Penutup

Arduino adalah salah satu perangkat elektronika yang sangan berguna untuk diterapkan
di sistm otomatis, robotika, instrumentasi, telemetri dan lain sebagainya. Dengan bahasa
pemrograman yang relatif mudah untuk dipelajari dibandingkan bahasa mikrokontroler lainnya.
Kunci utama untuk menguasai pemrograman arduino adalah latihan yang rutin. Dengan
menerapkan arduino ke dalam kehidupan sehari-hari akan membuat pengalaman belajar arduino
menjadi semakin menarik. Jika menemui masalah dalam belajar arduino, bisa memanfaatkan
artikel-artikel yang banyak terdapat di internet. Saat ini arduino cukup populer dikalangan
penggemar elektronika, sehingga tidak sulit mencari tutorial di internet.

Untuk saat ini, arduino mulai banyak diterapkan di system berbasis internet atau yang
lebih dikenal dengan istilah IoT (Internet of Things). Dengan menambah modul-modul yang
dapat berkoneksi dengan internet, maka arduino dapat mengirim dan menerima data melalui
koneksi internet. Selain itu juga banyak tersedia aplikasi- aplikasi online yang mendukung
teknologi IoT, mulai dari yang berbasis web sampai yang berbasis Android.

Yang terpenting adalah jangan pernah menyerah untuk belajar arduino. Tidak ada sesuatu
yang didapat dengan instan.

38

Anda mungkin juga menyukai