Mikrokontroler Arduino Kontroler lengan robot menggunakan motor servo dan motor stepper dengan masukan 3 AXIS.

5 BAB II DASAR TEORI

2.1. Mikrokontroler Arduino

Mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus[2]. Sederhananya, cara kerja mikrokontroler sebenarnya hanya membaca dan menulis data. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik yang menekankan efisiensi dan efektifitas biaya. Dengan kata lain, mikrokontroler adalah alat yang mengerjakan intruksi-intruksi yang diberikan. Artinya, bagian terpenting dan utama dari suatu sistem terkomputerisasi adalah program itu sendiri yang dibuat oleh seorang programer.Program ini mengintruksikan komputer untuk melakukan tugas yang lebih kompleks sesuai dengan yang diinginkan. Mikrokontroler digunakan untuk mengolah perintah berupa program yang telah dibuat sebelumnya dari sebuah masukan input menjadi keluaran output yang diingkan. Mikrokontroler saat ini mengalami perkembanagan yang cukup pesat baik dari bentuk, fungsi, dan kemampuannya sebagai kontroler.Perintah-perintah yang diberikan pada mikrokontroler untuk mengontrol sebuah sistem ditulis dalam Bahasa pemograman.Bahasa pemograman yang sering digunakan pada mikrokontroler antara lain Bahasa C, C++, basic, dan assembly .Penggunaan Bahasa pemograman disesuaikan dengan mikrokontroler yang digunakan. Arduino adalah sebuah platform elektronik yang open source.Nama Arduino tidak hanya digunakan untuk menamai board rangkaian saja, tetapi juga untuk menamai Bahasa dan software pemogramannya, serta lingkungan pemogramannya atau yang dikenal dengan sebutan Integrated Development Environment IDE.Arduino memiliki beberapa keunggulan dibandingkan dengan platform elektronik lainnya[3]. Beberapa keunggulan tersebut antara lain: 1. Modul Arduino adalah sebuah platform elektronik yang open source yang berbasis pada kemudahan dan fleksibilitas penggunaan hardware dan software. Artinya pembaca dapat mengunduh software dan gambar rangkaian Arduino tanpa harus membayar kepada pembuat Arduino. 2. Integrated Development Environment IDE Arduino merupakan multiplatform yang dapat dijalankan di berbagai sistem operasi seperti Windows, Macintosh, dan Linux. 3. Modul Arduino mudah digunakan sebagai sebuah platform komputasi fisik yang sederhana serta menerapkan bahasa pemograman processing. 4. Arduino merupakan platform interraktif karena dapat mengambil masukan dari berbagai tombola tau sensor, mampu mengendalikan berbagai lampu, motor, dan output fisik lainnya. 5. Modul Arduino dapat berdiri sendiri, atau dapat melakukan komunikasi dengan software yang berjalan dikomputer seperti Flash, Processing, dan MaxMSP. 6. Biaya yang dibutuhkan untuk membeli modul Arduino cukup murah, sehingga tidak terlalu menakutkan untuk membuat kesalahan. 7. Proyek Arduino ini dikembangkan dalam dunia pendidikan, sehingga bagi pemula akan lebih cepat dan mudah untuk mempelajarinya. 8. Memiliki begitu banyak pengguna dan komunitas di internet yang dapat membantu setiap kesulitan yang dihadapi. Dalam penelitian yang dikerjakan oleh penulis, akan digunakan salah satu produk Arduino yang dikenal dengan nama Arduino Uno R3. Gambar 2.1 merupakan tampilan Arduino Uno R3. Gambar 2.1 Tampilan Arduino Uno R3 Arduino Uno R3 seperti gambar 2.1.adalah board berbasis mikrokontroler pada ATMega 328. Board Arduino Uno R3 seperti yang ditunjukkan Gambar 2.2. memiliki 14 digital input output pin dimana 6 pin dapat digunakan sebagai output PWM, 6 inputanalog, 16 MHz osilator Kristal, koneksi USB, jack listrik dan tombol reset. Pin – pin ini berisi semua yang diperluhkan untuk mendukung mikrokontroler, hanya terhubung ke computer dengan kabel USB atau sumber tekanan bias didapat dari adaptor AC – DC atau baterai untuk menngunakannya Arduino, Inc, 2009[4]. Setiap digital pin pada board Arduino Uno R3 beroperasi pada tegangan 5 volt. Pin – pin digital tersebut juga memungkinkan dapat mengeluarkan atau menerima arus maksimal sebesar 40 mA dan memiliki internal pull-up resistor yang terputus secara default antara 20 – 50 Kohm[5]. Spesifikasi Arduino Uno R3 ditunjukan pada alokasi penempatan pin – pin Arduino Uno R3 pada tabel 2.1. Gambar 2.2 Alokasi Penempatan Pin Arduino Uno R3 Arduino Uno R3 seperti ditunjukan Gambar 2.2.memiliki 6 input analog diberi label A0 sampai A5, masing-masing menyediakan 10-bit resolusi yaitu 1024 nilai yang berbeda. Secara default sistem mengukur dari ground sampai 5 volt, meskipun mungkin untuk mengubah ujung atas rentang menggunakan pin AREF dan fungsi analogReference. Selain itu, beberapa pin memiliki fungsi khusus : a. TWI : A4 atau SDA pin dan A5 atau SCL pin. Mendukung komunikasi TWI menggunakan wire library. b. AREF : Referensi tegangan untuk input analog. Digunakan dengan analogReference . c. RESET : memberikan logika LOW untuk mereset mikrokontroler[5]. Tabel 2.1. Keterangan Pin pada Gambar 2.2 No. Parameter Keterangan 1 ATmega 328 IC mikrokontroler yang digunakan pada Arduino Uno R3. IC ATmega 328 memiliki flash memory 32 KB dengan 0.5 KB digunakan untuk bootloader. ATmega 328 juga memiliki 2 KB SRAM dan 1 KB EEPROM yang dapat ditulis dan dibaca dengan EEPROM library. 2 Jack USB Untuk komunikasi mikrokontroler dengan PC. 3 Jack Adaptor Masukan power eksternal bila Arduino bekerja mandiri tanpa komunikasi dengan PC melalui kabel serial USB. 4 Tombol Reset Tombol reset internal yang digunakan untuk mereset modul Arduino. 5 SDA dan SCL Komunikasi Two Wire Interface TWI atau Inter Integrated Circuit 12C dengan menggunakan Wire library. 6 GND dan AREF  GND = Pin ground dari regulator tegangan board Arduino.  AREF = Tegangan Referensi untuk input analog. 7 Pin Digital Pin yang digunakan untuk menerima input digital dan memberi output berbentuk digital 0 dan 1 atau low dan high. 8 Pin Serial Digunakan untuk menerima dan mengirimkan data serial TTL Receiver Rx, Transmitter Tx. Pin 0 dan 1 sudah terhubung kepada pin serial USB to TTL sesuai dengan pin ATmega. 9 Pin Power  Vin = Masukan tegangan input bagi Arduino ketika menggunakan sumber daya ekstenal.  5 V = Sumber tegangan yang dihasilkan regulator internal board Arduino .  3.3 V = Sumber tegangan yang dihasilkan regulator internal board Arduino. Arus maksimal pada pin ini adalah 50 Ma..  GND = Pin ground dari regulator tegangan board Arduino.  IOREF = Tegangan Referensi. 10 Pin Analog In Menerima input dari perangkat analog lainnya. Arduino Uno R3 berbeda dengan semua board sebelimnya karena Arduino Uno R3 ini tidak menggunakan chip driver FTDI USB-to-serial. Melainkan menggunakan fitur dari ATMega 16U2 yang deprogram sebagai konverter USB-to-serial [6]. Board Arduino Uno memiliki fitur – fitur baru seperti pada Tabel 2.1.yaitu : a. Pin out : menambahkan SDA dan SCL pin yang dekat ke pin AREF dan dua pin baru lainnya ditempatkan dekat ke pin RESET, dengan IO REF yang memungkinkan sebagai buffer untuk beradaptasi dengan tegangan yang disediakan dari board sistem. Perkembangannya, sistem akan lebih kompatibel dengan prosesor yang menggunakan AVR, yang beroperasi dengan 5V dan dengan Arduino karena beroperasi dengan 3,3V. Yang kedua adalah pin yang tidak terhubung, yang disediakan untuk tujuan pengembangannya. b. Sirkuit reset. c. ATMega 16U2 ganti 8U yang digunakan sebagai konventer USB-to-serial. Board Arduino Uno R3 dapat beroperasi pada pasokan daya dari 6 – 20 volt. Jika diberikan dengan kurang dari 7V, bagaimanapun pin 5V dapat menyuplai kurang dari 5 volt dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator bias panas dan merusak board . Rentang yang dianjurkan adalah 7V - 12V. Selain itu, beberapa pin memiliki fungsi khusus : a. Serial : 0 RX dan 1 TX. Digunakan untuk menerima RX dan mengirim TX data TTL serial. Pin ini terhubung ke pin yang sesuai dari chip ATMega 8U2 USB-to-serial TTL. b. Eksternal Interupsi : 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interupsi pada nilai yang rendah, tepi naik atau jauh, atau perubahan nilai. Lihat attchInterrupt fungsi untuk rincian. c. PWM : 3,5,6,9,10, dan 11. Menyediakan 8-bit output PWM dengan fungsi analogWrite . d. SPI : 10 SS, 11MOSI, 12 MISO, 13 SCK. Pin ini mendukung komunikasi SPI menggunakan library SPI. SPI Serial Peripherial Interface adalah sebuah sinkronisasi serial data protocol yang digunakan oleh mikrokontroler untuk melakukan komunikasi dengan satu atau lebih peripheral device secara cepat berjarak pendek. SPI dapat juga digunakan untuk melakukan komunikasi antara dua mikrokontroler. e. LED : 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin adalah nilai TINGGI, LED menyala, ketika pin adalah RENDAH, LED off. Komunikasi Arduino Uno R3 memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya.ATmega menyediakan UART TTL 5V komunikasi serial , yang tersedia di pin digital 0 RX dan pin digital 1 TX.Sebuah ATmega16U2 pada board ini komunikasi serial melalui USB dan muncul sebagai com port virtual untuk perangkat lunak pada computer.Firmware `16U2 menggunakan USB driver standar COM, dan tidak ada driver eksternal yang diperlukan. Namun, pada Windows, file infdiperlukan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang akan dikirim ke board Arduino. RX dan TX di board LED akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke computer tetapi tidak untuk komunikasi serial pada pin 0 dan 1. Fungsi ini digunakan untuk melakukan komunikasi interface pada sistem. ATmega328 juga mendukung komunikasi TWI dan SPI [6]. Setiap IC mikrokontroler memiliki EEPROM yang merupakan memori yang nilainya tersimpan ketika IC mikrokontroler non aktifkan seperti hard driver kecil.Sistem penyimpanan ini memungkinkan untuk melakukan pembacaan atau menulis dalam satuan byte.Setiap IC mikrokontroler memiliki kapasitas EEPROM yang berbeda.Pada IC mikrokontroler ATmega 328 yang terdapat pada Arduino Uno R3 memiliki EEPROM sebesar 1024 byte [5].

2.2. Software Arduino