# Arduino

| Arduino |
| --- |
|  |
| Contoh program |
| Pengembang | Arduino Software |
| Templat:Kotak info perangkat lunak/simple |
| Ditulis dalam | C++, Java |
| Sistem operasi | Cross-platform |
| Jenis | Integrated Development Environment |
| Lisensi | LGPL atau GPL |
| Situs web | arduino.cc |

Arduino dibandingkan dengan tangan manusia
**Arduino** adalah pengendali mikro dengan papan tunggal yang digunakan dalam proyek perangkat lunak sumber terbuka. Fungsi utama Arduino adalah memudahkan penggunaan elektronik dalam berbagai bidang. Arduino memiliki perangkat keras yang menggunakan prosesor Atmel AVR. Sementara perangkat lunak yang dimiliki oleh Arduino terdiri dari beberapa alat yakni lingkungan pengembangan terpadu (IDE), penyunting teks, kompilator, *Serial Monitor*, dan *Serial ISP Programmer*.

Arduino merupakan senarai perangkat keras terbuka yang ditujukan kepada siapa saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan perangkat keras dan perangkat lunak yang fleksibel dan mudah digunakan. Pada aplikasi Arduino, Mikrokontroler diprogram menggunakan bahasa pemrograman C atau C++, dengan pustaka khas arduino. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema perangkat keras arduino dan membangunnya.

Arduino menggunakan keluarga pengendali mikro ATMega yang dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat *clone* arduino dengan menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level perangkat keras. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk mem-bypass bootloader dan menggunakan pengunduh untuk memprogram pengendali mikro secara langsung melalui port ISP.

## Sejarah Singkat

Semuanya berawal dari sebuah tesis yang dibuat oleh Hernando Barragan, di Institute Ivrea, Italia pada tahun 2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama *Arduin of Ivrea*. Lalu diganti nama menjadi Arduino yang dalam bahasa Italia berarti teman yang berani.

Tujuan awal dibuat Arduino adalah untuk membuat perangkat mudah dan murah, dari perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan membuat perangkat desain dan interaksi.

Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino ini, yaitu:

1. Harga terjangkau
2. Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Mac, dan sebagainya.
3. Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang teknik saja.
4. Open Source, perangkat keras maupun perangkat lunak.

Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat. Sehingga banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino, sedangkan untuk lokal ada SENTSOR Uno Plus yang dibuat oleh SENTSOR Electronics Indonesia, CipaDuino yang dibuat oleh SKIR70, MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya adalah Admin Kelas Robot.

Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis Arduino. Mulai dari yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, berbentuk Mini PC. Hingga saat ini sudah ada ratusan ribu Arduino yang digunakan di dunia sejak tahun 2011. Arduino juga sudah dipakai oleh perusahaan-perusahaan besar, contohnya Google menggunakan Arduino untuk Accessory Development Kit, NASA memakai Arduino untuk prototypin, ada lagi Large Hadron Colider memakai Arduino dalam beberapa hal untuk pengumpulan data.

Salah satu komponen dari arduino (yakni *text-editor*) dibangun menggunakan Java. Hal ini mengakibatkan banyak yang mengira bahasa arduino adalah bahasa baru turunan dari Java. Arduino sebenarnya menggunakan bahasa C / C++, dengan *compiler* avr-gcc yang sama dengan yang dipakai pada avr-studio. Aturan proses kompilasi sudah disediakan oleh aplikasi Arduino, di mana berkas kode utama dengan ekstensi *ino* akan hubungkan dengan berkas-berkas lain. Telah disediakan pula rutin utama C++ (fungsi *main*) yang memanggil fungsi *setup* dan *loop* dari file kode utama berekstensi *ino*. Kombinasi *pustaka* Arduino dengan aturan kompilasi (*Makefile avr-gcc*) ini memudahkan siapa saja menggunakan Arduino tanpa harus faham tentang C++. Sehingga orang awam pun bisa menjadi seniman digital, bisa mempelajari Arduino dengan mudahnya. Plugin yang disediakan pada perangkat lunak Arduino memungkinkan komunitas untuk menambahkan bermacam compiler lain selain avr-gcc, bahkan dukungan untuk prosesor lain selain Atmel AVR.

## Jenis

### Arduino Uno

Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula sangat disarankan untuk menggunakan Arduino Uno. Banyak sekali referensi yang membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan ATMEGA328 sebagai pengendali mikronya, memiliki 14 pin I/O digital dan 6 pin input analog. Untuk pemrograman cukup menggunakan koneksi USB type A to To type B. Sama seperti yang digunakan pada USB printer.

### Arduino Due

Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12 pin input analog. Untuk pemrogramannya menggunakan Micro USB, terdapat pada beberapa handphone.

### Arduino Mega

Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk pemrogramannya. Namun, Arduino Mega, menggunakan Chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno.

### Arduino Leonardo

Bisa dibilang Leonardo adalah saudara kembar dari Uno. Namun banyaknya pin I/O digital, pin input Analog, dan input output PWM berbeda dari Arduino Uno. Hal ini dikarenakan Arduino Leonardo menggunakan pengendali mikro ATmega32u4.

ATMega32u4 ini telah memiliki fitur komunikasi USB yang terintegrasi, sehingga pada Arduino Leonardo tidak memerlukan tambahan pengendali mikro pengatur komunikasi USB ke TTL Serial seperti yang terdapat pada board Arduino Uno yang menggunakan tambahan ATMEGA16U2 disamping ATMEGA328P. Dengan ATMega32u4, memungkinkan Arduino Leonardo untuk berkomunikasi sebagai Keyboard/Mouse dengan protokol USB-HID menggunakan pustaka Keyboard.

### Arduino Fio

Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan wireless.

### Arduino Lilypad

Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6 pin input analognya.

### Arduino Nano

Sepertinya namanya, Nano yang berukuran kecil dan sangat sederhana ini, menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.

### Arduino Mini

Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.

### Arduino Micro

Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.

### Arduino Ethernet

Ini arduino yang sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu dapat berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O Digital dan Input Analognya sama dengan Uno.

### Arduino Esplora

Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena sudah dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu tambahkan LCD, untuk lebih mempercantik Esplora.

### Arduino Robot

Ini adalah paket komplet dari Arduino yang sudah berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.

## Contoh program

```
int LED\_PIN = 13;

void setup ()
{
 pinMode (LED\_PIN, OUTPUT); // aktifkan pin 13 untuk output digital
}

void loop ()
{
 digitalWrite (LED\_PIN, HIGH); // menyalakan LED
 delay (2000); // Tunggu 2 detik (2000 millisekon)
 digitalWrite (LED\_PIN, LOW); // matikan LED
 delay (2000); // Tunggu 2 detik
}

```

## Papan yang kompatibel dengan Arduino

Karena rancangan perangkat keras dan perangkat lunak Arduino bersifat open-source, produsen lain bebas untuk menirunya, misalnya:

* SENTSOR Uno Plus
* Freeduino
* Robotdyn
* Freeduino MaxSerial
* Zigduino
* Panjerino

## Bacaan lanjutan

* *Getting Started with Arduino*; Massimo Banzi, Michael Shiloh; 262 pages; 2014; ISBN 1-4493-6333-4.
* *Make: Sensors*; Tero Karvinen, Kimmo Karvinen, Ville Valtokari; 400 pages; 2014; ISBN 978-1-4493-6810-4.
* *Arduino For Dummies*; John Nussey; 446 pages; 2013; ISBN 978-1118446379.
* *Programming Arduino Next Steps: Going Further with Sketches*; Simon Monk; 2013; ISBN 978-0071830256.
* *Exploring Arduino: Tools and Techniques for Engineering Wizardry*; Jeremy Blum; 384 pages; 2013; ISBN 978-1118549360.
* *Arduino Workshop: A Hands-On Introduction with 65 Projects*; John Boxall; 392 pages; 2013; ISBN 978-1593274481.
* *Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers*; Jack Purdum; 280 pages; 2012; ISBN 978-1430247760.
* *Programming Arduino: Getting Started With Sketches*; Monk Simon; 162 pages; 2011; ISBN 978-0071784221.
* *Arduino: A Quick Start Guide*; Maik Schmidt; Pragmatic Bookshelf; 276 pages; 2011; ISBN 978-1-934356-66-1.
* *Make: Electronics (Learning by Discovery)*; Charles Platt; 352 pages; 2009; ISBN 978-0596153748.

## Referensi

## Pranala luar

* Situs resmi Arduino