Senin, 07 Januari 2013

Belajar Program Arduino

Membangun rangkaian

Untuk membuat arduino  terdapat banyak pilihan jenis mikrokontroler yang akan digunakan. Namun dalam posting ini bisa menggunakan ATmega 8, 168, 328. Saya menggunakan ATmega 328 dengan kapasitas memori program lebih besar yaitu 32KB. Bangunlah dahulu rangkaian mikrokontroler dalam rangkaian berikut ini.
 
 Komponen yang harus anda sediakan adalah:
  1. IC1: Mikrokontroler ATMega8, 168, atau 328, terserah kepada anda silakan dipilih salah satu.
  2. Q1: Kristal resonator, 8MHz atau 16MHz.
  3. R1: sebagai resistor pullup untuk reset sebesar 1K – 10K
  4. C1 dan C2 sebesar 22pF.
Tegangan suply VCC adalah 5VDC, jangan sampai terbalik polaritasnya, kalau terjadi maka mikrokontroler akan menjadi almarhum alias terbakar. Untuk mengisi program biasanya menggunakan ICSP dengan menggunakan 4 sinyal MISO, MOSI, SCK dan RESET. Saya sarankan menggunakan USBASP bisa dibuat sendiri dengan menggunakan mikrokontroler ATmega8. Tegangan suply 5V dapat disuply dari USBASP programmer dengan mengambil daya dari port USB komputer. Cara membuat USBASP programmer dijelaskan dalam posting lainnya.
Anda dapat membangun rangkaian dengan menggunakan breadboard agar mudah bereksperimen dengan menghubungkan setiap kaki komponen  menggunakan kabel engkel sekitar 0.5-1mm. Pilihan lain bisa mengunakan PCB berlobang dan anda bisa menghubungkan dengan kawat engkel untuk setiap kaki komponen dengan cara disolder.
 
 Rangkaian yang dibangun pada breadboard diatas, belum ada bootloader arduinonya. Jadi perlu diprogram bootloader sesuai dengan jenis mikrokontroler ATmega yang digunakan. Untuk mengisi booloader ini cara yang paling mudah dengan menggunakan IDE arduino. Namun anda memerlukan piranti pemrogram yang sesuai dan dikenal arduino. Anda harus menset jenis pemrogram sesuai dengan yang anda gunakan. Cara settingnya pilih menu Tools->programmer->”pilih jenis programmer”.

Programmer yang termurah adalah jenis Parallel Programmer yang memanfaatkan port paralel pada komputer. Namun sayang pada laptop sudah tidak ada lagi. Kalaupun menggunakan konverter USB-LPT akan menjadi lebih ribet lagi, lebih baik menggunakan USBasp bisa dibeli dipasaran umum atau dibuat sendiri menggunakan ATmega8. Saya menggunakan USBasp sebagai pemrogramnya.
 
Yang tak kalah pentingnya adalah mengenal koneksi pemrograman pada USBasp agar proses pemrograman berhasil. Pada USBasp ada dua jenis konektor yaitu 6pin dan 10pin. Saya menggunakan jenis 10pin pada USBasp buatan sendiri.
Saluran pemrograman adalah MISO, MOSI dan SCK dihubungkan dengan MISO, MOSI dan SCK mikrokontroler target. Sedangkan RES dihubungkan ke RESET mikrokontroler target untuk mereset menjadi mode program. Sedangkan VTG adalah sumber tegangan +5V dari port USB komputer. GND adalah saluran bersama. Jadi total yang harus dihubungkan ke mikrokontroler adalah 5 kabel jika board anda memiliki suply tegangan +5V sendiri. Jika board and tidak memiliki suply +5V dan diperoleh dari USB komputer, VTG dihubungkan ke VCC mikrokontroler. Harus diperhatikan jangan kedua-duanya, untuk menghindari kerusakan komputer karena tegangannya menjadi bentrok.

Mengisi BootLoader

Bootloader merupakan program pendek yang diisikan kedalam ATmega, yang akan dieksekusi saat mikrokontroler diberi catudaya. Sebenarnya bootloader ini merupakan firmware untuk  pemrograman yang bekerja secara serial RS232. Jadi cukup memanfaatkan saluran serial RS232 pada komputer, untuk selanjutnya bootloader akan menangani pengisian program pada memori program berupa Flash dalam ATmega. Sebenarnya masih ada pilihan lainnya untuk mengisi/upload hasil kompilasi arduino yaitu salah satunya dengan menggunakan USBasp, sehingga tanpa memerlukan bootloader.
Namun jika ini yang menjadi pilihan anda akan dijelaskan bagaimana mengisi (burn) firmware bootloader ini. Untuk mengisi bootloader hubungkan MISO -> MISO, MOSI -> MOSI, SCK -> SCK, /RES -> RESET, GND -> GND, VTG -> VCC (jika target disuply dari tegangan USB komputer).
 Setelah target tersambung dengan benar ke programmer USBasp, colokkan USBasp. Selanjutnya jalankan arduino, kemudian lakukan sebagai berikut:
  1. Set board yang sesuai: Tools -> Board -> Duemilanove w/ATmega 328 (bisa yang lain asal ATmega328 16MHz)
  2. Set Programmer: Tools -> Programmer -> USBasp
  3. Kirim bootloader: Tools -> Burn bootloader
Saya menggunakan arduino versi 1.0.1.

Meng-upload program

Untuk menguji apakah bootloader bekerja dengan baik, dicoba mengupload program dari contoh yang ada pada arduino bernama “blink”. Hubungkan TX komputer -> RX arduino (pin 2), RX komputer -> TX arduino (pin 3), RTS komputer -> RESET arduino (pin 1). Ingat ketiga saluran dari serial komputer harus memiliki level tegangan logika TTL 0 V atau 5V. Kalau anda menggunakan USB to serial pada umumnya, keluarannya masih dalam taraf level tegangan RS232. Untuk mengubah level tegangan RS232 ke TTL gunakan IC MAX232.
Mudah-mudahan bermanfaat buat seluruh pengunjung blog.

0 komentar:

Posting Komentar