• Tidak ada hasil yang ditemukan

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

2.2 Landasan Teori

2.2.8 Arduino Uno

Arduino adalah salah satu nama keluarga board mikrokontroler yang awalnya dibuat oleh perusahaan Smart Project. Salah satu tokoh penciptanya adalah Massimo Banzi. Arduino merupakan sebuah platform dari physical computing yang bersifat open source sehingga boleh dibuat oleh siapa saja. Arduino bukan hanya sekedar alat pengembangan tetapi merupakan kombinasi dari hardware, bahasa pemograman dan Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah software yang berguna untuk menulis program, meng-compile menjadi kode biner dan meng-upload ke dalam memori mikrokontroler. Selain itu banyak juga modul-modul pendukung untuk Arduino seperti sensor, tampilan, penggerak dan lain sebagainya. Kelebihan Arduino adalah:

1. Software Arduino dapat dijalankan pada sistem operasi Windows, Macintosh OS dan Linux.

2. Sangat mudah untuk dipelajari dan digunakan oleh pengguna. Arduino menggunakan bahasa pemrograman processing untuk menulis program. Processing adalah bahasa pemrograman tingkat tinggi yang hampir mirip dengan C++ dan Java.

3. Sistem yang terbuka baik dari sisi hardware maupun sisi software. Diagram rangkaian elektronik dapat dengan mudah diketahui dan dapat di-download secara gratis.

Secara umum Arduino terdiri dari 2 bagian yaitu:

1. Hardware utamanya adalah board input/output (I/O) beserta mikrokontroler ATmega328.

2. Software adalah software Arduino yang meliputi IDE untuk menulis program, driver untuk koneksi dengan komputer serta contoh program dan library untuk pengembangan program.

Arduino UNO adalah sebuah board mikrokontroler menggunakan ATmega328. Arduino UNO mempunyai 14 pin digital input/output 6 di antaranya dapat digunakan sebagai output Power Width Modulation (PWM), 6 input analog, sebuah osilator kristal 16 MHz, sebuah koneksi (Universal Serial Bus) USB, sebuah power jack, sebuah in Circuit Serial Programming (ICSP) header, dan sebuah

Aldy Gilang Dwi Maha Putra, 131331037 17 Laporan Tugas Akhir Tahun 2016

tombol reset. Arduino UNO dapat memuat semua yang dibutuhkan untuk menunjang mikrokontroler serta mudah menghubungkannya ke sebuah komputer dengan sebuah kabel USB atau dengan sebuah adaptor Alternate Current to Direct Current (AC ke DC).

Gambar II.10 Arduino Uno

(Sumber: http://langitrobotika.com, 2016)

Penjelasan spesfikasi Arduino UNO adalah sebagai berikut:

1. Arduino UNO dapat diberi daya melalui koneksi USB atau dengan sebuah power supply eksternal. Sumber daya dapat dipilih secara otomatis. Supply daya eksternal dapat diperoleh dari sebuah adaptor AC ke DC atau baterai. Adaptor dapat dihubungkan dengan mencolokkan sebuah center-positive plug yang panjangnya 2,1mm ke power jack dari board. Kabel lead dari sebuah baterai dapat dimasukkan dalam header pin Ground (Gnd) dan pin Vin dari konektor POWER.

2. Board Arduino UNO dapat beroperasi pada sebuah supply eksternal 6 sampai 20V. Jika di-supply dengan yang lebih kecil dari 7V, maka pin 5V mungkin men-supply lebih kecil dari 5V dan board Arduino UNO menjadi tidak stabil. Jika menggunakan supply yang lebih dari besar 12V, voltage regulator bisa kelebihan panas dan membahayakan board Arduino UNO. Range yang direkomendasikan adalah 7-12V. Pin daya pada Arduino adalah sebagai berikut:

a. VIN. Tegangan input ke Arduino board ketika board sedang menggunakan sumber supply eksternal.

Aldy Gilang Dwi Maha Putra, 131331037 18 Laporan Tugas Akhir Tahun 2016

b. 5V. Pin output ini merupakan tegangan 5V yang diatur dari regulator pada board. Board dapat di-supply dengan salah satu supply dari DC power jack 12V), USB connector (5V), atau pin VIN dari board (7-12V). Sebuah supply 3,3V dihasilkan oleh regulator pada board. Arus maksimum yang dapat dilalui adalah 50mA.

c. GND. Pin ground.

3. ATmega328 mempunyai memori 32 KB (dengan 0,5KB digunakan untuk bootloader). ATmega328 juga mempunyai 2KB SRAM dan 1 KB EEPROM (yang dapat dibaca dan ditulis (RW/read and written).

4. Setiap 14 pin digital pada Arduino UNO dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi-fungsi tersebut beroperasi di tegangan 5V. Selain itu pin-pin tersebut terdapat beberapa pin yang mempunyai fungsi-fungsi spesial:

a. Serial: pin 0 (RX) dan pin 1 (TX).

Pin ini digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai dari chip Serial ATmega16U2 USB-ke-TTL. b. External Interrupts: pin 2 dan pin 3.

Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt (selaan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar, atau suatu perubahan nilai. Fungsi ini dapat digunakan dengan perintah attachInterrupt().

c. Power Width Modulation(PWM): pin 3, pin 5, pin 6, pin 9, pin 10, dan pin 11. Pin ini memberikan 8-bit PWM output dengan fungsi analogWrite().

d. SPI: pin 10 (SS), pin 11 (MOSI), pin 12 (MISO), pin 13 (SCK). Pin-pin ini men-support komunikasi SPI dengan menggunakan SPI library. e. Light Emiting Diode (LED): pin 13. Pada pin 13 terdapat sebuah LED.

Apabila pin bernilai HIGH maka LED akan menyala, namun ketika pin bernilai LOW maka LED akan mati.

f. Arduino UNO mempunyai 6 input analog yang diberi label A0 sampai A5. Setiap pin memberikan 10 bit resolusi (contohnya 1024 nilai yang

Aldy Gilang Dwi Maha Putra, 131331037 19 Laporan Tugas Akhir Tahun 2016

berbeda). Secara default, 6 input analog tersebut mengukur dari ground sampai tegangan 5 Volt. Untuk mengganti batas atas dari range-nya dapat menggunakan pin AREF dengan fungsi analogReference(). Terdapat sepasang pin lainnya pada board Arduino:

1. AREF. Referensi tegangan untuk input analog. Pin ini dapat digunakan dengan fungsi analogReference().

2. Reset. Pin ini memberikan tegangan LOW untuk me-reset mikrokontroler. Pin ini secara khusus digunakan untuk menambahkan sebuah tombol reset untuk melindungi sesuatu yang menghalangi kinerja board.

g. Komunikasi Arduino UNO

Arduino UNO mempunyai sejumlah fasilitas untuk komunikasi dengan sebuah komputer, Arduino lainnya atau mikrokontroler lainnya. ATmega328 menyediakan serial komunikasi UART TTL (5V), yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah ATmega16U2 pada channel board digunakan untuk serial komunikasi melalui USB dan muncul sebagai sebuah port virtual ke software pada komputer. Firmware16U2 menggunakan driver USB COM standar.

Software Arduino mencakup sebuah serial monitor yang

memungkinkan data teks terkirim ke dan dari board Arduino. LED RX dan TX pada board akan menyala ketika data sedang di-transmit melalui chip USB-to-serial dan koneksi USB pada komputer (tapi tidak untuk komunikasi serial pada pin 0 dan 1).

5. Programming

Arduino UNO dapat diprogram dengan software Arduino. ATmega328 pada Arduino UNO hadir dengan sebuah bootloader yang memungkinkan pengguna meng-upload kode baru ke ATmega328 tanpa menggunakan pemrogram hardware eksternal. ATmega328 berkomunikasi menggunakan protokol STK500.

6. Struktur

Setiap program Arduino (biasa disebut sketch) mempunyai dua buah fungsi yang harus ada.

Aldy Gilang Dwi Maha Putra, 131331037 20 Laporan Tugas Akhir Tahun 2016

A. void setup( ) { }

Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya.

B. void loop( ) { }

Fungsi ini akan dijalankan setelah setup (fungsi void setup) selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan.

7. Syntax

Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan. A. // (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 diketikkan pada bagian belakangnya akan secara otomatis diabaikan oleh program.

B. /* */ (komentar banyak baris)

Jika ada banyak catatan maka hal tersebut dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

C. { } (kurung kurawal)

Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

D. ; (titik koma)

Setiap baris kode harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan).

E. Variabel

1. int (Integer)

Digunakan untuk menyimpan angka dalam 2 byte (16 bit). Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767.

2. long (Long Integer)

Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte (32 bit) dari memori (RAM).

Aldy Gilang Dwi Maha Putra, 131331037 21 Laporan Tugas Akhir Tahun 2016

3. boolean (Boolean)

Variabel sederhana yang digunakan untuk menyimpan nilai TRUE (benar) atau FALSE (salah). Sangat berguna karena hanya menggunakan 1 bit dari RAM.

4. float (Float)

Digunakan untuk angka desimal (floating point). Memakai 4 byte

(32 bit) dari RAM dan mempunyai rentang dari

3.4028235E+38 dan 3.4028235E+38. 5. char (Character)

Menyimpan 1 karakter menggunakan kode ASCII (misalnya ‘A’ = 65). Hanya memakai 1 byte (8 bit) dari RAM.

F. Operator Matematika

Operator yang digunakan untuk memanipulasi angka. 1. = (sama dengan)

Membuat sesuatu menjadi sama dengan nilai yang lain. Misalnya: x = 10 * 2, x sekarang sama dengan 20.

2. % (persen)

Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2). 3. + (tambah) Operasi penjumlahan. 4. – (kurang) Operasi pengurangan. 5. * (bintang) Operasi perkalian. 6. / (slash) Operasi pembagian. G. Operator Pembanding

Digunakan untuk membandingkan nilai logika. 1. = =

Sama dengan (misalnya: 12 = = 10 adalah FALSE (salah) atau 12 = = 12 adalah TRUE (benar).

Aldy Gilang Dwi Maha Putra, 131331037 22 Laporan Tugas Akhir Tahun 2016

2. !=

Tidak sama dengan (misalnya: 12! = 10 adalah TRUE (benar) atau 12! = 12 adalah FALSE (salah).

3. <

Lebih kecil dari (misalnya: 12 < 10 adalah FALSE (salah) atau 12 < 12 adalah FALSE (salah) atau 12 < 14 adalah TRUE (benar). 4. >

Lebih besar dari (misalnya: 12 > 10 adalah TRUE (benar) atau 12 > 12 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah). H. Struktur Pengaturan

Berikut ini adalah elemen dasar pengaturan: 1. if…else

Dengan format seperti berikut ini: if (kondisi) { }

else if (kondisi) { } else { }

kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika tidak (FALSE) maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.

2. for

Dengan format seperti berikut ini :

for (int i = 0; i < #pengulangan; i++) { }

Digunakan bila pengulangan kode di dalam kurung kurawal beberapa kali, ganti #pengulangan dengan jumlah pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i–.

8. Digital

A. pinMode (pin, mode)

Digunakan untuk menetapkan mode dari suatu pin, pin adalah nomor pin yang akan digunakan dari 0-19 (pin analog 0-5 adalah 14-19). Mode yang bisa digunakan adalah INPUT atau OUTPUT.

Aldy Gilang Dwi Maha Putra, 131331037 23 Laporan Tugas Akhir Tahun 2016

B. digitalWrite (pin, value)

Ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5V) atau LOW (diturunkan menjadi ground).

C. digitalRead(pin)

Ketika sebuah pin ditetapkan sebagai INPUT maka menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH (ditarik menjadi 5V) atau LOW (diturunkan menjadi ground).

9. Analog

Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi di dalam alam analog (menggunakan trik). Berikut ini cara untuk menghadapi hal yang bukan digital.

A. analogWrite (pin, value)

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).

B. analogRead(pin)

Ketika pin analog ditetapkan sebagai INPUT dapat dibaca keluaran voltage-nya. Keluarannya berupa angka antara 0 (untuk 0V) dan 1024 (untuk 5V).

Dokumen terkait