TAKEN FROM μDESK OF DEDE HENDRIONO

Mengenal Arduino Nano

Arduino Nano adalah salah satu papan pengembangan mikrokontroler yang berukuran kecil, lengkap dan mendukung penggunaan breadboard. Arduino Nano diciptakan dengan basis mikrokontroler ATmega328 (untuk Arduino Nano versi 3.x) atau ATmega 168 (untuk Arduino versi 2.x). Arduino Nano kurang lebih memiliki fungsi yang sama dengan Arduino Duemilanove, tetapi dalam paket yang berbeda. Arduino Nano tidak menyertakan colokan DC berjenis Barrel Jack, dan dihubungkan ke komputer menggunakan port USB Mini-B. Arduino Nano dirancang dan diproduksi oleh perusahaan Gravitech.

Gambar 1. Arduino Nano Depan

Gambar 2. Arduino Nano Belakang

Ruang Lingkup Bahasan Arduino Nano


Skema dan Desain

Karena Arduino Nano dibuat oleh Gravitech maka dibawah ini ada dua lampiran file tentang skema Arduino Nano. Yang keduanya identik, baik yang berasal dari situs Arduino maupun dari situs Gravitech.

Catatan: Jika anda menggunakan EagleCAD versi gratis maka tidak bisa menangani layer lebih dari 2, sedangkan Arduino Nano versi 2.3 terdiri dari 4 lapisan (layer).


Spesifikasi

Dibawah ini spesifikasi dari Arduino Nano:

MikrokontrolerAtmel ATmega168 atau ATmega328
Tegangan Operasi5V
Input Voltage (disarankan)7-12V
Input Voltage (limit)6-20V
Pin Digital I/O14 (6 pin digunakan sebagai output PWM)
Pins Input Analog8
Arus DC per pin I/O40 mA
Flash Memory16KB (ATmega168) atau 32KB (ATmega328) 2KB digunakan oleh Bootloader
SRAM1 KB (ATmega168) atau 2 KB (ATmega328)
EEPROM512 byte (ATmega168) atau 1KB (ATmega328)
Clock Speed16 MHz
Ukuran1.85cm x 4.3cm

Sumber Daya

Arduino Nano dapat diaktifkan melalui koneksi USB Mini-B, atau melalui catu daya eksternal dengan tegangan belum teregulasi antara 6-20 Volt yang dihubungkan melalui pin 30 atau pin VIN, atau melalui catu daya eksternal dengan tegangan teregulasi 5 volt melalui pin 27 atau pin 5V. Sumber daya akan secara otomatis dipilih dari sumber tegangan yang lebih tinggi. Chip FTDI FT232L pada Arduino Nano akan aktif apabila memperoleh daya melalui USB, ketika Arduino Nano diberikan daya dari luar (Non-USB) maka Chip FTDI tidak aktif dan pin 3.3V pun tidak tersedia (tidak mengeluarkan tegangan), sedangkan LED TX dan RX pun berkedip apabila pin digital 0 dan 1 berada pada posisi HIGH.


Pemetaan Pin

Dibawah ini pemetaan pin ATmega328 pada Arduino Nano.

Gambar 3. Pemetaan Pin ATmega328 SMD

Perhatikan pemetaan antara pin Arduino Nano dan port ATmega328 SMD. Pemetaan untuk ATmega8, ATmega168, dan ATmega328 sangat identik atau sama persis.

Nomor PinNama PinNomor PinNama Pin
ATmega328Arduino Nano
1PD3 (PCINT19/OCB2B/INT1)6Digital Pin 3 (PWM)
2PD4 (PCINT20/XCK/T0)7Digital Pin 4
3GND4 & 29GND
4VCC27VCC
5GND4 & 29GND
6VCC27VCC
7PB6 (PCINT6/XTAL1/TOASC1)--
8PB7 (PCINT7/XTAL2/TOASC2)--
9PD5 (PCINT21/OC0B/T1)8Digital Pin 5 (PWM)
10PD6 (PCINT22/OC0A/AIN0)9Digital Pin 6 (PWM)
11PD7 (PCINT23/AIN1)10Digital Pin 7
12PB0 (PCINT0/CLK0/ICP1)11Digital Pin 8
13PB1 (PCINT1/OC1A)13Digital Pin 9 (PWM)
14PB2 (PCINT2/SS/OC1B)13Digital Pin 10 (PWM - SS)
15PB3 (PCINT3/OC2A/MOSI)14Digital Pin 11 (PWM - MOSI)
16PB4 (PCINT4/MISO)15Digital Pin 12 (MISO)
17PB5 (PCINT5/SCK)16Digital Pin 13 (SCK)
18AVCC27VCC
19ADC625Analog Input 6
20AREF18AREF
21GND4 & 29GND
22ADC726Analog Input 7
23PC0 (PCINT8/ADC0)19Analog Input 0
24PC1 (PCINT9/ADC1)20Analog Input 1
25PC2 (PCINT10/ADC2)21Analog Input 2
26PC3 (PCINT11/ADC3)22Analog Input 3
27PC4 (PCINT12/ADC4/SDA)24Analog Input 4 (SDA)
28PC5 (PCINT13/ADC5/SCL)25Analog Input 5 (SCL)
29PC6 (PCINT14/RESET)28 & 3RESET
30PD0 (PCINT16/RXD)2Digital Pin 0 (RX)
31PD1 (PCINT17/TXD)1Digital Pin 1 (TX)
32PD2 (PCINT18/INT0)5Digital Pin 2
Gambar 4. Pin Layout Arduino Nano

Memory

ATmega168 memiliki 16 KB flash memory untuk menyimpan kode (2 KB digunakan untuk bootloader); Sedangkan ATmega328 memiliki flash memory sebesar 32 KB, (juga dengan 2 KB digunakan untuk bootloader). ATmega168 memiliki 1 KB memory pada SRAM dan 512 byte pada EEPROM (yang dapat dibaca dan ditulis dengan perpustakaan EEPROM); Sedangkan ATmega328 memiliki 2 KB memory pada SRAM dan 1 KB pada EEPROM.


Input dan Output

Masing-masing dari 14 pin digital pada Arduino Nano dapat digunakan sebagai input atau output, dengan menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Semua pin beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau menerima arus maksimum 40 mA dan memiliki resistor pull-up internal (yang terputus secara default) sebesar 20-50 KOhm. Selain itu beberapa pin memiliki fungsi khusus, yaitu:

  • Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini terhubung ke pin yang sesuai dari chip FTDI USB-to-TTL Serial.
  • External Interrupt (Interupsi Eksternal): Pin 2 dan pin 3 ini dapat dikonfigurasi untuk memicu sebuah interupsi pada nilai yang rendah, meningkat atau menurun, atau perubahan nilai.
  • PWM : Pin 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit dengan fungsi analogWrite(). Jika pada jenis papan berukuran lebih besar (misal: Arduino Uno), pin PWM ini diberi simbol tilde atau “~” sedangkan pada Arduino Nano diberi tanda titik atau strip.
  • SPI : Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi SPI. Sebenarnya komunikasi SPI ini tersedia pada hardware, tapi untuk saat belum didukung dalam bahasa Arduino.
  • LED : Pin 13. Tersedia secara built-in pada papan Arduino Nano. LED terhubung ke pin digital 13. Ketika pin diset bernilai HIGH, maka LED menyala, dan ketika pin diset bernilai LOW, maka LED padam.

Arduino Nano memiliki 8 pin sebagai input analog, diberi label A0 sampai dengan A7, yang masing-masing menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda). Secara default pin ini dapat diukur/diatur dari mulai Ground sampai dengan 5 Volt, juga memungkinkan untuk mengubah titik jangkauan tertinggi atau terendah mereka menggunakan fungsi analogReference(). Pin Analog 6 dan 7 tidak dapat digunakan sebagai pin digital. Selain itu juga, beberapa pin memiliki fungsi yang dikhususkan, yaitu:

  • I2C : Pin A4 (SDA) dan pin A5 (SCL). Yang mendukung komunikasi I2C (TWI) menggunakan perpustakaan Wire.

Masih ada beberapa pin lainnya pada Arduino Nano, yaitu:

  • AREF : Referensi tegangan untuk input analog. Digunakan dengan fungsi analogReference().
  • RESET : Jalur LOW ini digunakan untuk me-reset (menghidupkan ulang) mikrokontroler. Biasanya digunakan untuk menambahkan tombol reset pada shield yang menghalangi papan utama Arduino.

Komunikasi

Arduino Nano memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, dengan Arduino lain, atau dengan mikrokontroler lainnya. ATmega168 dan ATmega328 menyediakan komunikasi serial UART TTL (5 Volt), yang tersedia pada pin digital 0 (RX) dan pin 1 (TX). Sebuah chip FTDI FT232RL yang terdapat pada papan Arduino Nano digunakan sebagai media komunikasi serial melalui USB dan driver FTDI (tersedia pada software Arduino IDE) yang akan menyediakan COM Port Virtual (pada Device komputer) untuk berkomunikasi dengan perangkat lunak pada komputer. Perangkat lunak Arduino termasuk didalamnya serial monitor memungkinkan data tekstual sederhana dikirim ke dan dari papan Arduino. LED RX dan TX yang tersedia pada papan akan berkedip ketika data sedang dikirim atau diterima melalui chip FTDI dan koneksi USB yang terhubung melalui USB komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1).

Sebuah perpustakaan SoftwareSerial memungkinkan komunikasi serial pada beberapa pin digital Nano. ATmega168 dan ATmega328 juga mendukung komunikasi I2C (TWI) dan SPI. Perangkat lunak Arduino termasuk perpustakaan Wire digunakan untuk menyederhanakan penggunaan bus I2C. Untuk komunikasi SPI, silakan lihat datasheet ATmega168 atau ATmega328.


Pemrograman

Arduino Nano dapat diprogram dengan software Arduino (Unduh perangkat lunak Arduino). Pilih “Arduino Diecimila, Duemilanove, atau Nano w/ ATmega168 ” or “Arduino Duemilanove atau Nano w/ ATmega328” melalui menu Tools > Board (sesuaikan dengan jenis mikrokontroler yang anda miliki).

ATmega168 dan ATmega328 pada Arduino Nano sudah dipaket preburned dengan bootloader yang memungkinkan Anda untuk meng-upload kode baru tanpa menggunakan programer hardware eksternal. Hal ini karena komunikasi yang terjadi menggunakan protokol asli STK500. Anda juga dapat melewati (bypass) bootloader dan program mikrokontroler melalui pin header ICSP (In-Circuit Serial Programming) menggunakan Arduino ISP atau yang sejenis.


Reset (Software) Otomatis

Daripada menekan tombol reset sebelum upload, Arduino Nano didesain dengan cara yang memungkinkan Anda untuk me-reset melalui perangkat lunak yang berjalan pada komputer yang terhubung. Salah satu jalur kontrol hardware (DTR) mengalir dari FT232RL dan terhubung ke jalur reset dari ATmega168 atau ATmega328 melalui kapasitor 100 nanofarad. Bila jalur ini di-set rendah/low, jalur reset drop cukup lama untuk me-reset chip. Perangkat lunak Arduino menggunakan kemampuan ini untuk memungkinkan Anda meng-upload kode dengan hanya menekan tombol upload pada perangkat lunak Arduino. Ini berarti bahwa bootloader memiliki rentang waktu yang lebih pendek, seperti menurunkan DTR dapat terkoordinasi (berjalan beriringan) dengan dimulainya upload.

Pengaturan ini juga memiliki implikasi lain. Ketika Arduino Nano terhubung dengan komputer yang menggunakan sistem operasi Mac OS X atau Linux, papan Arduino akan di-reset setiap kali dihubungkan dengan software komputer (melalui USB). Dan setengah detik kemudian atau lebih, bootloader berjalan pada papan Arduino Nano. Proses reset melalui program ini digunakan untuk mengabaikan data yang cacat (yaitu apapun selain meng-upload kode baru), ia akan memotong dan membuang beberapa byte pertama dari data yang dikirim ke papan setelah sambungan terbuka. Jika sebuah sketsa dijalankan pada papan untuk menerima satu kali konfigurasi atau menerima data lain ketika pertama kali dijalankan, pastikan bahwa perangkat lunak diberikan waktu untuk berkomunikasi dengan menunggu beberapa detik setelah terkoneksi dan sebelum mengirim data.

Referensi


Artikel Terkait

Apa itu Arduino?

Arduino adalah pengendali mikro (mikrokontroler) papan tunggal yang bersifat open-source (sumber terbuka), diturunkan dan dikembangkan dari platform Wiring, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya menggunakan prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri dengan antar-muka diambil dari Processing....

Mengenal Arduino Uno

Arduino Uno adalah papan mikrokontroler berbasis ATmega328. Arduino Uno memiliki 14 digital pin input/output, dimana 6 pin digunakan sebagai output PWM, 6 pin input analog, 16 MHz resonator keramik, koneksi USB, jack catu daya eksternal, header ICSP, dan tombol reset. Sebuah ATmega16U2 yang terdapat pada papan digunakan sebagai media komunikasi serial melalui USB dan muncul pada hardware komputer sebagai COM Port Virtual untuk berkomunikasi dengan perangkat lunak pada komputer. Firmware 16U2 menggunakan driver standar USB COM, sehingga tidak membutuhkan driver eksternal....

Mengenal Arduino Pro Mini

Satu lagi anggota keluarga Arduino yang cukup populer, yaitu Arduino Pro Mini. Merupakan keluarga Arduino yang murah, sederhana dan ukurannya yang kecil membuat popularitas Arduino Pro Mini hampir mengalahkan Arduino Uno. Selain itu, Arduino Pro Mini hadir dalam 2 versi yaitu versi 3,3 Volt 8 Mhz dan versi 5 Volt 16 MHz yang membuatnya mudah untuk dipilih sesuai kebutuhan. Dimensi yang kecil membuat Arduino Pro Mini bisa langsung ditanamkan pada proyek-proyek robotika. Kelemahan Arduino Pro Mini adalah tidak ditanamkannya USB Adapter pada papan sehingga para pengguna harus menyediakan sendiri USB Adapter terpisah....

Mengenal Arduino Leonardo

Arduino Leonardo adalah papan mikrokontroler berbasis ATmega32u4. Arduino Leonardo memiliki 20 digital pin input/output (yang mana 7 pin dapat digunakan sebagai output PWM dan 12 pin sebagai input analog), 16 MHz kristal osilator, koneksi micro USB, jack power suplai tegangan, header ICSP, dan tombol reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. Cukup dengan menghubungkannya ke komputer melalui kabel USB atau power dengan adaptor AC-DC atau baterai untuk mulai mengaktifkannya....

Mengenal Arduino Mega2560

Arduino Mega2560 adalah papan mikrokontroler berbasiskan ATmega2560 (datasheet ATmega2560). Arduino Mega2560 memiliki 54 pin digital input/output, dimana 15 pin dapat digunakan sebagai output PWM, 16 pin sebagai input analog, dan 4 pin sebagai UART (port serial hardware), 16 MHz kristal osilator, koneksi USB, jack power, header ICSP, dan tombol reset. Ini semua yang diperlukan untuk mendukung mikrokontroler. ...

Codebender Alternatif Arduino IDE

Biasanya kita menggunakan Arduino IDE standar bawaan Arduino yang sampai hari ini telah mencapai versi 1.0.5. Namun ternyata ada antarmuka Arduino IDE yang berbasis cloud web. Hal ini memudahkan kita untuk menulis kode-kode Arduino secara online, membagikan kepada orang lain atau berkontribusi pada kode-kode Arduino yang telah dibuat oleh pengguna lain didunia. Kita bisa secara langsung meng-upload kode kedalam papan Arduino yang kita miliki dan bahkan kita bisa meng-upload kode yang telah kita tulis menggunakan AVR Programmer....

Menggunakan Breadboard

Breadboard adalah salah satu bagian yang paling mendasar ketika belajar bagaimana membuat sirkuit dalam elektronika. Dalam tutorial ini, kita akan belajar tentang apa breadboard, mengapa disebut breadboard, dan bagaimana menggunakan breadboard untuk prototyping. Setelah selesai membaca artikel ini maka harapan penulis, para pembaca memiliki pemahaman dasar tentang bagaimana bekerja dengan breadboard dan mampu membangun sirkuit dasar pada breadboard....

Solusi avrdude stk500_getsync() pada Arduino

Artikel sebelumnya telah membahas permasalahan dan solusi pada Arduino. Pembahasan artikel tersebut mengarah pada kesalahan penulisan kode. Artikel kali ini membahas permasalahan umum yang sering muncul pada Arduino. Namun permasalahan kali ini mengarah pada kesalahan komunikasi antara Komputer dengan Arduino. Kesalahan komunikasi atau Upload error tidaklah serumit kesalahan kode, namun karena sifatnya yang mengarah ke fisik, biasanya mengarah ke papan Arduino. Dan dalam kasus yang fatal, Mikrokontroller harus diganti. Jika anda menemukan masalah seperti ini, jangan langsung mengambil kesimpulan terparah, pelajari dulu masalah yang menyebabkan kesalahan komunikasi tersebut. Artikel kali ini memaparkan permasalahan yang terjadi dan solusinya jika terjadi kesalahan avrdude: stk500_getsync(): not in sync: resp=0x00....

Silahkan Berkomentar