Categories
Mikrokontroler

Flowcode AVR 3.0: Aplikasi Masukan/Luaran (I/O) Sederhana

Kali ini Flowcode AVR kita gunakan untuk mencoba membuat sebuah aplikasi sederhana yang melakukan pembacaan masukan di PORT A kemudian menampilkan hasil pembacaan tersebut, yang sebelumnya melalui suatu variabel DATANYA, ke PORT B. Rancangan Flowcode AVR-nya ditunjukkan pada Gambar 1.

Gambar 1

Kemudian kita kompail dan disimulasikan hasilnya (juga) bisa dilihat pada Gambar 1 tersebut. Perhatikan bahwa tidak semua masukan PORT A kita buat berlogika 1, hanya A7, A5, A3 dan A1. Hasilnya juga tidak semua LED pada PORT B menyala, hanya sesuai dengan PORT A saja, yaitu B7, B5, B3 dan B1. Nah sekarang pertanyaannya:

Bagaimana dengan hasil kompilasi dalam bahasa C-nya (juga dalam bahasa ASM-nya)?

Categories
Mikrokontroler

Aplikasi Pushbutton Mikrokontroler ATMega32 dengan Assembly

Jika pada kesempatan sebelumnya saya bahas tentang animasi LED menggunakan ASsembly dan C, maka kali ini kita akan belajar tentang konsep masukan menggunakan pushbutton, dalam dunia aplikasi, masukan digital ini bisa berasal dari berbagai macam sensor.

Rangkaian yang kita gunakan mirip dengan animasi LED, hanya saja sekarang kita tambahkan 2 buah pushbutton yang dihubungkan ke PORTD.0 dan PORTD.1, perhatikan Gambar 1.

Gambar 1

Selanjutnya kita buat programnya dengan diagram alir yang ditunjukkan pada Gambar 2.

Gambar 2

Program selengkapnya sebagai berikut:

Categories
Mikrokontroler

Animasi LED mikrokontroler ATMega32 dengan Assembly dan C

Artikel ini sengaja saya tulis sebagai awal pembelajaran bagaimana membuat sebuah program aplikasi mikrokontroler AVR (khususnya ATMega32 dengan frekuensi kristal 7,3728MHz) untuk membuat animasi LED berjalan dari pin 0 hingga 7.

Rangkaian yang digunakan ditunjukkan pada Gambar 1, sengaja LED disusun secara CA atau common Anoda, sehingga untuk menyalakan LED harus dikirimkan logika ‘0’.

Untuk kompilasi digunakan AVR Studio versi 4.0 (silahkan unduh GRATIS dari http://www.atmel.com). Program kita awali dengan beberapa macam deklarasi, keterangan sengaja saya masukkan dalam listing program untuk memudahkan pembelajaran langsung dari listingnya, perhatikan instruksi yang diawali dengan ‘.’ merupakan directive dari AVR Studio, bukan instruksi assembly mikrokontroler AVR:

Categories
Pembelajaran

Artikel apa saja yang perlu saya tulis di 2010?

Sebelumnya saya banyak mengucapkan terima kasih, jazakumullah atas partisipasi rekan2 semua penggemar website saya dalam diskusi di komentar-komentar tiap-tiap artikel…

Ada baiknya, saya memohon keikhlasan Anda untuk memberikan saran-saran kepada saya, artikel-artikel apa saja yang perlu saya tulis untuk membantu dan bermanfaat bagi Anda , walaupun saya juga tidak bisa janji memenuhi semua, namun minimal ada rencana-rencana artikel yang bisa saya terbitkan di sepanjang tahun 2010 nantinya, selain dari rencana-rencana artikel dari saya pribadi…

Sebelum dan sesudahnya saya ucapkan ribuan bahkan jutaan bahkan tak berhingga terimakasih kepada Anda yang sudah berkenan menuliskan saran-saran melalui komentar di artikel ini…

Monggo, silahkan…

Categories
Mikrokontroler

LED Blink! AT89 (AT89LS53) vs. AVR (ATMega32)

Setelah Anda mengikuti artikel saya tentang belajar membuat program atau aplikasi mikrokontroler AT89/AVR (Membuat Aplikasi Mikrokontroler AVR/AT89: Khusus Pemula!), rasanya tidak afdol jika saya tidak atau belum memberikan contoh kasus sangat sederhana, untuk memberikan gambaran begitu mudahnya kita membuat aplikasi mikrokontroler!

Kasus!

Di sebuah kampung Ngebut Benjut ternyata masih banyak orang-orang mengendari sepeda motornya dengan ngebut, untuk itu pak RW mengundang mas Yusi untuk menyelesaikan masalah ini, yaitu membuatkan sebuah tanda yang berupa LAMPU BERKEDIP DENGAN SELANG WAKTU SETENGAH DETIK-an.

Solusi: Diagram Alir!

Sebenarnya solusi tanpa Mikrokontroler sangat mudah dilakukan, lha wong cuman lampu berkedip (LED) dengan durasi setengah detik-an, cuman karena diminta menggunakan mikrokontroler maka dengan segera mas Yusi membuat sebuah diagram alir untuk solusi kasus tersebut, berikut diagram alir yang telah dibuat oleh mas Yusi, perhatikan bahwa diagram alir tidak boleh menunjukkan suatu bahasa pemrograman tertentu…

Gambar 1

Nah, begitu kata mas Yusi, sekarang aku mau mengimplementasikan-nya dengan mikrokontroler, namun pake mikrokontroler yang mana ya? Keluarga AT89 atau AVR?

Categories
Mikrokontroler

Membuat Aplikasi Mikrokontroler AVR/AT89: Khusus Pemula!

versi 1.2 (14 Desember 2009)

Banyak komentar,pertanyaan dan saran masuk melalui SMS, email, omong langsung agar saya membuat sebuah tulisan atau artikel tentang bagaimana cara membuat aplikasi mikrokontroler AVR maupun AT89 dari nol. Okey dech, kali ini saya berikan jawabannya…

Baiklah, untuk memudahkan saya menjelaskan dari ‘nol’, ada baiknya Anda perhatikan dulu diagram alir pada Gambar 1 (jika kurang jelas, silahkan di-klik aja yach)…

Gambar 1

Nach, berdasar diagram alir tersebut, semuanya berawal dari MASALAH, atau bisa juga Anda sebut PROYEK, KASUS atau apa saja yang Anda suka selama artinya adalah sesuatu yang ingin dicari, dibuat solusinya. Lebih tepatnya, pada tahap awal yang perlu dilakukan adalah IDENTIFIKASI MASALAH, persis atau detilnya bagaimana, misalnya…

Categories
Mikrokontroler

Mengenal System Clock pada Mikrokontroler AVR

Tulisan ini sengaja saya buat karena beberapa waktu yang lalu dua mikrokontroler saya (semuanya ATMega32, masing-masing dalam kemasan SMD dan PDIP) menjadi korban ketidak-tahuan saya tentang otak-atik System Clock atau FUSE bit pada mikrokontroler AVR.

Perlu diketahui bahwa setiap mikrokontroler AVR memiliki fasilitas untuk memilih sumber clock atau detak dengan banyak alternatif pilihan. Berbeda dengan keluarga AT89, keluarga AVR memberikan opsi pilihan sumber clock untuk flkesibilitas penggunaan, bukan untuk menyulitkan penggunaan. Jika siapapun Anda yang saat ini sedang terlibat dengan aplikasi-aplikasi mikrokontroler AVR dan tidak pernah peduli dengan system clock, atau dengan kata lain tidak pernah otak-atik FUSE bit, dipastikan kristal yang Anda pasang berapapun aja nilainya tidak ada gunanya sama sekali! Loch kok bisa? Ya karena default dari pabriknya (http://www.atmel.com) adalah sesuai dengan paragraf yang mereka tulis di datasheet-nya:

The device is shipped with CKSEL = “0001” and SUT = “10”. The default clock source setting is therefore the 1 MHz Internal RC Oscillator with longest startup time. This default setting ensures that all users can make their desired clock source setting using an In-System or Parallel Programmer.

Okey? Sudah jelas? Hanya 1 MHz internal saja clock-nya, kalau gak percaya silahkan cabut saja kristal Anda dan biarkan mikrokontroler AVR Anda bekerja dengan baik tanpa kristal (beberapa teman yang saya sarankan hal tersebut sempat kaget juga). Jadi sudah capek-capek ngitung reload, timer dan lain sebagainya ternyata hanya bekerja di 1 MHz saja secara internal. So, bagaimana caranya agar bisa menggunakan kristal eksternal atau internal yang lebih besar dari 1 MHz?

Categories
Mikrokontroler

Peredupan LED RGB menggunakan ATMega8

Deskripsi

LED RGB adalah LED yang berisikan tiga warna LED yang terintegrasi menjadi satu lampu LED. LED RGB mengandung warna RED (merah), GREEN (hijau), dan BLUE (biru). Dengan tiga warna ini, Anda bisa membuat berbagai macam kombinasi warna. Jika menggunakan PWM 8-bit, maka 256 x 256 x 256 macam kombinasi bisa kita buat, artinya LED RGB bisa memberikan sekitar 16,777 juta warna dan 256 kecerahan yang berbeda. Jika ketiga LED dalam kondisi kecerahan penuh, maka akan terbentuk cahaya putih, demikian juga jika semua mati akan menghasilkan cahaya hitam dalam kegelapan, he he he bercanda…

redup LED RGB

LED RGB yang digunakan disini memiliki 4 kaki, masing-masing untuk warna R, G dan B dan satu lagi untuk GND atau katoda. LED merah bekerja dengan tegangan 2V, sedangkan biru dan hijau masing-masing 3,5V. Masing-masing LED membutuhkan arus sekitar 20mA, dengan demikian konsumsi total arusnya sekitar 60mA.

rangkaian LED RGB
rangkaian LED RGB
Categories
Mikrokontroler

Tampilan Scrolling pada Dot Matrix

Deskripsi

Aplikasi yang kita bahas kali ini adalah tampilan Dot Matrix Scrolling. Sebuah tampilan dot matriks terdiri dari 5×7 LED dengan susunan 5 kolom dan 7 baris. Tampilan dikendalikan menggunakan mikrokontroler AVR (ada beberapa versi yang disediakan: ATMega8, ATMega16 dan ATTiny2313). Baris dihubungkan ke PORTB pada mikrokontroler, sedangkan kolom dihubungkan ke PORTD, sehingga nantinya akan terbentuk karakter yang diinginkan.

Categories
Mikrokontroler

Termometer LED Digital

Deskripsi

Aplikasi ini digunakan untuk menampilkan suhu pada tampilan 3×7-segmen, suhu yang diukur antara -9,5 hingga 99 derajat Celsius dengan kenaikan 0,5 derajat Celcius, atau dari 0 hingga 210 derajat Fahrenheit dengan kenaikan 1,0 derajat. Mengapa menggunakan 7-segmen? Karena bisa dilihat dalam kondisi gelap atau malam hari.

Emping TCN75 dari MicroChip digunakan sebagai sensor suhu. TCN75 menggunakan antaramuka serial 2 kabel (2-wire serial interface) atau yang lebih dikenal dengan I2C, yang merupakan bus dwi-arah dengan kecepatan hingga 400kbps, 8 (delapan) piranti yang sama bisa dikendalikan melalui bus ini. Pada artikel aplikasi ini hanya sebuah piranti saja yang terhubungkan ke mikrokontroler ATTiny2313. TCN75 juga memiliki termostat terprogram yang terintegrasi, yang dalam aplikasi ini tidak digunakan.

gambar termometer LED digital
termometer LED digital (ATTiny2313)