Anda di halaman 1dari 12

RINGKASAN MATERI ARDUINO

Gambar 1.Board Arduino UNO


1. Dasar-dasar Arduino
a. Pengertian Arduino
Arduino adalah jenis perangkat pengendali mikro berupa single board dengan lisensi
open source yang merupakan turunan dari wiring platform. Arduino dirancang untuk
memudahkan pengguna rekayasa elektronik untuk diaplikasikan dalam berbagai bidang
kehidupan. Perangkat keras Arduino menggunakan prosesor Atmel AVR (ATmega)
dengan gahasa pemrograman tersendiri yang sangat mirip dengan bahasa Pascal C.
Arduino memiliki beberapa seri dengan karakteristik masing-masing. Beberapa seri
Arduino yang paling banyak digunakan di Indonesia adalah seri Arduino UNO, Arduino
Nano, Arduino Mega, Arduino Pro-Mini.
Berbagai seri Arduino menggunakan tipe mikrokontroler ATmega yang berbeda-beda
tergantung dari spesifikasinya, sebagai contoh Arduino UNO menggunakan ATmega328
sedangkan untuk ArduinoMega 2560 menggunakan ATmega2560 dan yang lebih
canggih lagi bahkan Arduino Galileo adalah papan mikrokontroler berdasarkan Intel®
Quark SoC X1000 Application Processor. Dapat dibayangkan perkembangan teknologi
mikrokontroler yang sangat cepat dan canggih untuk membantu kita menciptakan
inovasi-inovasi yang menarik kedepannya.
Untuk memberikan gambaran sedikit lebih detail mengenai apa saja yang terdapat di
dalam sebuah microcontroller, maka pada Gambar 2 berikut ini akan diperlihatkan
contoh diagram blok sederhana dari microcontroller ATmega328 (dipakai pada Arduino
UNO) dan sedikit penjelasan fungsi bagian tersebut.
Gambar 2. Diagram blok ATmega328
Bagian-bagian dari diagram blok di atas dapat dijelaskan secara sederhana sebagai
berikut:
1. Universal Asynchronous Receiver/Transmitter (UART) adalah antar muka yang
digunakan untuk komunikasi serial seperti pada RS-232, RS-422 dan RS-485.
2. RAM dengan kapasitas 2 KB digunakan untuk penyimpanan data yang sifatnya
sementara dan penyimpanannya otomatis. Data yang disimpan akan hilang ketika
Arduino dimatikan atau direset.
3. Flash memory dengan kapasitas 32KB digunakan untuk menyimpan program yang
dijalankan oleh Arduino.
4. EEPROM dengan kapasitas 1 KB digunakan untuk penyimpanan data yang sifatnya
permanen dan penyimpanannya membutuhkan perintah melalui program. Data yang
disimpan tidak akan hilang ketika Arduino dimatikan atau direset.
5. Central Processing Unit (CPU), bagian dari microcontroller untuk menjalankan
setiap instruksi dari program.
6. Port input/output, pin-pin untuk menerima data (input) digital atau analog,
dan mengeluarkan data (output) digital atau analog.
b. Bagian-bagian Arduino
Setelah mengenal bagian-bagian utama dari microcontroller ATmega sebagai komponen
utama, selanjutnya kita akan mengenal bagian-bagian dari papan/board Arduino itu
sendiri. Setelah mengenal struktur atau bagian-bagian pada mikrokontrolernya,
selanjutnya kita akan mengulas bagian-bagian apa saja yang ada pada Arduino. Agar
lebih familiar dengan bagian-bagian Arduino yang akan dibahas, kita mengambil contoh
sebuah papan Arduino tipe USB dengan seri UNO karena seri ini sangat sering
digunakan untuk tahap belajar (dasar) dalam mengenal mikrokontroler untuk saat ini
dan banyak dijual dipasaran Indonesia.
Dengan mengetahui bagian-bagian dari papan Arduino UNO diharapkan akan
mempermudah dalam mempelajari jenis papan arduino yang lain. Adapun bagian-
bagiannya dari papan Arduino tipe USB dengan seri UNO ini secara garis besar dapat
dijelaskan secara umum dan sederhana yaitu sebagai berikut:
Gambar 3. Bagian-bagian board Arduino UNO
Berdasarkan pada Gambar 3, akan diurutkan bagian-bagian dari board Arduino beserta
fungsi-fungsinya yaitu sebagai berikut:
1. USB Soket/Power USB
USB Soket/Power USB memiliki 2 fungsi, yaitu:
a. Sebagai penyedia sumber tegangan bagi Arduino
b. Sebagai media transfer data
2. Power Soket (Barrel Jack)
Sebagai penyedia sumber tegangan bagi Arduino.
3. Voltage Regulator
Fungsi dari voltage regulator adalah untuk mengendalikan atau menurunkan
tegangan yang diberikan ke papan Arduino dan menstabilkan tegangan DC yang
digunakan oleh prosesor dan elemen-elemen lain.
4. Crystal Oscillator
Kristal (quartz crystal oscillator), jika mikrokontroler dianggap sebagai sebuah
otak, maka kristal adalah jantung-nya karena komponen ini menghasilkan detak-
detak yang dikirim kepada mikrokontroler agar melakukan sebuah operasi untuk
setiap detak-nya. Kristal ini dipilih yang berdetak 16 juta kali per detik (16MHz).
Crystal oscillator membantu Arduino dalam hal yang berhubungan dengan waktu.
Bagaimana Arduino menghitung waktu? Jawabannya adalah, dengan menggunakan
crystal oscillator. Angka yang tertulis pada bagian atas crystal 16.000H9H berarti
bahwa frekuensi dari oscillator tersebut adalah 16.000.000 Hertz atau 16 MHz.
5. Reset
Kita dapat mereset papan arduino, misalnya memulai program dari awal. Terdapat
dua cara untuk mereset Arduino Uno. Pertama, dengan menggunakan resetbutton
pada papan arduino. Kedua, dengan menambahkan reset eksternal ke pin Arduino
yang berlabel RESET. Perhatikan bahwa tombol reset ini bukan untuk menghapus
program atau mengosongkan mikrokontroler.
6. 3,3 V
Supply 3,3 Volt output.
7. 5 V
Supply 5 Volt output. Sebagaian besar komponen yang digunakan papan Arduino
bekerja dengan baik pada tegangan 3.3 volt dan 5 volt.
8. GND (Ground)
Ada beberapa pin GND pada Arduino, salah satunya dapat digunakan untuk
menghubungkan ground rangkaian.
9. Vin
Pin ini juga dapat digunakan untuk memberi daya ke papan Arduino dari sumber
daya eksternal.
10. Pin Analog
Papan Arduino Uno memiliki enam pin input analog A0 sampai A5. Pin-pin ini
dapat membaca tegangan dan sinyal yang dihasilkan oleh sensor analog seperti
sensor kelembaban atau temperatur dan mengubahnya menjadi nilai digital yang
dapat dibaca oleh mikroprosesor. Program dapat membaca nilai sebuah pin input
antara 0 – 1023, dimana hal itu mewakili nilai tegangan 0 – 5V.
11. Main Microcontroller
Setiap papan Arduino memiliki Mikrokontroler. Kita dapat menganggapnya sebagai
otak dari papan Arduino. IC (integrated circuit) utama pada Arduino sedikit berbeda
antara papan arduino yang satu dengan yang lainnya. Mikrokontroler yang sering
digunakan adalah ATMEL. Kita harus mengetahui IC apa yang dimiliki oleh suatu
papan Arduino sebelum memulai memprogram arduino melalui Arduino IDE.
Informasi tentang IC terdapat pada bagian atas IC. Untuk mengetahui kontruksi
detai dari suatu IC, kita dapat melihat lembar data dari IC yang bersangkutan.
12. Pin ICSP
Kebanyakan, ICSP adalah AVR, suatu programming header kecil untuk Arduino
yang berisi MOSI, MISO, SCK, RESET, VCC, dan GND. Hal ini sering dirujuk
sebagai SPI (Serial Peripheral Interface), yang dapat dipertimbangkan sebagai
“expansion” dari output. Sebenarnya, kita memasang perangkat output ke master
bus SPI.
13. Power LED Indicator
LED yang menunjukkan Arduino terhubung dengan sumber tegangan. LED ini akan
menyala jika Arduino dihubungkan dengan sumber tegangan. Jika LED tidak
menyala, maka terdapat sesuatu yang salah dengan sambungannya.
14. TX & RX LED Indicator
Pada papan Arduino, kita akan menemukan label: TX (transmite) dan RX (receive).
TX led akan berkedip dengan kecepatan yang berbeda saat mengirim data serial.
Kecepatan kedip tergantung pada baud rate yang digunakan oleh papan arduino. RX
berkedip selama menerima proses.
15. Pin Digital I/O (Input/Output)
Papan Arduino Uno memiliki 14 pin I/O digital, 6 pin output dapat digunakan untuk
sinyal PWM (Pulse Width Modulation). Pin I/O dapat dikonfigurasikan sebagai pin
digital input untuk membaca nilai logika (0 dan 1 atau LOW dan HIGH) atau
sebagai pin digital output untuk mengendalikan modul-modul seperti LED, relay,
dan lain-lain. Pin yang berlabel “~” dapat digunakan untuk membangkitkan PWM.
16. AREF
AREF merupakan singkatan dari AnalogReference. AREF kadanag-kadang
digunakan untuk mengatur tegangan referensi eksternal (antar 0 dan 5 Volts) sebagai
batas atas untuk pin input analog input.
17. Reset Button
Berfungsi untuk memulai ulang Arduino (tidak menghapus program).
c. ADC Arduino
ADC (Analog to Digital Converter) merupakan perangkat yang digunakan untuk
mengubah besaran fisis (umumnya tegangan) menjadi data/bilangan digital. Board
Arduino sudah dilengkapi dengan ADC ini, sehingga tidak membutuhkan tambahan
ADC eksternal untuk dapat mengubah besaran fisis menjadi data digital. ADC
digunakan ketika Arduino membaca nilai dari suatu sensor. Setiap sensor pada dasarnya
memberikan data hasil pengukuran dalam bentuk tegangan yang dikirimkan melalui pin
I/O Arduino. Tegangan tersebut harus dikonversi menjadi data digital terlebih dahulu
sebelum dapat diolah oleh Arduino. Pengonversian didasarkan pada resolusi dari ADC
itu sendiri. ADC pada Arduino memiliki resolusi 10 bit dengan data maksimal dapat
dihitung dengan persamaan 2n-1, dimana n adalah resolusi ADC sehingga diperoleh
range data sebesar 0-1023. Untuk mengubah tegangan menjadi data digital digunakan
persamaan berikut:
V¿
data digital= x 1023
V ref
dimana Vin adalah tegangan masuk dari sensor dan V ref adalah tegangan referensi yang
digunakan dalam ADC (umumnya 5 Volt pada Arduino).
2. Pengenalan Software Arduino IDE
Arduino membutuhkan perintah agar dapat menjalankan tugas sesuai tujuan. Perintah
tersebut ditulis dalam bentuk program yang diunggah ke Arduino. Program Arduino dibuat
menggunakan software yang sudah disediakan oleh developer/pengembang, yaitu Arduino
IDE. Pemrograman menggunakan software Arduino IDE ditulis menggunakan bahasa
pemrograman khusus Arduino yang sangat mirip dengan bahasa Pascal C atau biasa
disingkat menjadi bahasa C. Berikut adalah tampilan software Arduino IDE, yang
ditunjukkan dalam Gambar 4
Gambar … Tampilan software Arduino IDE
a. Menu

1. Menu File

Berisi perintah yang berkaitan dengan penyimpanan dan pengaturan lembar kerja,
seperti membuat lembar kerja baru, membuka lembar kerja yang telah disimpan,
menutup lembar kerja, mengatur format lembar kerja, dan sebagainya.
2. Menu Edit

Berisi perintah yang berkaitan dengan editing penulisan skrip program, seperti
menyalin skrip (copy&paste), memotong skrip (cut), membatalkan perubahan yang
telah dibuat (undo), dan sebagainya.

3. Menu Sketch

Berisi perintah yang berkaitan dengan isi skrip (sketch) program, seperti
memverifikasi skrip program (verify/compile), mengunggah program ke Arduino
(upload), menambahkan library ke dalam program, dan sebagainya.
4. Menu Tools
Berisi perintah yang berkaitan dengan pengaturan (setting) board Arduino dan
fasilitas tambahan seperti serial monitor dan serial plotter.
5. Menu Help

Berisi informasi-informasi ataupun link yang dapat dituju ketika mendapatkan


permasalahan yang tidak dapat diatasi.
b. Toolbar

1. Verify

Berfungsi untuk memverifikasi skrip program yang telah dibuat. Hasil


verifikasi akan menunjukkan apakah terdapat kesalahan dalam penulisan skrip
program tersebut. Jik terjadi kesalahan penulisan skrip program, sistem secara
otomatis akan menunjukkan dimana letak kesalahan yang terjadi.
2. Upload

Berfungsi untuk mengunggah skrip program yang telah dibuat ke board


Arduino. Skrip program yang diunggah harus melewati proses verifikasi terlebih
dahulu. Jika masih terdapat kesalahan dalam penulisan skrip program, maka skrip
program tersebut tidak akan diunggah.
3. New
Berfungsi untuk membuat lembar kerja baru.
4. Open

Berfungsi untuk membuka lembar kerja yang telah disimpan.


5. Save
Berfungsi untuk menyimpan lembar kerja yang telah dibuat.
6. Serial Monitor
Berfungsi untuk menampilkan serial monitor.
c. Sketch Editor

Sketch editor merupakan tempat menuliskan skrip program yang akan dibuat.
d. Debug Window

Berisi informasi-informasi yang berkaitan dengan deskripsi skrip program yang sedang
dibuat. Hasil verifikasi program ditampilkan pada debug window ini.
3. Dasar-Dasar Pemrograman Arduino
Skrip program Arduino ditulis melalui software Arduino IDE. Penulisan program tersebut
dapat dibagi menjadi beberapa bagian, tergantung kebutuhan dan keinginan pembuat
program. Secara umum, penulisan program terbagi menjadi dua bagian sebagai berikut:
a. Setup Function
Setup function atau fungsi setup merupakan bagian skrip program yang akan dijalankan
pertama kali oleh mikrokontroler tanpa pengulangan. Fungsi setup pada umumnya
berisi kode perintah dasar seperti penentuan fungsi pin Arduino ataupun pengaturan
awal dari suatu perintah yang akan dijalankan pada fungsi loop.
b. Loop Function
Loop function atau fungsi loop merupakan bagian skrip program yang dijalankan
setelah fungsi setup. Fungsi loop berisikan perintah utama yang akan dikerjakan oleh
Arduino secara berulang.
Penulisan skrip program Arduino dilakukan dengan berbagai macam sintaks yang telah
disediakan oleh pengembang. Sintaks-sintaks tersebut dapat dipelajari melalui berbagai
media seperti buku dan media online atau langsung menuju website resmi pengembang yaitu
arduino.cc yang menyediakan informasi sintaks pemrograman Arduino secara lengkap dan
jelas. Berikut adalah beberapa sintaks dasar dalam pemrograman Arduino:
a. Sintaks Pendeklarasian Variabel
Variabel dibutuhkan dalam pemrograman sebagai identitas dari suatu nilai (menyimpan
nilai dalam suatu nama). Setiap variabel memiliki tipe data masing-masing dengan nilai
yang dapat diinisialisasikan secara manual (variabel tetap) ataupun otomatis (variabel
terkontrol). Pendeklarasian variabel biasa dituliskan sebelum fungsi setup. Akan tetapi,
variabel juga dapat dideklarasikan dalam suatu fungsi bergantung kebutuhannya. Berikut
adalah beberapa contoh sintaks pendeklarasian variabel beserta keterangannya.
Sintak Contoh Penggunaan
Keterangan
s
int Integer, digunakan untuk mendeklarasikan int X=100;
tipe data bilangan bulat dengan kapasitas
penyimpanan data sebesar 2 bytes (16 bits).
long Long, digunakan untuk mendeklarasikan tipe long x=1000000;
data bilangan bulat yang nilainya lenih besar
dari integer dengan kapasitas penyimpanan
sebesar 4 bytes (32 bits).
boolea Boolean, digunakan untuk menyimpan nilai boolean x=true;
n TRUE atau FALSE dalam suatu variabel
dengan kapasitas penyimpanan 1 bit saja.
float Float, digunakan untuk mendeklarasikan tipe float x=1.2;
data bilangan decimal dengan kapasitas
penyimpanan sebesat 4 bytes (32 bits).
char Char, digunakan untuk menyimpaan karakter char x=’A’;
berdasarkan kode ASCII (contoh: ‘A’ = 65)
dalam suatu variabel dengan kapasitas
penyimpanan sebesar 1 byte (8 bits).
string String, digunakan untuk menyimpan teks string x=”abc”;
dalam suatu variabel.
b. Sintaks Pengaturan Mode Pin
Sintaks ini digunakan untuk mengatur pin Arduino akan digunakan sebagai input atau
output. Jika diatur sebagai input, Arduino akan membaca nilai yang diterima oleh pin
tersebut (biasanya berupa tegangan yang dikonversi menjadi data analog atau digital).
Jika diatur sebagai output, Arduino akan mengeluarkan nilai dari pin tersebut (biasanya
berupa tegangan yang dikonversi menjadi data analog atau digital). Pengaturan tersebut
ditulis dengan sintaks pinMode(pin,FUNGSI); Contoh penggunaan:

pinMode(13,INPUT);
pinMode(12,OUTPUT);
c. Sintaks Pembacaan Nilai pada Pin
Arduino membaca nilai dari sensor melalui pin I/O yang dimilikinya. Perintah
pembacaan nilai tersebut dapat dibagi menjadi dua, yaitu pembacaan nilai analog dan
digital. Jika sensor yang digunakan adalah sensor digital (memiliki output low atau high
saja) maka digunakan sintaks digitalRead(pin); dan jika sensor yang digunakan adalah
sensor analog (memiliki output tegangan pada range 0-5 Volt) maka digunakan sintaks
analogRead(pin);. Contoh penggunaan:

X = digitalRead(13);
Y = analogRead(12);
d. Sintaks Pemberian Nilai pada Pin
Sama halnya dengan pembacaan nilai, pada pemberian nilai juga berlaku 2 perintah,
yaitu digitalWrite(pin,VALUE);untuk nilai digital (output low atau high saja) dan
analogWrite(pin,VALUE); untuk nilai analog (output tegangan 0-5 Volt). Untuk data
analog, range nilai yang dikonversi menjadi tegangan sebesar 0-255 (resolusi 8 bit).
Khusus untuk pemberian nilai analog hanya dapat dilakukan menggunakan pin yang
dilengkapi dengan PWM (biasanya ditandai dengan “~” pada pin tersebut). Contoh
penggunaan:

digitalWrite(13,HIGH);
analogWrite(11,125);
e. Sintaks Komunikasi Serial
Komunikasi Arduino dengan perangkat lain seperti sensor atau media antarmuka biasa
dilakukan secara serial. Sintaks Serial.begin(VALUE)harus dituliskan pada fungsi setup
jika ingin melakukan komunikasi serial dengan Arduino. Penerimaan data oleh Arduino
dari media antarmuka atau perangkat lain dilakukan dengan menuliskan sintaks
Serial.Read(VALUE)sedangkan untuk pengiriman data dapat dilakukan dengan sintaks
Serial.print(VALUE). Contoh penggunaan:

void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print(“abc”);
}

f. Logika IF & Else


Logika atau pengandaian merupakan hal yang wajib dipahami dalam pemrograman.
Logika digunakan untuk menentukan perintah yang akan dilakukan pada setiap kondisi
yang berbeda-beda. Salah satu fungsi logika yang paling sering digunakan adalah if
&else. Logika if memiliki arti jika yang menyatakan kondisi yang akan menjadi sebab
dari suatu perintah sedangkan else berisi perintah lain yang akan dijalankan ketika
kondisi yang ditentukan oleh if tidak terpenuhi. Contoh penggunaan:

if(x > 10) {


Serial.print(“YES”);
}
else {
Serial.print(“NO”);
}

g. Perulangan For
Fungsi For digunakan untuk melakukan perulangan berdasarkan range yang telah
ditentukan. Contoh penggunaan:

For(int i=0; i<=10; i++) {


Serial.print(i);
}
h. Karakter Khusus
Pada pemrograman Arduino UNO terdapat beberapa karakter yang memiliki kegunaan
khusus, diantaranya adalah:
1. Tanda Titik Koma
Tanda titik koma wajib dituliskan pada akhir penulisan sebuah perintah, kecuali
fungsi khusus. Hasil verifikasi program akan menunjukkan hasil error jika ada satu
saja tanda titik koma yang terlewat.
2. Tanda Kurung Kurawal
Tanda kurung kurawal digunakan sebagai penanda suatu skrip program termasuk ke
dalam suatu fungsi tertentu. Misalkan:

void loop() {
digitalWrite(13,HIGH);
}
Perintah digitalWrite merupakan bagian dari fungsi loop.
3. Tanda Petik Tunggal
Tanda petik tunggal digunakan sebagai penanda karakter.
4. Tanda Petik Ganda
Tanda petik ganda digunakan sebagai penanda string atau teks.

Anda mungkin juga menyukai