Arduino Uno

**Arduino Uno** adalah papan pengendali mikro dengan sumber terbuka yang berbasis mikrokontroler Microchip ATmega328P. Pengembangnya ialah Arduino.cc dan awalnya dirilis pada tahun 2010. Papan ini dilengkapi dengan set pin masukan/keluaran (I/O) digital dan analog yang dapat dihubungkan ke berbagai kartu ekspansi (perisai) dan sirkuit lainnya. Arduino Uno memiliki 14 pin I/O digital (enam yang mampu menghasilkan keluaran modulasi lebar pulsa), 6 pin I/O analog, dan dapat diprogram dengan Arduino IDE (Integrated Development Environment), melalui kabel USB tipe B. Hal ini dapat didukung oleh kabel USB atau dengan baterai 9-volt eksternal, meskipun menerima tegangan antara 7 dan 20 volt. Ini mirip dengan Arduino Nano dan Leonardo. Desain referensi perangkat keras didistribusikan di bawah lisensi Creative Commons Attribution Share-Alike 2.5 dan tersedia di situs web Arduino. Tata letak dan file produksi untuk beberapa versi perangkat keras juga tersedia.

Kata "  " berarti "satu" dalam bahasa Italia dan dipilih untuk menandai rilis awal Arduino Software .  Papan Uno adalah yang pertama dari serangkaian papan Arduino berbasis USB; itu dan versi 1.0 dari Arduino IDE adalah versi referensi Arduino, yang kini telah berevolusi ke rilis yang lebih baru. ATmega328 di papan dilengkapi dengan bootloader yang telah diprogram sebelumnya yang memungkinkan pengunggahan kode baru ke dalamnya tanpa menggunakan pemrogram perangkat keras eksternal.

Sementara Uno berkomunikasi menggunakan protokol STK500 asli,  berbeda dari semua papan sebelumnya karena tidak menggunakan chip driver FTDI USB-to-serial. Sebagai gantinya, ia menggunakan Atmega16U2 (Atmega8U2 hingga versi R2) yang diprogram sebagai konverter USB-ke-serial.

## Sejarah

Proyek Arduino dimulai di Interaction Design Institute Ivrea (IDII) di Ivrea, Italia. Pada saat itu mahasiswa menggunakan mikrokontroler BASIC Stamp, dengan biaya yang cukup besar bagi banyak mahasiswa. Pada tahun 2003, Hernando Barragán menciptakan platform pengembangan *[[Pengkabelan (platform pengembangan)|Wiring]]* sebagai proyek tesis Master di IDII, di bawah pengawasan Massimo Banzi dan Casey Reas, yang dikenal bekerja pada bahasa Pemrosesan. Tujuan proyek adalah untuk membuat alat sederhana dan berbiaya rendah untuk membuat proyek digital oleh non-insinyur. Platform Wiring terdiri dari papan sirkuit tercetak (PCB) dengan mikrokontroler ATmega 168, IDE berbasis Processing, dan fungsi library untuk memprogram mikrokontroler dengan mudah. Pada tahun 2003, Massimo Banzi, dengan David Mellis, siswa IDII lainnya, dan David Cuartielles, menambahkan dukungan untuk mikrokontroler ATmega8 yang lebih murah ke Wiring. Namun, alih-alih melanjutkan pekerjaan pada Pengkabelan, mereka membuat proyek tersebut dan menamainya *Arduino* . Papan arduino awal menggunakan chip driver FTDI USB-to-serial dan ATmega 168. Uno berbeda dari semua papan sebelumnya dengan menampilkan mikrokontroler ATmega328P dan ATmega16U2 (Atmega8U2 hingga versi R2) yang diprogram sebagai konverter USB-ke-serial.

## Spesifikasi teknis

* Mikrokontroler : Microchip ATmega328P 
* Tegangan Operasi: 5 Volt
* Tegangan Input: 7 hingga 20 Volt
* Pin I/O Digital: 14
* Pin PWM: 6 (Pin #3, 5, 6, 9, 10 dan 11) 
* UART: 1
* I2C: 1
* SPI: 1
* Pin Input Analog: 6
* Arus DC per Pin I/O: 20 mA
* Arus DC untuk 3.3V Pin: 50 mA
* Memori Flash : 32 KB dimana 0,5 KB digunakan oleh bootloader
* SRAM : 2 KB
* EEPROM : 1 KB
* Kecepatan Jam: 16&nbsp;MHz
* Panjang: 68.6&nbsp;mm
* Lebar: 53,4&nbsp;mm
* Berat: 25 gram
* Header ICSP: Ya
* Sumber Daya: Jack Daya DC, Port USB dan pin VIN (+5 volt saja)

## Header

### Fungsi pin umum

* **LED** : Ada LED built-in yang digerakkan oleh pin digital 13. Ketika pin bernilai tinggi, LED menyala, ketika pin rendah, mati.
* **VIN** : Tegangan input ke papan Arduino/Genuino saat menggunakan sumber daya eksternal (berlawanan dengan 5 volt dari sambungan USB atau sumber daya lain yang diatur). Anda dapat mensuplai tegangan melalui pin ini, atau, jika mensuplai tegangan melalui colokan listrik, akses melalui pin ini.
* **5V** : Pin ini mengeluarkan 5V yang diatur dari regulator di papan. Papan dapat disuplai dengan daya baik dari colokan listrik DC (7 - 20V), konektor USB (5V), atau pin VIN papan (7-20V). Mensuplai tegangan melalui pin 5V atau 3.3V melewati regulator, dan dapat merusak board.
* **3V3** : Suplai 3,3 volt yang dihasilkan oleh regulator terpasang. Penarikan arus maksimum adalah 50 mA.
* **GND** : Pin ground.
* **IOREF** : Pin pada papan Arduino/Genuino ini menyediakan referensi tegangan yang digunakan mikrokontroler untuk beroperasi. Pelindung yang dikonfigurasi dengan benar dapat membaca tegangan pin IOREF dan memilih sumber daya yang sesuai, atau mengaktifkan penerjemah tegangan pada output untuk bekerja dengan 5V atau 3.3V.
* **Reset** : Biasanya digunakan untuk menambahkan tombol reset ke perisai yang menghalangi yang ada di papan.

### Fungsi pin khusus
Masing-masing dari 14 pin digital dan 6 pin analog pada Uno dapat digunakan sebagai input atau output, di bawah kendali perangkat lunak (menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead()). Mereka beroperasi pada 5 volt. Setiap pin dapat memberikan atau menerima 20 mA sebagai kondisi operasi yang direkomendasikan dan memiliki resistor pull-up internal (terputus secara default) sebesar 20-50K ohm. Maksimum 40mA tidak boleh dilampaui pada setiap pin I/O untuk menghindari kerusakan permanen pada mikrokontroler. Uno memiliki 6 input analog, diberi label A0 hingga A5; masing-masing menyediakan 10 bit resolusi (yaitu 1024 nilai yang berbeda). Secara default, mereka mengukur dari ground hingga 5 volt, meskipun dimungkinkan untuk mengubah ujung atas rentang menggunakan pin AREF dan fungsi analogReference().

Selain itu, beberapa pin memiliki fungsi khusus:

* **Serial**/UART : pin 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) data serial TTL. Pin ini terhubung ke pin yang sesuai dari chip serial ATmega8U2 USB-to-TTL.
* **Interupsi eksternal** : pin 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interupsi pada nilai rendah, tepi naik atau turun, atau perubahan nilai.
* **[[Modulasi lebar pulsa|PWM]]** (modulasi lebar pulsa): pin 3, 5, 6, 9, 10, dan 11. Dapat memberikan output PWM 8-bit dengan fungsi analogWrite().
* **[[Antarmuka Periferal Serial|SPI]]** (Serial Peripheral Interface): pin 10 (SS), 11 (MOSI), 12 (MISO), dan 13 (SCK). Pin ini mendukung komunikasi SPI menggunakan pustaka SPI.
* **TWI** (antarmuka dua kabel) / I²C : pin SDA (A4) dan pin SCL (A5). Mendukung komunikasi TWI menggunakan perpustakaan Wire.
* **AREF** (referensi analog): Tegangan referensi untuk input analog.

## Komunikasi
Arduino/Genuino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, papan Arduino/Genuino lain, atau mikrokontroler lainnya. ATmega328 menyediakan komunikasi serial UART TTL (5V), yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah ATmega16U2 di papan menyalurkan komunikasi serial ini melalui USB dan muncul sebagai port komunikasi virtual ke perangkat lunak di komputer. Firmware 16U2 menggunakan driver USB COM standar, dan tidak diperlukan driver eksternal. Namun, pada Windows, file .inf diperlukan. Arduino Software (IDE) termasuk monitor serial yang memungkinkan data tekstual sederhana dikirim ke dan dari board. LED RX dan TX pada board akan berkedip saat data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Pustaka SoftwareSerial memungkinkan komunikasi serial pada salah satu pin digital Uno.

### Reset otomatis (perangkat lunak)
Alih-alih membutuhkan penekanan fisik tombol reset sebelum mengunggah, papan Arduino/Genuino Uno dirancang sedemikian rupa sehingga memungkinkannya untuk disetel ulang oleh perangkat lunak yang berjalan pada komputer yang terhubung. Salah satu jalur kontrol aliran perangkat keras (DTR) ATmega8U2/16U2 terhubung ke jalur reset ATmega328 melalui kapasitor 100 nanofarad. Ketika garis ini ditegaskan (diambil rendah), garis reset turun cukup lama untuk mengatur ulang chip.

Pengaturan ini memiliki implikasi lain. Ketika Uno terhubung ke komputer yang menjalankan Mac OS X atau Linux, itu me-reset setiap kali koneksi dibuat dari perangkat lunak (melalui USB). Selama setengah detik berikutnya, bootloader berjalan di Uno. Meskipun diprogram untuk mengabaikan data yang cacat (yaitu apa pun selain pengunggahan kode baru), ia akan mencegat beberapa byte pertama data yang dikirim ke papan setelah koneksi dibuka.

## Pranala luar

* 
** Uno Rev3 Schematic
* Board comparisons:
** Differences Between Official Arduino Uno Board Revisions (R1/R2/R3)
** Comparison of Various Arduino Boards
* Arduino Software Cheat Sheet

## Lihat pula

* Mikrokontroler Atmel AVR
* Pemrograman In-system

## Referensi