Arduino adalah sebuah sistem minimal Mikrokontroler yang dibuat oleh pabrikan. Harga Arduino pabrikan memang cukup mahal sehingga membuat produksi alat dengan Arduino pabrikan kurang favorit. Karena itu solusi yang lebih murah adalah dengan membuat sendiri sistem minimal Arduino dengan kelengkapan minimal sesuai dengan kebutuhan sistem yang akan dibuat.
Mikrokontroler adalah sebuah IC (Integrated Circuit) yang berisi rangkaian logika kompleks untuk melakukan pemrosesan. Mikrokontroler memiliki memory sehingga dapat menyimpan program untuk melakukan pengontrolan. Pada Gambar 1 dapat dilihat sebuah Mikrokontroler ATMEGA 328 yang merupakan processor yang dipakai pada Arduino UNO R3.
Gambar 1 Pinout Mikrokontroler ATMega 328P
Pembacaan kaki IC dimulai dari bawah tanda setengah lingkaran berurutan sampai atas setengah lingkaran. Pada Gambar 1 ATMega 328P memiliki 28 kaki. Mikrokontroler ATMEGA mengelompokkan pin sesuai kegunaanya, kelompok pin ini disebut dengan PORT. Pada ATMEGA 328P terdapat 3 PORT yaitu PORTB (PB), PORTC (PC), dan PORTD (PD). Fungsi dan kegunaan pin pada masing-masing PORT dapat dilihat pada datasheet Mikrokontroler yang bisa didownload dari website pabrik pembuat Mikrokntroler. Pada Arduino pin dari Mikrokontroler memiliki pengelompokan yang berbeda yaitu analog pin dan digital pin. Hubungan antara pin Arduino dengan pin Mikrokontroler terlihat seperti pada Gambar 1.
Mikrokontroler dapat langsung bekerja apabila diberikan tegangan, namun untuk dapat bekerja optimal Mikrokontroler membutuhkan beberapa rangkaian minimal. Pada mode standar, Mikrokontroler bekerja dengan clock (kecepatan detak) internal yang cenderung lambat sekitar 1-8 MHz. Pada PC atau laptop saat ini clock prosesornya sudah mencapai orde GHz sehingga jauh lebih cepat. Mikrokontroler dapat bekerja lebih cepat dengan menggunakan clock eksternal dengan menambah komponen yang disebut crystal. Crystal yang digunakan pada Arduino UNO adalah 16MHz. untuk dapat menggunakan crystal diperlukan kapasitor 22pF pada kaki crystal yang terhubung dengan ground. Sistem minimal untuk menjalankan Arduino dapat dilihat pada Gambar 2, sistem minimal ini memerlukan crystal 16MHz, reset, dan power 5V untuk dapat berjalan.
Gambar 2 Sistem Minimal Arduino
Sebuah Mikrokontroler yang baru masih kosong memorinya karena itu perlu diisi program agar dapat digunakan. Pada Arduino terdapat program khusus untuk komunikasi data sekaligus untuk menerjemahkan bahasa pemrograman Arduino, program ini disebut bootloader. Bootloader berfungsi untuk menjembatani program Arduino yang dibuat dengan hardware ATMega seperti halnya operating system pada komputer yang menjembatani hardware dan software-nya. Karena itu agar sebuah Mikrokontroler dapat berfungsi sebagai Arduino maka terlebih dahulu harus dimasukkan bootloader-nya yang sesuai. Bootloader secara otomatis dapat dimasukkan ke Mikrokontroler dengan menggunakan Arduino IDE.