Modul Pelatihan Arduino
Modul Pelatihan Arduino
PENYUSUN:
Andreas Bagus Sadewo, S.T.
Gambar di bawah ini memperlihatkan bagian utama dari papan Arduino uno, yakni terminal
power supply, port USB, pin digital I/O, tombol reset, mikrokontroler ATmega328 dan pin
analog input.
Berikut ini adalah penjelasan beberapa bagian utama dari papan Arduino uno, yaitu:
1. Power Supply.
Pada Arduino board, ada 2 (dua) pilihan sumber tegangan yang dapat digunakan, yakni
dari port USB maupun dari power supply eksternal. Dengan menghubungkan port USB di
komputer/laptop dengan Arduino maka secara otomatis power supply Arduino bersumber dari
port USB. Untuk sumber tegangan eksternal (non-USB) yakni dengan menghubungkan Arduino
board dengan sumber tegangan DC. Tegangan yang direkomendasikan adalah 7 sampai 12 V,
jika kurang dari 7V akan menyebabkan ketidakstabilan tegangan, sedangkan jika lebih dari 12V
akan menyebabkan panas dan akibat fatal berupa kerusakan pada board Arduino.
2. Input – Output.
Port Arduino berbeda penamaannya dengan sistem minimum mikrokontroler atau
microntroller development system. Sebagai contoh pada system minimum ATmega8535
penamaan port adalah PORTA, PORTB, PORTC dan PORTD, untuk akses per-bit maka
PORTA.0 s/d PORTA.7, contoh lain pada AT89S51 maka PORT0, PORT1 dan seterusnya.
Sistem penamaan port pada Arduino merupakan urutan nomor port, mulai dari nomor nol (0),
satu (1) dan seterusnya. Untuk digital I/O dengan nama pin 1, 2 sampai 13, sedangkan untuk
analog input menggunakan nama A0, A1 sampai A5. Pada Arduino uno terdapat 14 pin digital
input – output. Secara umum berfungsi sebagai port input – output biasa, namun ada beberapa
pin yang mempunyai fungsi alternatif. Sebagai contoh, pin 2 dan 3 juga sebagai pin interupsi
eksternal. Kemudian pin 5,6,9,10 dan 11 dapat dipakai untuk PWM (Pulse Width Modulation)
yang sering dipakai untuk kendali motor DC maupun motor servo. Tabel dibawah ini
menunjukkan nomor dan fungsi pin pada Arduino uno.
Tabel Konfigurasi Pin Arduino Uno
Arduino memiliki 6 pin analog input, berfungsi membaca sinyal masukan analog seperti
sensor analog. Meskipun demikian pin analog input dapat pula digunakan untuk keperluan
digital I/O. Tabel di bawah ini menunjukkan nomor dan fungsi pin input analog.
Tabel Konfigurasi Pin Analog Input
pinMode(pin, mode);
pin : nomor pin yang akan dikonfigurasi (nomor pin pada board Arduino UNO, 0
– 13 atau A0 – A5).
mode : INPUT atau OUTPUT.
Sebagai contoh jika pin no 2 akan dibuat sebagai pin output, maka :
pinMode(2, OUTPUT);
pinMode(4, INPUT);
digitalWrite(pin, value);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
digitalWrite(3, 1);
pinMode(4,INPUT);
Setelah diset sebagai pin input, fungsi pembacaan data digitalnya adalah :
Var=digitalRead(pin);
Misalnya akan dibaca pin no 4, hasil pembacaan disimpan dalan variabel baca :
baca=digitalRead(4);
3. Struktur dasar
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
B. Program utama.
Setelah melakukan inisialisasi selanjutnya program yang dikerjakan adalah
program utama, tergantung dari aplikasi yang dibuat, isi dari program utama berbeda
antara satu program dengan program yang lain. Struktur yang digunakan adalah loop().
Sebagai contoh :
void loop()
{
}
4. Ekspresi Bilangan
Dalam pemrograman Arduino, bilangan dapat diekspresikan dalam beberapa format.
Desimal
Ditulis biasa tanpa tambahan apapun. Contoh : 234.
Oktal
Ditulis dengan awalan angka ‘0’ (nol) didepan. Contoh : 0631.
Biner
Penulisan diawali dengan huruf ‘B’. Contoh : B11100011.
Heksadesimal
Diawali dengan ‘0x’ . Contoh : 0x8C.
5. Kontrol Program
Sebuah program yang kita buat membutuhkan suatu kontrol, misalnya pengujian kondisi,
melompat pada perintah yang lain dan sebagainya.
A. if
Digunakan untuk menguji kondisi, jika kondisi tersebut benar maka perintah didalam If
akan dikerjakan.
if (kondisi)
{
Pernyataan/perintah;
}
Contoh :
if(x>7)
{
x=x+1;
}
B. if – else
Hampir sama dengan if, hanya saja ada 2 pilihan pernyataan/perintah. Jika kondisi benar
maka perintah didalam blok if yang dikerjakan, jika kondisi salah maka pernyataan di
dalam else yang dikerjakan.
if (kondisi)
{
Pernyataan/perintah 1:
}
else
{
Pernyataan/perintah 2;
}
Contoh:
if (x>7)
{
x=x+1;
}
else
{
x=x+2;
}
C. if – else if
Untuk pengujian dengan banyak kondisi maka digunakan if – else if.
if (kondisi 1)
{
Pernyataan/perintah 1;
}
else if (kondisi 2)
{
Pernyataan/perintah 2;
}
else if (kondisi ke-n)
{
Pernyataan/perintah ke-n;
}
Contoh :
if(tombol=='1'){
Serial.println("Angka 1");
}
else if(tombol =='2'){
Serial.println("Angka 2");
}
else if(tombol =='3'){
Serial.println("Angka 3");
}
6. Operasi Aritmatika
7. Operasi Perbandingan
PERANGKAT LUNAK ARDUINO
2. Jalankan file installer arduino yang sudah disiapkan. Maka akan muncul jendela ‘License
Agreement’. Klik tombol ‘I Agree’
3. Berikutnya akan diminta memasukkan folder instalasi Arduni. Biarkan default atau
silahakan diganti sesuai folder yang diinginkan.
4. Setelah itu akan muncul jendela ‘Setup Installation Options’. Sebaiknya dicentang semua
opsinya
6. Di tengah proses instalasi, jika komputer Anda belum terinstal driver USB, maka akan
muncul jendela ’Security Warning’ sbb. Silahkan pilih tombol ‘Install’
7. Tunggu sampai proses instalasi ‘Completed’
8. Pada tahap ini software IDE Arduno sudah terinstal. Silahkan cek di Start Menu
Windows atau di desktop seharusnya ada ikon Arduno. Jika sudah menemukannya,
jlankan aplikasi tersebut. Seharusnya akan muncul splash screen seperti gambar di
bawah ini:
9. Beberapa detik kemudian, jendela IDE Arduino akan muncul. Sampai sini instalasi IDE
ARDUINO sudah berhasil, selanjutnya adalah instalasi driver Arduino UNO agar
program bisa dijalankan di board Arduino.
Berikut penjelasan dari setiap bagian IDE ARDUINO
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.
10. Hubungkan Arduino UNO ke laptop menggunakan kabel USB, jika driver belum terinstal
maka akan muncul notif seperti ini,
11. Buka file driver CH340 yang sudah disiapkan, kemudian jalankan SETUP.exe
14. Silahkan cek driver sudah ter-Install coba buka Start => cari "Device Manager".
15. Selanjutnya, silakan buka sampel led flip-flop dengan cara Klik menu File > Examples >
1.Basic > Blink
16. Setting board Arduino dengan cara : Klik menu Tools > Board > Arduino UNO
17. Pilih port yang digunakan Arduino dengan cara mengklik menu Tools > Ports > (pilih
yang ada Arduino-nya). Setiap komputer akan berbeda nilai Portnya. Silahkan cek di
Device Manager masing-masing
19. Setelah berhasil diupload, akan muncul tulisan "Done uploading" di bagian bawah. Jika
berhasil, maka LED dengan tulisan "L" pada board Arduino akan kelap-kelip.
PEMOGRAMAN ARDUINO
A. LED FLIP-FLOP
Buatlah rangkaian seperti di bawah ini:
Pembahasan:
Fungsi setup() dan fungsi loop() merupakan fungsi wajib dan harus ada. Fungsi setup()
digunakan untuk inisialisasi program, fungsi ini hanya dijalankan sekali yaitu ketika program
pertama kali dijalankan (ketika arduino pertama kali dihidupkan). Sedangkan fungsi loop() akan
dijalankan terus-menerus (looping forever) hingga Arduino dimatikan.
1 int led = 9;
Nama-nama pin pada Arduino sama seperti yang tertera di board. Pada salah satu sisi
board, nama-nama pinnya adalah 0 hingga 13, kemudian di sisi lain nama-nama pinnya A0
hingga A5, dst. Perintah pada baris 1 artinya : Variabel ‘led’ merupakan konstanta dalam bentuk
integer yang merujuk pada pin 9 board Arduino.
Untuk kemudahan dalam memprogram, sebaiknya inisialisasi pin-pin dijadikan konstanta dan
ditentukan di awal program. Sehingga, misal ketika kita ingin mengubah pin yang akan dirujuk,
kita tidak akan kesusahan. Kita tinggal mengubah nilai dari variabel pin tersebut, maka kita tidak
perlu langi mengubah variabel lainnya. Berikut tabel tipe data yang bisa digunakan:
3 void setup()
4 {
5 pinMode(led, OUTPUT);
6 }
Fungsi pinMode() memberi tahu bahwa variabel ‘led’ adalah Output. Dengan demikian
mikrokontroller tidak akan “membaca” logika pin tersebut, akan tetapi dia hanya akan “menulis”
logika pada pin tersebut. Dengan kata lain, jika kita ingin mendefinisikan bahwa pin ini adalah
input, maka kita tinggal mengubah OUTPUT menjadi INPUT.
8 void loop()
9 {
10 digitalWrite(led,HIGH);
11 delay(500);
12 digitalWrite(led,LOW);
13 delay(500);
14 }
Baris ini adalah inti dari program yang akan dieksekusi selama Arduino tersambung
dengan listrik atau selama Arduino tidak direset. led diset HIGH berarti LED akan diberi
tegangan 5 volt, sedangkan LOW berarti LED akan diberi tegangan 0 volt. Oleh sebab itu,
rangkaian LED di atas akan menyala ketika diberi HIGH dan akan mati ketika diberi LOW.
Fungsi delay() digunakan untuk berhenti selama sekian milidetik. Karena 1 detik = 1000
milidetik, maka pemberian nilai 500 berarti Arduino akan jeda selama ½ detik ketika LED nyala
dan ½ detik ketika LED padam. Lalu bagaimana jika program yang Anda coba tidak berjalan dan
error? Begini, ada beberapa yang perlu diperhatikan ketika Anda memprogram:
1. Penulisan sketch itu case sensitive, artinya, tulisan “pinLED” tidak sama dengan
“PinLED”. Jika terjadi error, coba perhatikan apakah ada penulisan yang keliru?
2. Jika Anda copy-paste sketch dari file PDF ke Arduino IDE, maka kemungkinan akan
ada perubahan whitespace (spasi, tab, blank line). Jika spasi tergantikan denan
karakter tab atau blank line, maka sketch akan error. Silakan Anda cek setiap spasi,
jika ukuran space-nya berbeda dengan spasi yang lain, silakan dihapus dan ganti
dengan spasi.
3. Setiap blok kode harus diapit dengan kurung kurawal „{‟ dan „}‟. Jika kurungnya
kurang satu, maka akan error.
4. Setiap ada kurung buka „(‟, harus ada kurung tutup „)‟. Jadi jika ternyata kurungnya
kurang, itu bisa menyebabkan error.
5. Penulisan angka tanpa embel-embel koma. Misal Anda ingin menulis 1000, maka
tidak perlu menulis dengan 1,000 atau 1.000. Penulisan dengan 1,000 akan terjadi
error, sedangkan jika Anda menulis dengan 1.000 akan dianggap 1, bukan 1000.
6. Setiap baris kode akan ditutup dengan titik koma (semicolon) „;‟, kecuali di akhir
blokkode yang ditutup dengan kurung kurawal „}‟.
B. Animasi LED
Tuliskan Sketch di bawah ini:
1 // Pin 13 untuk LED
2 const int pinLED = 13;
3 // awal time delay 1000 | 1 detik
4 int timeDelay = 1000;
5
6 void setup()
7 {
8 // pin LED sebagai output
9 pinMode(pinLED, OUTPUT);
1 }
0
1 void loop()
1 {
1 // Setiap looping, nilai timeDelay dikurangi 50
2 timeDelay = timeDelay - 50;
1 // Jika timeDelay bernilai 0 atau negatif maka nilai timeDelay direset ke 1000
3 if(timeDelay <= 0)
1 {
4 timeDelay = 1000;
1 }
5 //Nyalakan dan matikan LED selama timeDelay
1 digitalWrite(pinLED, HIGH);
6 delay(timeDelay);
1 digitalWrite(pinLED, LOW);
7 delay(timeDelay);
1 }
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
Perintah IF pasti akan diikuti dengan kondisi yang bernilai True yang diapit dengan tanda
kurung, if (kondisi). Pada Sketch 2.1 di atas kondisi yang digunakan adalah timeDelay <= 0,
timeDelay lebih kecil atau sama dengan nol. Artinya, jika timeDelay bernilai 0 atau lebih kecil
dari 0, maka blok kode dalam if akan dieksekusi.
C. Sensor Cahaya
Buatlah rangkaian seperti dibawah ini:
Tulis sketch di bawah ini:
Upload program tersebut ke board arduino kemudian buka Serial Monitor yang ada di pojok
kanan atas. Silahkan amati data yang ada.
D. Sensor SUHU & KELEMBAPAN DHT11
Buatlah rangkaian di bawah ini:
Sensor DHT11 memiliki library yang sudah bisa digunakan agar mempermudah dalam
membuat program. Sebelum menuliskan program sebaiknya kita menambahkan library
tersebut ke IDE ARDUINO kita, dengan cara:
1. Siapkan library DHT11
2. Kemudian add library dari menu Arduino IDE dengan Sketch>mport Library>Add
Library
1 #include <DHT.h>
2 DHT dht(2, DHT11); //Pin, Jenis DHT
3
4 void setup(){
5 Serial.begin(9600);
6 dht.begin();
7 }
8
9 void loop(){
10 float kelembaban = dht.readHumidity();
11 float suhu = dht.readTemperature();
12
13 Serial.print("kelembaban: ");
14 Serial.print(kelembaban);
15 Serial.print(" ");
16 Serial.print("suhu: ");
17 Serial.println(suhu);
18 }
Buka Serial Monitor dan amati hasilnya:
E. Sensor PING
Buatlah rangkaian seperti di bawah ini:
Sebelum menuliskan programnya, silahkan masukkan dulu library ‘NewPing’. Tuliskan
program di bawah ini:
1 #include <NewPing.h>
2
3 #define TRIGGER_PIN_1 11
4 #define ECHO_PIN_1 12
5 #define MAX_DISTANCE 500
6 NewPing sonar_1(TRIGGER_PIN_1, ECHO_PIN_1, MAX_DISTANCE);
7
8 unsigned int jarak;
9
1 void setup()
0 {
1 Serial.begin(9600);
1 }
1
2 void loop()
1 {
3 delay(100);
1 jarak = sonar_1.ping_cm();
4 Serial.print("jarak :");
1 Serial.print(jarak);
5 Serial.println("cm");
1 }
6
1
7
1
8
1
9
2
0
2
1
2
2
#include <LiquidCrystal.h> //Library lcd
LiquidCrystal lcd(5,6,10,11,12,13); //penginisialan nama dan pin(RS,E,D4,D5,D6,D7)
int trigpin=3; //penginisal kaki trigpin masuk pin 3
int echopin=4; //penginisial kaki echopin masuk pin 4
void setup() {
// put your setup code here, to run once:
pinMode(trigpin,OUTPUT); //pin trigpin sebagai OUTPUT
pinMode(echopin,INPUT); //pin echopin sebagai INPUT
lcd.begin(16,2); //Menunjukkan bahwa lcd memiliki 16 kolom dan 2 baris
lcd.clear(); //bahwa lcd dalam keadaan bersih tanpa tulisan
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trigpin,LOW); //membaca pin trigpin Low
delayMicroseconds(2);
digitalWrite(trigpin,HIGH); //pin trigpin mengirim sinyal
delayMicroseconds(10);
digitalWrite(trigpin,LOW); //pin trigpin LOW
int duration = pulseIn(echopin,HIGH); //pin echo membaca atau menerima sinyal
int distance = duration /58; //rumus dalam cm
/
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[
[[[[[[[[
}}