100% menganggap dokumen ini bermanfaat (3 suara)
578 tayangan28 halaman

Modul Belajar Arduino Bersama UTHM 2019

Dokumen tersebut membahas tentang pengenalan mikrokontroller dan Arduino. Secara singkat, mikrokontroller merupakan chip yang menggabungkan CPU, memori, dan port I/O dalam satu chip, sedangkan Arduino adalah platform elektronika open source berbasis mikrokontroller yang mudah digunakan."

Diunggah oleh

Mazlina Yahya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
100% menganggap dokumen ini bermanfaat (3 suara)
578 tayangan28 halaman

Modul Belajar Arduino Bersama UTHM 2019

Dokumen tersebut membahas tentang pengenalan mikrokontroller dan Arduino. Secara singkat, mikrokontroller merupakan chip yang menggabungkan CPU, memori, dan port I/O dalam satu chip, sedangkan Arduino adalah platform elektronika open source berbasis mikrokontroller yang mudah digunakan."

Diunggah oleh

Mazlina Yahya
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Anda di halaman 1/ 28

oleh:

Rustam Asnawi (UNY)


Nurhanim Saadah Binti Abdullah (UTHM)

PPM KOLABORASI INTERNASIONAL


Electric and Electronic Vocational Education Program
University Tun Husein Onn Malaysia
bekerjasama dengan Teknik Elektro
Fakultas Teknik, Universitas Negeri Yogyakarta
February 2019
1 Mengenal Mikrokontroller

Apa mikrokontroller itu dan apa perbedaan antara mikroprosesor dan mikrokontroller?
Mikroprocessor adalah sebuah chip central processing unit (CPU) yang berdiri sendiri, sehingga
untuk bekerjanya microprocessor harus bersama-sama dengan komponen pendukung yang lain
yakni RAM/ROM, timer dan piranti input/output untuk membangun sebuah system yang disebut
dengan system mikroprosesor. Dalam system mikroprosesor, kita boleh menentukan sendiri
kapasitas ROM, RAM dan port-port I/O nya.

Gambar 1. Sistem Mikroprosesor

Contoh dari mikroprosesor adalah seperti Gambar 2. Mikroprosesor memerlukan motherboard


untuk berkomunikasi dan berkolaborasi dengan komponen yang lain sehingga membentuk sebuah
system mikroprosesor.

Gambar 2. Contoh Mikroprosesor dan Sistem Mikroprosesor

Modul Singkat - Belajar Arduino | 2


Berdasarkan lebar datanya, mikroprosesor dalam perkembangannya ada mikroprosesor 4
bits, 8 bits, 16 bits, 32 bits dan sekarang sudah sampai 64 bits.
Selanjutnya apa itu mikrokontroller? Sebuah mikrokontroller (microcontroller disingkat
MCU) adalah sebuah komputer kecil dalam suatu IC tunggal yang terdiri atas CPU sederhana
digabung dengan piranti pendukungnya yakni memori (RAM, ROM), piranti I/O dan timer. Jadi
mikrokontroller merupakan gabungan dari komponen-komponen system mikroprosesor tersebut
(CPU, RAM, ROM, dan I/O port) yang digabung dan dikemas dalam 1 chip.

Gambar 3. Blok diagram sebuah mikrokontroller

Kemudian ditinjau dari sisi penggunaannya atau aplikasinya, mikroprosesor biasanya


diaplikasikan untuk general purpose, misalnya personal komputer. Sementara untuk
mikrokontroller digunakan untuk keperluan-keperluan yang spesifik misalnya kendali otomatis
motor servo, akuisisi data fisik, dll. Jika dilihat dari segi harga, system mikroprosesor jatuhnya
lebih mahal dibandingkan dengan system mikrokontroller.

2 Apa itu Arduino?


Menurut sumber resmi dari situs asli Arduino yakni www.arduino.cc, istilah “Arduino”
sendiri diartikan sebagai: an open-source electronics platform based on easy-to-use hardware
and software. Namun untuk Arduino “board” sendiri dapat diartikan sebagai sebuah (system)
mikrokontroller yang mudah digunakan baik hardware maupun software untuk membangun
prototype hardware. Arduino ada yang menyebutnya sebagai sebuah “system” mikrokontroller
karena terdiri tidak hanya mikrokontroller saja tetapi juga sudah ada komponen pendukung lain
seperti misalnya clock untuk pewaktu, antarmuka komunikasi serial-USB untuk uploading
program dan komponen pendukung lainnya.

Modul Singkat - Belajar Arduino | 3


Mengapa menggunakan Arduino? Ada beberapa alasan untuk menggunakan Arduino sebagai
basis dari projek hardware kita, diantaranya adalah:
1. Open-source project, semua software (Arduino IDE, semua library pendukung, bahkan
contoh-contoh program) dan juga hardware nya sangat mudah diakses dan tidak berbayar.
Selain itu juga softwarenya mudah di-kreasi ulang dan dikembangkan.
2. Fitur yang flexible, menawarkan variasi input analog dan digital, PWM output, dan serial
interface.
3. Mudah digunakan, instalasi Arduino IDE (sketch) mudah dan compatible baik di
Windows/Mac, lalu dihubungkan ke laptop hanya via kabel USB dengan komunikasi
standar serial, langsung bisa melakukan pemrograman.
4. Murah, sekitar 100 ribu rupiah per board (yang UNO) sudah bisa membuat berbagai
program aplikasi yang hebat dengan dukungan software yang lengkap dan tidak berbayar.
5. Dukungan komunitas dan forum yang banyak dan online dengan dukungan banyak
source codes yang sudah di share secara gratis.

Arduino memiliki banyak jenis atau tipe diantaranya yang umum digunakan adalah Arduino
Tiny, Arduino Nano, Arduino UNO dan Arduino Mega (Gambar 4).

Gambar 4. Arduino Tiny, Nano, UNO, dan Mega

Pemilihan jenis Arduino tersebut tergantung dari keperluan, missal kita akan membangun
sebuah prototype hardware yang menyertakan banyak sensor, aktuator dan display maka boleh
dipilih Arduino jenis Mega. Dari sekian banyak jenis Arduino tersebut yang paling popular
digunakan terutama dikalangan pelajar dan mahasiswa adalah Arduino jenis Uno.

Modul Singkat - Belajar Arduino | 4


Pada Arduino jenis UNO chip mikrokontroller yang digunakan adalah jenis Atmega 328.
Gambar 5 berikut menunjukkan layout pin dari Arduino jenis Uno.

Gambar 5. Arduino UNO

Untuk memprogram Arduino digunakan software Arduino Integrated Development


Environment (disingkat Arduino IDE) atau sering juga disebut dengan Arduino Sketch. Arduino
IDE ini bersifat freeware, Installernya dapat di download di
https://www.arduino.cc/en/Main/Donate , pilih [just download]. Setelah berhasil di download,
mulailah proses instalasi hingga selesai. Jangan lupa untuk men-tick pilihan instalasi driver serial-
USB atau boleh juga di-tick semua. Jika sudah berhasil install, tancapkan kabel USB-serial ke
USB port computer dan board Arduino Uno. Kemudian software Arduino IDE coba dijalankan.
Gambar 6 berikut adalah tampilah utama dari Arduino IDE. Ada beberapa bagian utama
dari Arduino IDE yakni paling atas ada bagian (1). Title, lalu kebawah ada bagian (2). Menu Bar,
(3). Button Bar, (4). Input/Edit Area, (5). Status Bar dan paling bawah ada bagian (6). Program
Notification Area.

Modul Singkat - Belajar Arduino | 5


1.Title 2.Menu Bar
3.Button Bar

Serial
monitor

4. Input/Edit Area

5.Status Bar

6. Program Notification Area

Gambar 6. Tampilan awal dari software Arduino IDE

3 Dasar-dasar Pemrograman Arduino

Elemen-elemen dari kode program Arduino identik dengan bahasa pemrograman C++.
Untuk memprogram system mikrokontroller Arduino digunakan Arduino IDE (sketch) yang bisa
diunduh secara gratis di www.arduino.cc. Bahasa Pemrograman Arduino dapat dibagi dalam 3
kelompok utama:
1. Structure
2. Values (variables and constants) dan
3. Functions
Berikut penjelasan singkatnya.

Modul Singkat - Belajar Arduino | 6


1. STRUCTURE
Struktur program Arduino pada prinsipnya dibagi menjadi 2 bagian utama yakni bagian
setup dan loop. Perhatikan kembali Gambar 6 pada bagian 4 (Input/Edit Area). Bagian setup
(setup()) hanya akan dieksekusi 1 kali saja pada saat pertama kali program dijalankan atau
tombol reset ditekan. Sedangkan bagian loop() akan dieksekusi berulang kali hingga program
diberhentikan. Bagian program loop() ini akan dieksekusi setelah bagian program setup()
selesai dieksekusi.

Control Structure

No Instruksi Diskripsi
1. break Keluar dari loop
2. continue Melanjutkan ke putaran loop berikutnya tanpa memperhatikan
(mengeksekusi) instruksi-instruksi setelahnya.
3. do Instruksi do..while ini akan mengeksekusi statements terus menerus
<statements> (membuat loop) selama ekpresi di while bernilai True.
while
(ekspresi)
4. for ( syarat ) Untuk membuat pengulangan dengan persyaratan tertentu, Contoh
<statements> For (int i=0;i<10,i++)
Instruksi tersebut akan melakukan pengulangan statemen sebanyak 10x
5. goto Memaksa untuk eksekusi program menuju ke label tertentu
6. If ( Instruksi percabangan dimana bagian statemen akan dikerjakan jika dan
<condition>) hanya jika bagian condition bernilai “true”

{<statements>}
7. If Instruksi percabangan dimana bagian statement-1 akan dikerjakan jika
(<condition>) bagian condition bernilai “true”, dan akan mengerjakan statement-2 jika
{<statement-1>} bagian condition bernilai “false”
Else
{<statement-2>}
8. Return Untuk keluar (mengakhiri) dari suatu fungsi
9. Switch … case Mirip dengan instruksi percabangan if, hanya disini statement dari case
boleh lebih dari 1 atau banyak dan akan dieksekusi sesuai dengan
pernyataan dari switch.
10. While Untuk membuat loop. Bagian statements akan diulang terus menerus
(pernyataan) selama condition dari while bernilai true.
{ <statements>
}

Arithmetic Operators Further Syntax


% : sisa (remainder) #define : define
* : perkalian #include : Include library
/ : pembagian /* */ : block komentar
+ : penjumlahan // : komentar satu baris
- : pengurangan ; : semicolon
= : pemberian nilai (assignment) { } : curly braces (kurung kurawal)

Modul Singkat - Belajar Arduino | 7


Comparison Operators Boolean Operator
!= : tidak sama dengan (not equal to) ! : logika not (logical not)
< : kurang dari (less than) && : logika dan (logical and)
<= : kurang dari atau sama dengan (less than || : logika atau (logical or)
or equal to)
== : sama dengan (equal to)
> : lebih besar (greater than)
>= : lebih dari atau sama dengan (greater
than or equal to)

Compound Operators
&= : compound bitwise and
*= : compound multiplication
++ : increment
+= : compound addition
-- : decrement
-= : compound subtraction
/= : compound division
^= : compound bitwise xor
|= : compound bitwise or

2. VARIABLES

Terkait dengan variable maka ada tipe atau jenis-jenis data (data types) dan juga konstanta
(constant). Tipe data dan konstanta dalam pemrograman Arduino banyak ragamnya seperti
disajikan dalam bentuk table berikut.

Data Type Constants (reserved) Conversion


int HIGH | LOW byte()
float INPUT|OUTPUT|INPUT_PULLUP char()
double LED_BUILTIN float()
string true | false int()
byte Integer Constants long()
char Floating Point Constants word()
array
bool
long
short
unsigned char
unsigned int
unsigned long
word

Modul Singkat - Belajar Arduino | 8


3. FUNCTIONS

Function atau dalam bahasa Indonesia fungsi digunakan untuk mengendalikan board
Arduino dan melakukan berbagai komputasi. Kelompok fungsi yang paling penting dalam
pemrograman Arduino adalah fungsi untuk mengeluarkan (output) dan memasukkan (input) data
baik data digital maupun data analog.

Fungsi Input/Output

Arduino mempunyai 14 jalur (pin) digital yang bisa diset sebagai jalur masukan ataupun
jalur keluaran. Ke-14 pin tersebut diberi nomor urut mulai dari nomor 0 hingga 13. Dalam buku
ini diberi nama P0 .. P13. Untuk menset sebuah pin menjadi jalur keluaran (output pin) ataupun
masukan (input pin) digunakan fungsi pinMode(). Perhatikan cara penulisannya adalah case
sensitive artinya huruf besar dan huruf kecil mempunyai arti yang berbeda.

Sintak penulisan: pinMode(<no.pin>,<OUTPUT>/<INPUT>);

Contoh berikut ini akan menset pin nomor 7 dari Arduino Uno sebagai jalur keluaran dan pin
nomor 8 sebagai jalur masukan:

pinMode(7,OUTPUT);
pinMode(8, INPUT);

Fungsi digitalWrite()
Fungsi ini digunakan untuk mengeluarkan data digital (baca: bit) ke sebuah jalur (pin) digital
keluaran tertentu dari Arduino yang sudah diset sebelumnya. Data digital disini berupa sebuah
bit yang tentunya hanya ada 2 kemungkinan nilai (atau status) yakni bisa bernilai HIGH atau
LOW. Nilai atau status “HIGH” bisa diartikan sama dengan bernilai logic ”1” atau true atau
secara fisik identik dengan pin yang bersangkutan mengeluarkan tegangan 5 volt dc. Artinya jika
pin tersebut dihubungkan ke sebuah lampu led maka lampu led itu akan menyala. Sedangkan nilai
atau “LOW” adalah sebaliknya yakni sama dengan berlogic “0” atau false atau secara fisik pin
tersebut terhubung ke ground (bertegangan 0 volt).
Sintak dari fungsi digitalWrite():

digitalWrite( <nomor pin>, <status>);

nomor pin : nomor pin digital Arduino yang telah diset sebagai jalur keluaran
status : diisi HIGH (1) yang akan mengeluarkan tegangan 5 volt dc atau
LOW (0) yang akan mengeluarkan tegangan 0 volt.

Modul Singkat - Belajar Arduino | 9


Contoh: digitalWrite(5,HIGH);

Jika dijalankan maka akan berefek di pin 5 digital akan mengeluarkan tegangan 5 volt. Sehingga
jika pin 5 ini dihubungkan dengan lampu led, lampu akan menyala.

Fungsi digitalRead()
Fungsi ini kebalikan dari fungsi digitalWrite() yakni digunakan untuk membaca
data digital (bit) yang dimasukkan lewat sebuah pin digital Arduino yang sebelumnya telah diset
sebagai jalur masukan. Sintak fungsi digitalRead() ini adalah seperti berikut:
<variabel penampung> = digitalRead(<nomor pin>)
Variabel penampung adalah variabel bertipe integer yang digunakan untuk menerima dan
menampung hasil pembacaan data digital dari sebuah jalur masukan (pin nomor tertentu) yang
sudah diset sebelumnya dengan instruksi pinMode().
Contoh: int data = digitalRead(5);

Jika dijalankan, instruksi tersebut akan membaca data digital (status) dari pin no.5.

Fungsi analogRead()
Perhatikan Gambar 5, Arduino Uno memiliki 6 buah pin yang dapat digunakan sebagai
jalur input data analog. Keenam jalur (pin) analog tersebut diberi nomor: A0,A1,A2,A3,A4
dan A5. Di setiap pin input analog dari Arduino tersebut sudah ada fitur Analog to Digital
Converter (ADC) nya sehingga secara otomatis data analog yang di-input-kan ke pin tersebut
akan dikonversikan ke data digital. Tegangan input analog berkisar antara 0 hingga 5 volt yang
akan dikonversikan menjadi data digital (integer) mulai dari 0 sampai dengan 1023 (lebar data
digitalnya 10 bits).
Fungsi analogRead()ini digunakan untuk membaca data analog yang dimasukkan
lewat jalur (pin) analog dari Arduino. Sintak fungsi analogRead() ini adalah seperti berikut:
<variabel penampung> = analogRead(<nomor pin>)
Variabel penampung adalah variabel bertipe integer yang digunakan untuk menerima dan
menampung hasil pembacaan data analog yang sudah dikonversikan ke data digital dari sebuah
jalur masukan analog (pin analog nomor tertentu) .
Contoh: int data = analogRead(A0);

Jika dijalankan, instruksi tersebut akan membaca data analog dari pin analog input no. A0.

Modul Singkat - Belajar Arduino | 10


Fungsi analogWrite()
Berfungsi untuk mengeluarkan sebuah nilai analog dalam bentuk gelombang pulse width
modulation (PWM) pada suatu pin tertentu di Arduino. Perhatikan Gambar 5, Arduino Uno
memiliki beberapa buah pin yang dapat digunakan untuk mengeluarkan data PWM yakni Pin 3,
5, 6, 9, 10, and 11 (diberi tanda ~ ). Dengan cara ini dapat dipakai untuk menyalakan sebuah
lampu led dengan kecerahan bervariasi atau untuk mengendalikan kecepatan sebuah motor.
Setelah fungsi analogWrite() ini dipanggil, maka pin terkait akan membangkitkan suatu
gelombang kotak dengan duty cycle tertentu. Frekuensi sinyal PWM pada kebanyakan pin
Arduino sekitar 490Hz. Pada Arduino UNO, pin 5 dan 6 memiliki frekuensi hingga sekitar 980
Hz.

Sintak: analogWrite(pin, value)

Parameter:
pin : nomor pin yang digunakan untuk keluaran. Tipe data: integer
value : the duty cycle, antara 0 (selalu off) dan 255 (selalu on). Tipe data yang
diijinkan: int
Contoh program:

int ledPin = 9; // LED connected to digital pin 9


int analogPin = 3; // potentiometer connected to analog pin 3
int val = 0; // variable to store the read value

void setup()
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}

void loop()
{
val = analogRead(analogPin); // read the input pin
// analogRead values go from 0 to 1023,
// analogWrite values from 0 to 255
analogWrite(ledPin, val / 4);
}

Program diatas jika dijalankan maka kecerahan lampu led di pin 9 dapat dikendalikan
menggunakan potensiometer yang dihubungkan dengan pin analog A3.
Selanjutnya beberapa fungsi penunjang yang lain disajikan dalam bentuk table ringkasan
sebagai berikut.

Modul Singkat - Belajar Arduino | 11


Fungsi Waktu Fungsi Math Fungsi Fungsi Character Lain-lain
(Time) Trigonometri
delay() abs() cos() isAlpha() random()
delayMicroseconds() map() sin() isAlphaNumeric() Serial.begin()
millis() pow() tan() isDigit() Serial.print()
sqrt() isLowerCase() Serial.println()
max() isUpperCase() Serial.write()
min() isSpace() Serial.read()

Fungsi Serial (komunikasi)


Fungsi ini digunakan oleh Arduino untuk berkomunikasi dua arah antara board Arduino
dengan computer atau laptop. Semua board Arduino memiliki minimal 1 serial port (juga dikenal
sebagai UART atau USART). Pada Arduino Uno, Nano, Mini dan Mega, pin 0 dan 1 digunakan
untuk komunikasi dengan computer/laptop. Mengkoneksikan pin-pin ini dengan apapun (untuk
input/output missal dihubungkan ke lampu led) dapat mengganggu komunikasi serial dengan
computer, termasuk juga menyebabkan kegagalan sewaktu uploading program ke board
Arduino.
Anda dapat menggunakan fitur bawaan serial monitor nya Arduino IDE untuk
berkomunikasi dengan board Arduino. Klik tombol serial monitor di toolbar dan pilihlah baudrate
yang sama dengan baudrate di program yakni saat call serial.begin(). Komunikasi serial pada pin
TX/RX menggunakan level logika TTL yakni 5volt atau 3.3 volt (tergantung jenis board
Arduinonya). Jangan langsung menghubungkan pin-pin ini ke suatu port serial RS232, karena
port RS232 beroperasi pada tegangan +/-12V sehingga dapat merusak board Arduino.
Beberapa fungsi penting dari serial adalah seperti berikut.

Serial.begin()
Menset data rate dalam satuan bit per detik (baud) untuk transmisi data serial. Untuk komunikasi
menggunakan serial monitor dari Arduino IDE, pastikan untuk memakai salah satu dari daftar
baudrate yang ada dalam menu di sudut kanan bawah layar jendela serial monitor. Biasanya
digunakan baudrate 9600 bps atau 115200 bps.
Sintak:
Serial.begin(speed);
Dimana speed adalah kecepatan transfer (baudrate), biasanya 9600bps. Jadi bisa juga
ditulis:
Serial.begin(9600);

Modul Singkat - Belajar Arduino | 12


Serial.print()
Fungsi ini akan mencetak (menulis) data ke port serial sebagai teks ASCII yang dapat dibaca
manusia. Pemakaian instruksi ini bisa dalam banyak bentuk dan cara. Angka dapat ditampilkan
dalam karakter ASCII untuk setiap digit. Data float sama ditampilkan sebagai digit ASCII,
defaultnya 2 angka decimal. Data byte akan dikirim sebagai karakter tunggal. Karakter dan string
dikirim sama atau tetap seperti itu.

Serial.print(78); // menampilkan "78"


Serial.print(1.23456); // menampilkan "1.23"
Serial.print('N'); // menampilkan "N"
Serial.print("Hello world."); // menampilkan "Hello world."

Serial.println()
Fungsi ini pada prinsipnya sama dengan Serial.print() yakni akan mencetak (menulis)
data ke port serial sebagai teks ASCII yang dapat dibaca oleh manusia, hanya dalam fungsi ini
diikuti oleh penulisan sebuah karakter carriage return (ASCII 13, atau „\r‟) dan sebuah karakter
baris baru (ASCII 10 atau „\n‟).
Sintak:
Serial.println(val);

dimana val adalah nilai yang akan ditampilkan (tipe data apapun).

Modul Singkat - Belajar Arduino | 13


4 PRAKTIK PEMROGRAMAN DASAR ARDUINO

1. Menghidupkan LED di pin 13

Dalam board Arduino jenis Uno terdapat sebuah lampu


led (biasanya warna orange) yang terkoneksi dengan pin
digital nomor 13. Perhatikan gambar disamping.
Ketikkan baris-baris program di bawah ini di Arduino IDE.
Lalu klik tombol verify. Jika sudah tidak ada kesalahan, klik
tombol upload untuk mengupload program tersebut ke dalam
Arduino. Perhatikan led yang terhubung di pin 13 tersebut,
seharusnya menyala terus.

// the setup routine runs once when you press reset:


void setup()
{
pinMode(13,OUTPUT); // set pin 23 as Output pin
digitalWrite(13,HIGH); // nyalakan led yg terhubung dgn pin 13
}

void loop()
{
}

2. Blinking LED pin 13


Percobaan berikutnya adalah membuat nyala berkedip lampu led di pin 13 tersebut.
Langkah-langkahnya adalah sama dengan percobaan 1 sebelumnya, yakni ketikkan baris program
dibawah ini di Arduino IDE. Cek kesalahan pengetikan program dengan klik tombol verify. Jika
sudah benar klik tombol upload untuk mulai menjalankan program di Arduino Uno.

void setup()
{
pinMode(13,OUTPUT); // set pin 23 as Output pin
}

void loop()
{
digitalWrite(13,HIGH); // nyalakan led yg terhubung dgn pin 13
delay(1000); // selama 1000 msec
digitalWrite(13,LOW); // matikan led yg terhubung dgn pin 13
delay(1000); // selama 1000 msec
}

Modul Singkat - Belajar Arduino | 14


Pengayaan: Perhatikan nyala lampu led tersebut. Ubah-ubahlah periode pulsa high dan low nya.

3. Memonitor Proses/Jalannya Program dengan Serial Monitor

Tuliskan program berikut di Arduino IDE, kemudian verifikasi hingga tak ada kesalahan
program. Jalankan dengan mengupload ke Arduino. Lalu klik tombol serial monitor di Arduino
IDE untuk menampilkan jendela Serial Monitor. Perhatikan tampilan di jendela serial monitor .

void setup()
{
pinMode(13,OUTPUT); // set pin 23 as Output pin
Serial.begin(9600); // inisialisasi komunikasi serial (monitor)
// dengan baudrate 9600
}

void loop()
{
digitalWrite(13,HIGH); // nyalakan led yg terhubung dgn pin 13
Serial.println(“LED ON”); // tulis “LED ON” di serial monitor
delay(1000); // selama 1000 msec
digitalWrite(13,LOW); // matikan led yg terhubung dgn pin 13
Serial.println(“LED OFF”); // tulis “LED OFF” di serial monitor
delay(1000); // selama 1000 msec
}

4. Input Data Digital

Percobaan ke-4 dan seterusnya memerlukan beberapa alat dan bahan tambahan
diantaranya project board dan beberapa kabel jumper male-male dan male-female.

Untuk Percobaan meng-inputkan data ke Arduino ini diperlukan alat dan bahan sebagai berikut:
 Mini push-button 1 buah
 Resistor 2Kohm 1 buah
 Resistor 220 ohm 1 buah dan
 Lampu led 1.5-3V 1 buah .

Modul Singkat - Belajar Arduino | 15


Adapun tujuan dari program Arduino ini adalah ketika push-button ditekan maka lampu led akan
menyala, jika dilepas lampu mati. Langkah pertama, buatlah rangkaian seperti gambar berikut.

220 ohm
2K ohm

Kemudian ketikkan program berikut di Arduino IDE.

int pininput = 2; // sebenarnya nomor pin ini terserah anda


int pinled = 13;
int nilai;

void setup()
{
pinMode(pinled, OUTPUT); // set pin 13 sebagai keluaran
pinMode(pininput, INPUT); // set pin 2 sebagai masukan
}

void loop()
{
nilai= digitalRead(pininput); // baca pin status pin 2

if (nilai == 1) // jika ditekan maka pin 2= high (5 volt)


{
digitalWrite(pinled, HIGH);
}
else
{
digitalWrite(pinled, LOW);
}
}

Modul Singkat - Belajar Arduino | 16


Verifikasi hingga tidak ada kesalahan program, lalu jalankan dengan mengupload program
tersebut ke Arduino. Tekan push-button sambil perhatikan dan amati lampu led. Seharusnya
sewaktu push-button ditekan lampu led menyala dan ketika dilepas lampu led mati.

5. Fade Out/In

Untuk melakukan Percobaan ke-5 ini diperlukan sebuah lampu led dan resistor bernilai
sekitar 200 ohm. Buatlah rangkaian seperti gambar berikut dengan bantuan project board dan
kabel male-male.

200 ohm

Ketikkan program berikut di Arduino IDE.

/*
Fade
This example shows how to fade an LED on pin 9 using the
analogWrite() function.
The analogWrite() function uses PWM, so if you want to change
the pin you're using, be sure to use another PWM capable pin.
On most Arduino, the PWM pins are identified with
a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
This example code is in the public domain.
*/

int ledpin = 9; // the PWM pin the LED is attached to


int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by

void setup()
{
pinMode(ledpin, OUTPUT); // declare pin 9 to be an output
}

void loop() {

Modul Singkat - Belajar Arduino | 17


// set the brightness of pin 9:
analogWrite(ledpin, brightness);

// change the brightness for next time through the loop:


brightness = brightness + fadeAmount;

// reverse the direction of the fading at the ends of the fade:


if (brightness <= 0 || brightness >= 255)
{
fadeAmount = -fadeAmount;
if (brightness <=0)
{
analogWrite(ledpin, 0);
delay(3000);
}
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}

Verifikasi hingga tidak ada kesalahan program, lalu jalankan dengan mengupload program
tersebut ke Arduino. Amati nyala lampu led tersebut.
Pengayaan:
coba ganti nilai fadeAmount dan lama delay yang 30 msec. Amati apa yang terjadi dengan nyala
led.

6. Simulasi Sensor Analog dengan Potensiometer

Buatlah rangkaian seperti gambar berikut.

Ketikkan program berikut di Arduino IDE.

Modul Singkat - Belajar Arduino | 18


/*
AnalogRead : reads an analog input on pin A5, prints the result to
the serial monitor. Graphical representation is available using
serial plotter (Tools > Serial Plotter menu)
Attach the center pin of a potentiometer to pin A5, and the outside
pins to +5V and ground.

This example code is cited from Arduino.cc (in the public domain).
*/

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

void loop()
{
// read the input on analog pin A5
int sensorValue = analogRead(A5);
// mapping the value into proper new value whatever you want
sensorValue = map(sensorValue,0,1023,0,255);
// print out the new value
Serial.println(sensorValue);
delay(10); // delay in between reads for stability
}

Verifikasi hingga tidak ada kesalahan program, lalu jalankan dengan mengupload program
tersebut ke Arduino. Lalu klik tombol serial monitor di Arduino IDE untuk menampilkan jendela
Serial Monitor. Putar-putar potensiometer ke kiri dan kenan. Perhatikan dan amati tampilan di
jendela serial monitor .
Pengayaan:
 Aktifkan serial plotter dengan cara masuk ke menu Tools | Serial Plotter. Putar-putar lagi
potensiometer. Amati tampilan grafis di Serial Plotter.
 Apa yang terjadi jika instruksi map(sensorValue,0,1023,0,255); diubah menjadi
map(sensorValue,0,1023,10,100);
 Apa yang terjadi pada outputnya jika instruksi delay(10) di naikkan nilai delay nya?

Modul Singkat - Belajar Arduino | 19


7. Fade In/Out a LED using Potensiometer

Buatlah rangkaian seperti Gambar di atas. Ketikkan program dibawah ini di Arduino IDE
lalu verifikasi hingga tidak ada kesalahan. Jalankan program dengan mengupload di Arduino.
Putarlah potensiometer ke kiri atau ke kanan sambil diperhatikan nyala lampu led.

/*
This example shows how to fade an LED on pin 9
using the analogWrite() function.
It uses POTENSIOMETER attached to Pin A1

The analogWrite() function uses PWM, so if


you want to change the pin you're using, be
sure to use another PWM capable pin. On most
Arduino, the PWM pins are identified with
a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.

This example code is in the public domain.


*/

int led = 9; // the PWM pin the LED is attached to

void setup() {
pinMode(led, OUTPUT); // declare pin 9 to be an output
Serial.begin(9600);
}

void loop() {
int pot = analogRead(A1);
pot = map(pot,0,1024,0,255);
Serial.print("Data Potensio : "); Serial.println(pot);
// set the brightness of LED at pin 9 range: 0-255:

Modul Singkat - Belajar Arduino | 20


analogWrite(led, pot);
delay(30);
}

8. ULTRASONIC sensor

Untuk percobaan ini diperlukan komponen modul sensor jarak ultrasonic jenis HC-SR04.
Kemudian buatlah rangkaian seperti gambar berikut.

Ketikkan program berikut di Arduino IDE.

//========================= Arduino project =======================


// for microcontroller workshop (created jan 2019)
// sensor device: ULTRASONIC sensor type HC-SR04
// Arduino pin 6 set as INPUT : connected to pin Echo sensor
// Arduino pin 7 set as OUTPUT: connected to pin Trigger sensor
//=================================================================
void setup()
{
pinMode(7,OUTPUT); // connected to pin TRIGGER ultrasonic
pinMode(6,INPUT); // connected to pin ECHO ultrasonic
Serial.begin(9600);
delay(100);
Serial.println("ULTRASONIC sensor (distance) type: HC-SR04 ");
}

void loop()
{
digitalWrite(7,LOW); // clear the triger pin

Modul Singkat - Belajar Arduino | 21


delayMicroseconds(2);
// set the trigger pin on 1 during 10 microsec
digitalWrite(7,HIGH);

delayMicroseconds(10);
digitalWrite(7,LOW);
// read the echo pin, return the sound wave travel time
long duration = pulseIn(6,HIGH);
float distance = duration*0.034/2;
Serial.print("Distance (in Cm) = "); Serial.println(distance);
delay(2000);
}

Verifikasi hingga tidak ada kesalahan. Jalankan program dengan mengupload di Arduino.
Aktifkan jendela Serial Monitor. Amati tampilan yang ada di Serial Monitor.
Pengayaan:
Tempatkan sebuah obyek di depan sensor, lalu geser obyek tersebut menjauh dan mendekat dari
sensor. Amati perubahan jarak yang ditampilkan di Serial Monitor. Validasi jarak yang
ditampilkan di Serial Monitor dengan mengukur secara manual dengan penggaris jarak antara
sensor dan obyek.

9. DHT11 Sensor

Modul DHT11 adalah suatu sensor temperature/suhu dan kelembaban. Untuk membaca data
temperature dan kelembaban dari sensor DHT11 ini diperlukan library khusus yakni
SimpleDHT.h. Cara menginstallnya masuk ke menu Sketch | Include Library | Manage
Library..
Ketikkan DHT, lalu pilih SimpleDHT untuk diinstal. Jika sudah terinstal maka tampilan jendela
Library Manager-nya sebagai berikut.

Modul Singkat - Belajar Arduino | 22


Setelah library selesai diinstal baru kemudian memprogram untuk DHT11. Namun sebelumnya
buatlah rangkaian seperti gambar berikut.

//========================= Arduino project ==========================


// for microcontroller workshop (created jan 2019)
// sensor device: temperature & humidity, sensor type: DHT11
// Pin digital 3 is connected to pin Data of DHT11
// DHT11 pins VCC can be connected to 5V or 3.3V
//====================================================================

#include <SimpleDHT.h>

int pinDHT11 = 3; //digital pin

SimpleDHT11 dht11(pinDHT11);

void setup() {
Serial.begin(9600);
delay(100);
Serial.println("Read temp & humidity data from DHT11");
Serial.println("====================================");
Serial.println("Start reading.....");
}

void loop() {

byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;

Modul Singkat - Belajar Arduino | 23


if ((err = dht11.read(&temperature, &humidity, NULL)) !=
SimpleDHTErrSuccess)
{
Serial.print("Read DHT11 failed, err="); Serial.println(err);
delay(1000);
return;
}

Serial.print("Current temperature: ");


Serial.print((int)temperature); Serial.print(" *C, humidity: ");
Serial.print((int)humidity); Serial.println(" H");

// DHT11 sampling rate is 1HZ.


delay(1500);
}

10. Sensor Cahaya dengan Light Dependence Resistant (LDR)

Sensor cahaya dengan LDR ini memiliki 2 jenis yakni (1) ada yang outputnya digital saja (0 :
jika ada cahaya, dan 1: jika tidak ada cahaya) dan (2) outputnya digital dan analog. Dalam contoh
ini digunakan yang outputnya 1 macam saja yakni output digital. Wujud fisik dari sensor cahaya
ini seperti gambar berikut.

//=================== Arduino project =============================


// for microcontroller workshop (created jan 2019)
// sensor device: light, sensor type: LDR (digital output)
// Arduino pin Digital 6 set as INPUT.
// Pin D6 is connected to pin Data (usually signed as D0) of LDR
module.
// If there is enough light would produce output 0,
// if dark the output = 1
// LDR module pin VCC can be connected to 5V or 3.3V
//=================================================================

void setup() {
pinMode(6,INPUT);
Serial.begin(9600);
}

Modul Singkat - Belajar Arduino | 24


void loop() {
int nilaiLDR = digitalRead(6); // 0: ada cahaya; 1: gelap
Serial.println(nilaiLDR);
delay(500);
}

Ketikkan progam diatas di Arduino IDE. Verifikasi hingga tidak ada kesalahan, lalu jalankan
dengan meng-upload di Arduino. Amati tampilan di layar monitor.

11. Kendali Motor Stepper

Secara umum, gambar skema motor stepper sederhana seperti berikut. Motor stepper
biasanya memiliki 4 buah pin input digital untuk mengendalikan arah dan kecepatan putaran.

Kabel Hijau : koil 1 (K1)


Kabel Biru : koil 2 (K2)
Kabel Hitam : koil 3 (K3)
Kabel Merah : koil 4 (K4)

Untuk menjalankan motor stepper tersebut ke arah kiri (berlawanan arah jarum jam) harus ada
perubahan tegangan (on-off) dari K1 ke K2, K2 ke K3, K3 ke K4, dan K4 ke K1 lagi, dst.
Kondisi on-off tiap koil ini bisa digambarkan dalam bentuk tabel sbb.

Step K1 K2 K3 K4
1 5 volt 0 0 0
2 0 5 volt 0 0
3 0 0 5 volt 0
4 0 0 0 5 volt
5 5 volt 0 0 0
6 0 5 volt 0 0
dst

Atau bisa juga dengan formasi sebagai berikut:

Modul Singkat - Belajar Arduino | 25


Step K1 K2 K3 K4
1 5 volt 5 volt 0 0
2 0 5 volt 5 volt 0
3 0 0 5 volt 5 volt
4 5 volt 0 0 5 volt
5 5 volt 5 volt 0 0
6 0 5 volt 5 volt 0
dst

Tabel di atas akan membuat motor stepper memutar ke (missal) kiri. Untuk membalik arah
putaran nya maka pola on – off koil-koilnya dibalik mulai dari K4, K3, K2, dst.
Apabila status on dan off-nya dari koil K1, K2, K3, K4 dikoneksikan dengan on-offnya Pin
digital D8,D9,D10, dan D11 dari sebuah mikrokontroller Arduino, maka program untuk
memutar motor stepper ke arah kiri (berlawanan arah dengan jarum jam).

Step A3 A2 A1 A0
1 0 0 0 1
2 0 0 1 0
3 0 1 0 0
4 1 0 0 0
5 0 0 0 1
6 0 0 1 0
... dst
20 1 0 0 0

adalah sebagai berikut.

//=============== Arduino Project: MOTOR STEPPER ============


// the motor stepper has 4 input pins for controlling the
// rotation (speed & direction)
// those are connected to pin 8,9,10,11 of Arduino
//===============================================================
int tH=80; // durasi waktu nyala
int tL=80; // durasi waktu mati

void setup() {
pinMode(7,INPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}

void loop()
{
digitalWrite(8,HIGH);
delay(tH);

Modul Singkat - Belajar Arduino | 26


digitalWrite(8,LOW);
delay(tL);
digitalWrite(9,HIGH);
delay(tH);
digitalWrite(9,LOW);
delay(tL);
digitalWrite(10,HIGH);
delay(tH);
digitalWrite(10,LOW);
delay(tL);
digitalWrite(11,HIGH);
delay(tH);
digitalWrite(11,LOW);
delay(tL);
}

Jika dikehendaki ada sebuah saklar yang apabila dalam kondisi ditekan motor berhenti berputar
dan ketika kondisi dilepas, motor berputar terus.

//==================== Arduino Project: MOTOR STEPPER ============


// the motor stepper has 4 input pins for controlling the
// rotation (speed & direction)
// those are connected to pin 8,9,10,11 of Arduino
//===============================================================
int t=80;

void setup() {
pinMode(7,INPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
Serial.begin(9600);
delay(100);
}

Modul Singkat - Belajar Arduino | 27


void loop()
{
int pin7 = digitalRead(7);
Serial.print("Pin 7 : "); Serial.println(pin7);
if (pin7==0) LeftRotate();
else
stopRotate();
delay(10);
}

void stopRotate()
{
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
delay(10);
}

void LeftRotate()
{
digitalWrite(8,HIGH); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,LOW);
delay(t);
digitalWrite(8,LOW); digitalWrite(9,HIGH);
digitalWrite(10,LOW); digitalWrite(11,LOW);
delay(t);
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,HIGH); digitalWrite(11,LOW);
delay(t);
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,HIGH);
delay(t);
}

void RightRotate()
{
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,HIGH);
delay(t);
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,HIGH); digitalWrite(11,LOW);
delay(t);
digitalWrite(8,LOW); digitalWrite(9,HIGH);
digitalWrite(10,LOW); digitalWrite(11,LOW);
delay(t);
digitalWrite(8,HIGH); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,LOW);
delay(t);
}

Modul Singkat - Belajar Arduino | 28

Anda mungkin juga menyukai