Categories
Mikrokontroler

Arduino-ku mendukung Berbagai Macam AVR ATMega!!

Apakah saya gak salah baca judul artikel ini? Ya! Anda tidak salah baca! Jika selama ini kita mengenal Arduino hanya mendukung tipe-tipe khusus dari AVR, seperti Mega8, Mega168, Mega328 atau Mega1280, maka dengan melakukan modifikasi pengaturan perangkat keras (hardware) ternyata Arduino (khususnya versi 019, unduh disini) bisa mendukung banyak mikrokontroler AVR ATMega, antara lain: atmega8, atmega16, attiny26, atmega32, atmega32u4, attiny45, atmega64, attiny85, atmega88p, atmega128, atmega165, atmega165p, atmega168, atmega169, atmega324p, atmega328p, atmega644, atmega644p, atmega645, atmega1280, atmega1281, atmega1284p, attiny2313, atmega2560, atmega2561, atmega3290p, atmega8515 dan atmega8535! Perhatikan gambar perbandingan berikut ini…

Gambar Arduino IDE 019 sebelum modifikasi

Gambar Arduino IDE 019 setelah modifikasi

Hah?! Banyak banget! Asik donk, apalagi jika Anda mengikuti ulasan saya tentang mensimulasikan Arduino menggunakan Proteus (baca disini), maka tidak perlu harus menggunakan papan Arduino lagi, sehingga AVR Anda juga tidak akan berkurang karena adanya bootloader, makin asik saja khan? Okey, lantas bagaimana caranya?

Categories
Mikrokontroler

Simulasi Arduino menggunakan Proteus VSM

Apakah mungkin melakukan Simulasi Arduino? Jawabannya mungkin! Jika Anda belum berniat untuk membeli Arduino Board (baik MiniDuino, Arduino Duemilanova maupun Arduino Mega atau bahkan board lainnya), maka Anda bisa melakukan simulasi Arduino menggunakan Proteus VSM. Lantas perangkat lunak apa saja yang diperlukan?

  1. Proteus VSM (kunjungi LabCenter untuk informasi lebih lanjut);
  2. Arduino versi 017 (mengapa tidak yang versi terbaru, saat artikel ini ditulis sudah tersedia versi 019, akan dijelaskan lebih lanjut nantinya);

Sebagai contoh dalam tulisan ini, akan disimulasikan menggunakan AVR ATMega328 dengan frekuensi kerja 16MHz (Arduino Duemilanova), perhatikan pemetaan pin-pin pada ATMega328 untuk Arduino sebagaimana ditunjukkan pada Gambar 1 dan 2.

Gambar 1 – Pemetaan PIN pada Mega **8 (termasuk 328)

Gambar 2 – Pemetaan PIN pada Mega 328 di Proteus VSM

Sebelum melangkah lebih lanjut saya jelaskan dulu mengapa masih menggunakan Arduino IDE 017, karena hasil kompilasi versi 017 (yaitu berkas-berkas HEX yang akan digunakan untuk simulasi) masih disimpan pada folder APPLET pada masing-masing folder SKETCH yang terkait, sehingga mencari-nya menjadi mudah. Sedangkan yang versi 018 keatas, hasil kompilasi disembunyikan pada folder TEMP khusus yang nantinya akan dihapus jika keluar dari Arduino IDE, sehingga mencari-nya agak susah, Anda harus cari sendiri dengan cara menekan SHIFT + compile dan mencatat folder penyimpanan kemudian menyalin-nya ke folder SKETCH Anda, sungguh merepotkan namun apa daya karena versi terbaru memang menawarkan update pustaka-pustaka dan perbaikan IDE yang canggih. Pilihan ada di tangan Anda!

Categories
buku Mikrokontroler

Tip dan Trik Mikrokontroler AT89 dan AVR: Tingkat Pemula hingga Lanjut

Buku ini merupakan kumpulan berbagai macam catatan atau artikel selama penulis melakukan berbagai macam penelitian dan eksperimen hingga tahun 2009. Banyak hal yang penulis dapatkan selama itu, terutama ilmu dan pengembangan aplikasi atau terapan mikrokontroler keluarga Atmel AT89 dan Atmel AVR. Semoga para pembaca juga mendapatkan hal yang sama serta bisa ikut serta dalam menyumbangkan acuan dalam bidang mikrokontroler AT89 dan AVR. Juga saya tambahkan sebuah artikel bagaimana cara mendapatkan penghasilan dengan menguasai teknologi mikrokontroler, sehingga diharapkan bisa menjadi ilmu bermanfaat bagi calon-calon Technopreneur di Indonesia, amin!

Bonus DVD senilai > Rp. 500.000,00

  • Video Belajar Bascom 8051 (AT89) senilai Rp. 500.000,00
  • Voucher Pelatihan Private Senilai Rp. 100.000,00
  • Software2 Pendukung
  • Listing Program dalam buku
  • Berbagai ebook GRATIS

Testimonial

saya tersugesti, klo baca bukunya pak agfi, saya baru bisa paham… padahal saya juga uda punya buku mikro yg lain, spt nya gak enak, klo gak baca punya pak agfi, aneh memang…
Teguh Budiman

Waduh, emang sip banget penjelasannya pak Agfi, salah satu yang saya kagumi dari pak Agfi adalah kalo pak Agfi njelasin sesuatu pasti dengan ringkas, padat, berisi, to the point dan mudah di mengerti.. saya juga senang baca buku-bukunya pak Agfi lho, nah.. itu adalah tanda-tanda dari dosen, entrepreneur dan sekaligus penulis yang profesional..| salut dah buat pak Agfi.. Seandainya sebagian besar dosen bisa aktif seperti pak Agfi, pasti Indonesia makin maju neh..
Herlambang (http://indomicron.co.cc/)

Pak Agfi, salut buat jiwa “technopreneur” yang kuat dan inovatif. Saya bisa lihat di tulisan – tulisan Bapak. Btw, saya sendiri juga sedang belajar untuk mengembangkan bidang otomasi, esp. PLC dan SCADA
Handy (http://learnautomation.wordpress.com/)

alhamdulillah dengan seizin allah melalui perantara bpk akhirnya skripsi saya berhasil dan sesuai harapan.makasih ya pak atas informasi dan tutorial yang bapak berikan.suatu saat klu saya ada pertanyaan lg untuk mslh mc yg lain tlng dibntu lg ya pak.semga bpk semkn sukses amin.
salut n sukses slalu utk bpak.skali lagi makash ya bpk agfi.
Putra Adinda

PESAN SEKARANG!

Categories
Mikrokontroler

Pengurutan Data menggunakan Mikrokontroler AT89 (8051)

Bagi Anda yang saat ini sedang mengalami kesulitan bagaimana membuat program untuk mengurutkan data yang sudah tersimpan di dalam memori RAM, Anda sedang berada di artikel yang tepat, karena kali ini saya membahas sebuah program (relatif) kecil dalam bahasa Assembly untuk Mikrokontroler AT89 atau kompatibel 8051 untuk mengurutkan data.

Okey, mari kita mulai dengan beberapa deklarasi di awal program….

	ORG  	00H
SIZE  	EQU	10
ARRAY  	EQU 	50H   	;Data starting address
FLAG  	BIT   	00H   	;Exchange logo

Program diawali dengan menentukan alamat awal program yaitu mulai 0x00 (dengan instruksi ORG), kemudian diikuti dengan deklarasi beberapa variabel, yaitu SIZE yang merupakan jumlah data yang akan diurutkan, ARRAY yang merupakan alamat awal data dan sebuah variabel bit FLAG yang akan digunakan sebagai tanda untuk pertukaran data (data exchange).

Categories
Mikrokontroler

Arduino Duemilanove dengan ATMega 328

Arduino adalah sebuah kit elektronik open source yang dirancang khusus untuk memudahkan setiap orang dalam belajar membuat robot atau mengembangkan perangkat elektronik yang dapat berinteraksi dengan bermacam-macam sensor dan pengendali.

Arduino is a tool for making computers that can sense and control more of the physical world than your desktop computer. It’s an open-source physical computing platform based on a simple microcontroller board, and a development environment for writing software for the board.

Arduino can be used to develop interactive objects, taking inputs from a variety of switches or sensors, and controlling a variety of lights, motors, and other physical outputs. Arduino projects can be stand-alone, or they can be communicate with software running on your computer (e.g. Flash, Processing, MaxMSP.) The boards can be assembled by hand or purchased preassembled; the open-source IDE can be downloaded for free.

The Arduino programming language is an implementation of Wiring, a similar physical computing platform, which is based on the Processing multimedia programming environment.

(Kutipan dari http://www.arduino.cc)

Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (librariesArduino.

Yang terbaru adalah Arduino Uno, berikut gambarnya (ada versi USA dan luar USA – Genuino Uno versi http://arduino.cc)

Anda dapat melihat lebih jauh tentang Arduino di website http://www.arduino.cc maupun di http://www.arduino.org, di sana tersedia software Arduino yang dapat di download gratis baik untuk platform Windows, Mac, maupun Linux. Juga tersedia panduan, contoh-contoh program dan library-library yang memudahkan kita berinteraksi dengan bermacam-macam komponen elektronik, hardware dan software.

Categories
Mikrokontroler

Pemrograman dan Simulasi Mikrokontroler AT89 dengan M-IDE Studio MCS-51

Setelah debut best seller buku saya “Belajar Mikrokontroler AT89C51/52/55, Edisi 2” beberapa tahun belakangan ini, banyak yang menanyakan tentang bagaimana melakukan simulasi sedemikian hingga bisa digunakan untuk belajar pemrograman MIkrokontroler AT89, khususnya dalam bahasa Assembly.

Caranya mudah saja, dan hal ini sudah saya sebutkan atau jelaskan dalam buku saya tersebut, yaitu menggunakan TS Control Emulator. Dimana mengunduhnya? Gampang saja, silahkan mengundung program M-IDE Studio MCS-51 disini, yang terbaru sudah dilengkapi (integrasi) dengan TS Control Emulator.

Setelah Anda lakukan instalasi, jalankan program M-IDE tersebut, sebagai contoh tuliskan program assembly pada Gambar 1, yaitu sebuah program yang digunakan untuk membersihkan RAM (dengan memberikan 0xFF pada tiap-tiap lokasi RAM).

Gambar 1

Categories
Mikrokontroler

Flowcode AVR 3.0: Menghitung Sapi!

Kali ini kita akan belajar membuat program menggunakan Flowcode AVR untuk menghitung sapi-sapi kita yang masuk kandang. Caranya bagaimana? Kita gunakan sensor detektor sapi melalui PORT A (yang disimulasikan menggunakan pushbutton) untuk mendeteksi sapi-sapi yang masuk ke kandang. Sensor ini akan memicu proses perhitungan jumlah atau cacah sapi. Sementara ini hasil perhitungan ditampilkan melalui LED pada PORT B, bisa juga melalui 7segmen biar keren, tapi itu entar aja dech.

Silahkan membuat kerangka diagram alir menggunakan acuan Gambar 1. Pada blok Calculation masih kita kosongkan…

Gambar 1

Okey, langkah selanjutnya lakukan klik-ganda pada blok Calculation, sehingga dimunculkan kotak dialog yang ditunjukkan pada Gambar 2.

Gambar 2

Ganti nama “Calculation” (pada Display Name) menjadi “Total Sapi” (tanpa tanda petik). Kemudian lanjutkan menuliskan persamaan untuk menghitung total sapi sebagai berikut: TOTAL = TOTAL + SAPI (pada bagian isian Calculations). Perhatikan Gambar 3.

Gambar 3

Sensor detektor sapi disimulasikan menggunakan tombol tekan atau pushbutton yang dipasang pada PORTA.0. Jika tombol ditekan maka akan menghasilkan nilai 1 yang kemudian disimpan ke dalam variabel SAPI. Dengan demikian, penekanan tombol pada PORTA.0 akan menambah nilai TOTAL sebesar 1. Jika tidak ditekan, ya artinya nilai pada variabel SAPI tetap 0 (nol) dan tidak merubah nilai dari TOTAL, demikian seterusnya.

Klik Variables pada kotak dialog Calculations untuk mulai mendefinisikan variabel-variabel yang terkait. Akan ditampilkan kotak dialog seperti pada Gambar 4.

Gambar 4

Sekarang kita lanjutkan dengan mendefinisikan variabel-variabel yang terkait tersebut. Variabel yang akan kita definisikan adalah TOTAL dan SAPI. Penggunaan kedua variabel ini sudah saya jelaskan sebelumnya, jika belum paham silahkan ditengok lagi, nanti baru kembali lagi kesini…

Categories
Mikrokontroler

Downloader untuk AT89S dan AVR!

Jika sebelumnya banyak yang bertanya tentang downloader untuk AT89S, maka, alhamdulillah, saya sudah mendapatkan sumber informasi untuk rangkaian serta perangkat lunak downloader mikrokontroler AT89 dan sekaligus AVR.

Berikut ini rangkaian (gratis) yang dapat digunakan untuk mendownload program-program AT89S Anda melalui USB. Yang dibutuhkan adalah mikrokontroler AVRTMega8 sebagai kontroler-nya (sama atau mirip dengan USBASP).

ATMega8 memang tidak dilengkapi dengan fasilitas USB sebagaimana seri-seri AT90USB dari Atmel, sehingga program atau firmware USB telah disiapkan (lihat pada bagian Unduh). Firmware ini dibuat oleh Fischl dan tersedia di http://www.fischl.de/usbasp/, hanya saja firmware ini hanya mendukung untuk downloade mikrokontroler AVR saja (lihat ulasan-nya disini), sehingga perlu dimodifikasi sehingga bisa mendukung mikrokontroler seri AT89S.

Categories
Mikrokontroler

CodeVision dan Pustaka LCD: Sebuah contoh sederhana

Ada pertanyaan masuk ke saya, bagaimana program untuk tampilan ke LCD (misalnya tipe LCD 2×16 karakter) menggunakan CodeVision. Maka pada kesempatan kali ini saya bahas jawaban dari pertanyaan itu.

Yang perlu Anda ketahui bahwa CodeVision AVR sudah menyediakan pustaka untuk antarmuka LCD, hanya saja, Anda harus menyesuaikan rangkaian dengan ketentuan yang dimiliki CodeVision, perhatikan ketentuan antarmuka LCD dari CodeVision berikut ini (PORT mewakili PORT apa saja yang Anda gunakan untuk antarmuka LCD dengan AVR), atau perhatikan Gambar 3:

  • PORT.0 – pin RS
  • PORT.1 – pin R/W
  • PORT.2 – PIN EN
  • PORT.3 – tidak dipakai
  • PORT.4 – pin D4
  • PORT.5 – pin D5
  • PORT.6 – pin D6
  • PORT.7 – pin D7

Beberapa fungsi pada pustaka LCD milik CodeVision antara lain:

  • void _lcd_ready(void);
  • void _lcd_write_data(unsigned char data);
  • void lcd_write_byte(unsigned char addr, unsigned char data); – menuliskan sebuah BYTE ke generator karakter LCD atau RAM tampilan
  • unsigned char lcd_read_byte(unsigned char addr); – membaca sebuah BYTE dari generator karakter LCD atau RAM tampilan
  • void lcd_gotoxy(unsigned char x, unsigned char y); – meletakkan kursor pada x (kolom, 0..39) dan y (baris,0..3)
  • void lcd_clear(void); – membersihkan layar LCD
  • void lcd_putchar(char c);
  • void lcd_puts(char *str); – menuliskan string STR di dalam SRAM ke LCD
  • void lcd_putsf(char flash *str); – menuliskan string STR di dalam flash ke LCD
  • unsigned char lcd_init(unsigned char lcd_columns); – inisialisasi kontroler LCD
  • void lcd_control (unsigned char control); – menuliskan BYTE kontrol ke LCD
Categories
Mikrokontroler

Flowcode AVR 3.0: Aplikasi dengan LCD 2×16

Wow enaknya belajar pemrograman aplikasi mikrokontroler AVR menggunakan Flowcode 3 for AVR sebagaimana sudah saya tulis artikel-nya sejak awal. Kali ini dicoba membuat aplikasi dengan tampilan LCD 2×16, hanya sekedar menampilkan dua kalimat, masing-masing di baris-1 dan baris-2, diagram atau flow-nya ditunjukkan pada Gambar 1 (termasuk hasil simulasinya).

Gambar 1

Hasil kompilasi kedalam Bahasa C saya tunjukkan satu persatu. Pada bagian pertama, sebagaimana ditunjukkan pada Gambar 2, merupakan deklarasi fungsi-fungsi makro untuk menangani LCD (baris 66 – 74). Terdapat 9 macam fungsi makro LCD dan hanya 3 yang akan digunakan dalam program, yaitu:

  • FCD_LCDDisplay0_Start(), digunakan untuk inisialisasi LCD;
  • FCD_LCDDisplay0_PrintString(char* String, char MSZ_String), digunakan untuk menuliskan string, dan
  • FCD_LCDDisplay0_Cursor(char x, char y), digunakan untuk menempatkan kursor dengan posisi kolom,baris).

Gambar 2