Modul 2 Pemrograman Arduino
Modul 2 Pemrograman Arduino
1. TUJUAN
- Mengetahui struktur pemrograman Arduino
- Melakukan pemrograman Mikrokontroler Arduino
- Membuat program aplikasi arduino
2. PEMROGRAMAN ARDUINO
Arduino menggunakan pemrograman dengan bahasa C. Berikut ini adalah penjelasan
singkat karakter bahasa C dan software Arduino. Untuk penjelasan yang lebih mendalam,
dapat diakses melalui web Arduino.cc.
2.1 Struktur
Setiap program Arduino (sketch) mempunyai dua buah fungsi sebagai berikut:
void setup( ) { }
Semua kode di dalam kurung kurawal akan dijalankan hanya satu kali ketika program
Arduino dijalankan untuk pertama kalinya.
void loop( ) { }
Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan
satu kali fungsi ini akan dijalankan terus menerus selama board arduino terhubung
dengan power supply.
2.2 Syntax
Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan program.
// (komentar satu baris) Kadang diperlukan untuk memberi catatan pada diri sendiri apa
arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah
garis miring dan apapun yang diketik dibelakangnya akan
diabaikan oleh program.
/* */ (komentar banyak Jika terdapat banyak catatan, maka hal itu dapat dituliskan pada
baris) beberapa baris sebagai komentar. Semua hal yang terletak di
antara dua simbol tersebut akan diabaikan oleh program.
{ } (kurung kurawal) Digunakan untuk mendefinisikan kapan blok program mulai dan
berakhir (digunakan juga pada fungsi dan pengulangan).
; (titk koma) Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada
titik koma yang hilang maka program tidak akan bisa dijalankan).
2.3 Variabel
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. Variabel
disimpan di RAM pada sebuah atau beberapa lokasi memori yang diberi nama. Tipe data
variabel harus didefinisikan untuk menentukan berapa banyak byte memori yang disediakan
untuk variabel itu, dan jenis data yang dapat disimpan dalam variabel.
int (integer) Digunakan untuk menyimpan angka dalam 2 byte (16 bit), dengan
rentang 32,768 sampai 32,767.
long (long) Digunakan ketika integer tidak mencukupi lagi. Menggunakan 4 byte
(32 bit) memori (RAM) dengan rentang -2,147,483,648 sampai
2,147,483,647.
bool (boolean) Variabel sederhana yang digunakan untuk menyimpan nilai TRUE
(benar) atau FALSE (salah). Tipe variabel ini menggunakan 1 bit RAM.
float (float) Digunakan untuk angka desimal (floating point). Menggunakan 4 byte
(32 bit) RAM dengan rentang -3.4028235E+38 sampai 3.4028235E+38.
char (character) Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65).
Hanya memakai 1 byte (8 bit) RAM.
2.7.2 Analog
Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam
domain analog sebagai berikut:
1. analogWrite(pin, value)
Menulis nilai analog ke pin. nilai yang ditulis antara 0 dan 255. Beberapa pin pada
Arduino mendukung PWM (pulse width modulation) yaitu pin 3, 5, 6, 9, 10, 11. Ini dapat
merubah pin hidup (on)atau mati (off) dengan sangat cepat sehingga membuatnya dapat
berfungsi layaknya keluaran analog. Value (nilai) pada format kode tersebut adalah angka
antara 0 ( 0% duty cycle ~ 0V) dan 255 (100% duty cycle ~ 5V).
2. analogRead(pin)
Membaca nilai dari pin analog. Nilai yang didapat adalah antara 0 (0 volt) dan 1023 (5
volt). Ketika pin analog ditetapkan sebagai INPUT, pin tersebut dapat membaca keluaran
tegangan (volt).
3. Arduino IDE
Pemrograman arduino memerlukan aplikasi IDE (Integrated Development Environment)
bawaan Arduino. Aplikasi ini berguna untuk membuat, membuka, dan mengedit source
code Arduino (Sketches). Sketch merupakan source code yang berisi logika dan algoritma
yang akan diupload ke dalam IC mikrokontroller (Arduino). Pemrograman arduino dapat
dilakukan sebagai berikut:
3.1 Jalankan Aplikasi Arduino IDE, pada pojok kanan bawah akan ada tulisan "Arduino
UNO on COMxx". Selanjutnya, silakan buka sampel led flip-flop dengan cara Klik menu
File > Examples > 1.Basic > Blink
3.2 Setting board Arduino dengan cara Klik menu Tools > Board > Arduino UNO
3.3 Pilih port yang digunakan Arduino dengan cara mengklik menu Tools > Ports > pilih
COMxx (Arduino/Genuino UNO) .
3.4 Klik tombol upload (tombol dengan panah ke kanan)
3.5 Setelah berhasil diupload, akan muncul tulisan "Done uploading" di bagian bawah. Jika
berhasil, maka LED dengan tulisan "L" pada board Arduino akan flip-flop.
4. LED Blink
Ketika belajar pemrogaman, program pertama yang harus harus dilakukan adalah
memunculkan pesan "Hello World!". Dalam belalajar mikrokontroller yang pertama kali
harus dilakukan adalah membuat lampu LED blink atau flip-flop. LED merupakan
kependekan dari Light Emiting Diode, yaitu diode yang mampu mengubah listrik menjadi
cahaya. Sebagaimana sifat diode, lampu LED memiliki kaki positif dan negatif. Sehingga
pemasangannya tidak boleh terbaik, jika dipasang terbalik maka tidak akan ada arus yang
mengalir dan LED pun tidak akan menyala.
Arduino bekerja pada tegangan 5-12 volt dengan arus yang relatif besar yang sanggup
memutuskan LED. Sehingga jika kita ingin menyambungkan LED, maka kita butuh tahanan
(resistor) untuk membatasi arus yang masuk ke LED. LED memiliki tegangan kerja yang
disebut dengan forward voltage (vf) yang mana tegangan ini adalah tegangan yang
dibutuhkan LED untuk bisa menyala dengan baik. Ukuran resistor yang bisa dipakai adalah
100Ω hingga 1KΩ (Ω dibaca ohm, satuan dari resistansi/hambatan), makin besar nilai
resistor maka nyala LED akan semakin redup. Pada Arduino, tegangan yang keluar dari pin-
pinnya adalah 0-5 volt. Sementara catu daya untuk Arduino antara 5-12 volt. Oleh sebab itu,
pemilihan resistor tergantung tegangan mana yang akan digunakan.
5. LANGKAH-LANGKAH PERCOBAAN
5.1 Buatlah rangkaian LED blink seperti pada gambar 1.3.
DUINO1
APK-TECH | techno-apk.blogspot.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET
~PB3/MOSI/OC2A
11 D1
10 LED-RED
~ PB2/SS/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7 R1
ANALOG IN
PD7/AIN1
6 220R
A0 ~ PD6/AIN0
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
5.2 Pasang kaki positif LED pin 13 dan kaki negatifnya terhubung dengan salah satu kaki
resistor.
5.3 Setelah itu, hubungkan satu kaki resistor yang lain dengan ground
5.4 Hubungkan USB Arduino ke komputer/laptop.
5.5 Jalankan Aplikasi Arduino IDE, pada pojok kanan bawah akan ada tulisan "Arduino
UNO on COMxx". Selanjutnya, silakan buka new Sketch dengan cara Klik menu File >
new
5.6 Klik tombol upload (tombol dengan panah ke kanan)
5.7 Setelah berhasil diupload, akan muncul tulisan "Done uploading" di bagian bawah. Jika
berhasil, maka LED akan flip-flop.
5.8 Ulangi langkah–langkah pemrograman arduino pada 5.1 sampai 5.12 menggunakan
dua LED dengan rangkaian pada gambar 1.3
Gambar 1.2 New Sketch arduino IDE
5.9 Setting board Arduino dengan cara Klik menu Tools > Board > Arduino UNO
5.10 Pilih port yang digunakan Arduino dengan cara mengklik menu Tools > Ports > pilih
COMxx (Arduino/Genuino UNO) .
5.11 Buatlah sketch Led Blink sebagai Berikut:
void loop() {
digitalWrite(pinLED, HIGH);
delay(500);
digitalWrite(pinLED, LOW);
delay(500);
}
DUINO1
APK-TECH | techno-apk.blogspot.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
10 D2 D1
9 LED-YELLOW LED-RED
~ PB1/OC1A
8
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
A0 ~ PD6/AIN0
6 R2 R1
PC0/ADC0 5 220R 220R
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
5.15 Ulangi langkah 5.14 menggunakan tiga LED yang bergantian menyala dengan
rangkaian pada gambar 1.4
DUINO1
APK-TECH | techno-apk.blogspot.com
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
~ PB1/OC1A
9 D3 D2 D1
8 LED-GREEN LED-YELLOW LED-RED
PB0/ICP1/CLKO
ATMEGA328P-PU
1121
DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
PC0/ADC0 5 R3 R2 R1
A1 ~ PD5/T1
PC1/ADC1 4 220R 220R 220R
A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1
PC3/ADC3 2
A4 PD2/INT0
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD
ARDUINO UNO R3
5.16 Ulangi langkah 5.15 dengan LED yang bergantian blink, LED1 blink 2 kali, kemudian
LED2 blink 4 kali dan LED3 blink 8 kali.