Belajar arduino: membuat board sendiri ATmega8, 168 dan 328

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini diperuntukkan bagi yang ingin belajar arduino namun berkantong tipis untuk membeli board arduino yang relatif mahal. Atau bagi mereka yang memang suka utak-atik perangkat keras elektronika. Mikrokontroler ATmega 8, 168 dan 328 memiliki jumlah kaki yang sama yaitu 28 untuk kemasan DIP, mikrokontroler jenis ini banyak yang menjualnya relatif lebih murah dibanding dengan mikrokontroler lainnya. Dengan memiliki salah satu mikrokontroler dan ditambah dengan sedikit komponen sebenarnya sudah bisa berfungsi layaknya board arduino yang asli.

Dalam posting ini berisi tutorial cara membuat 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.

YouTube Preview Image

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.

YouTube Preview Image

Mudah-mudahan bermanfaat buat seluruh pengunjung blog. 

Last updated by at .

Avatar of Bambang Siswoyo

About Bambang Siswoyo

I am a college lecturer since 1988 at UB (University of Brawijaya) in the electronics department. My experience: Applications of Microprocessor system, Applications of Control System, Applications of Field Programmable Gate Array, Computer Programming in computer instrumentations. My hobby: Music especially playing the saxophone, hiking and exploring the countryside.
This entry was posted in Arduino, Elektronika, Mikrokontroler and tagged , , , . Bookmark the permalink.

28 Responses to Belajar arduino: membuat board sendiri ATmega8, 168 dan 328

  1. toyibin elektro says:

    kenapa pada saat burning “boot loader” Atmega328P-PU menggunakan USBASP selalu gagal ya?

    muncul keterangan:

    avrdude: error: programm enable: target doesn’t answer. 1
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    terimakasih pak

  2. fajar says:

    saya mau tanya pak , untuk IC ATmega8 itu masuk dalam ARDUINO jenis apa ya ?? apa IC ATmega8 bisa di pakai di minsys ARDUINO UNO ???

  3. tahan prahara says:

    Untuk menguji apakah bootloader bekerja dengan baik melalui serial port, apakah anda menggunakan Kabel USB to serial? atau serial port dari PC?
    klo menggunakan kabel USB to serial Anda menggunakan merek apa klo boleh tau, soalnya pernah beberapa kali saya beli kabel USB to serial gak berfungsi dengan baik kecuali yang merek BAFO…

    Terimakasih

    • saya menggunakan donggle usb to serial RS232. namun diperlukan untuk mengubah level tegangan RS232 menjadi digital menggunakan IC-MAX232. Kalau anda menggunakan USB to Serial TTL tidak diperlukan mengubah level tegangan ini karena telah kompatibel

  4. Beryl says:

    Pak mau tanya, setingan slow clock nya apa saja? fuse bit dkk nya. Mohon pencerahannya. Terima kasih

  5. jumar says:

    mas saya punya board panjerino(jipla’ane arduino uno)serta papan panel ukuran 16×32,nah yg sy tanyakan mas?saya mau uploud tulisan berjalan,udah saya cari muter2 di menu arduinonya kok gak ada ya,apa sayanya yang lom tau caranya uploud tulisannya apa gimana?mohon bantuannya mas?

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>