Sabtu, 10 September 2011

Membuat karakter Lover di LCD

Dengan Bascom AVR juga bisa menampilkan karakter khusus menggunakan LCD Designer pada Tools, contohnya membuat karakter gambar “Love”:

lcd love
Setelah diklik OK akan muncul:

Deflcdchar ?,32,10,31,31,14,4,32,32 ‘replace ? with number (0-7)

Ganti “?” dengan angka 0-7, misalnya diganti angka 1:

Deflcdchar 1,32,10,31,31,14,4,32,32

maka cara memanggilnya:

Lcd “Karakter Love: “; chr(1)

karakter love sebagai chr(1).

lcd2

Text Bergerak di LCD

Berikut listing program untuk menampilkan tulisan pada LCD 16×2 dengan Bascom AVR:

  1. $regfile = “m32def.dat” ‘mikrokontroler ATMega32
  2. $crystal = 11059200
  3. Config Lcdpin = Pin, Db4 = Portc.4, Db5 = Portc.5, Db6 = Portc.6, Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 ‘Pin-pin yg dipakai
  4. Config Lcd = 16 * 2 ‘Tipe LCD 16×2
  5. Dim Y As Integer
  6. Cls ‘Bersihkan layar LCD
  7. Cursor Off ‘Cursor disembunyikan
  8. Locate 1 , 2 ‘LCD Kolom1, baris 2
  9. Lcd “Test LCD diam”
  10. Locate 2 , 4
  11. Lcd “Bascom AVR”
  12. Wait 1 ‘Tunggu 1 detik
  13. cls
  14. Locate 1 , 1
  15. Lcd ” TEST LCD”
  16. For Y = 1 To 20
  17. Shiftlcd Left ‘Menggerakkan LCD ke kiri
  18. Waitms 200
  19. Next
  20. Cls
  21. Locate 2 , 1
  22. Lcd ” BERGERAK KE KIRI”
  23. For Y = 1 To 20
  24. Shiftlcd Left
  25. Waitms 200
  26. Next

LED dan Tombol

    Dalam contoh ini kita akan berlatih merubah kongifurasi BASCOM AVR sesuai dengan minsys AVR yang kita gunakan dan membuat program sederhana untuk menyalakan LED, menggeser nyala LED dan

    membaca penekanan tombol.

    1. Membuat Project Baru:
    Klik File—>New2.Menentukan konfigurasi sistem(chip, baudrate, I/O dll.):

    A. Options—> Compiler

    clip_image002

    B. Chip: menentukan chip AVR yang digunakan, karena saya memakai DI-Smart AVR 16 maka saya gunakan m16def.dat clip_image004

    C.Options—>Programmer: menentukan jenis programmer/downloader yang digunakan. Di sini saya menggunakan usb downloader dengan firmware AVR910.

    clip_image006

    3. Test setting programmer:

    untuk mengetahui settning programmer udah sesuai apa belum klik Program—>Send to Chip—> Manual Program

    clip_image008

    Pilih Chip—>Identify. Jika setting sudah benar maka akan tampil jenis chip yang kita gunakan dan propertiesnya

    clip_image010

    clip_image012

    4. Membuat code program untuk menggeser nyala LED ke kanan:

    $regfile = "m16def.dat"

    $crystal = 11059200

    Config Portc = Output

    Portc = &B1111_1110

    Do

    Rotate Portc , Right , 1

    Waitms 500

    Loop

    End
    Tekan F7 untuk men COMPILE.

    Jika tidak ada ERROR tekan F4, lalu pilih ERASE and PROGRAM CHIP

    clip_image014

    clip_image016

    Gambar di atas adalah tampilan program saat di running.

    A. Pembahasan program:

    $regfile = "m16def.dat"

    Menentukan chip AVR yang kita gunakan, saya menggunakan ATMEGA16. Menggunakan chip AVR yang lain harus merubah baris ini dan juga konfigurasi compiler yang dibahas pada point 2.B.

    Misal kita menggunakan ATMEGA8 maka kita tulis $regfile = "m8def.dat"

    $crystal = 11059200

    Nilai yang diisikan disini sesuai crystal/ xtal yang dipakai. Saya menggunakan crystal 11,0592MHz.

    Config Portc = Output

    PORTC di gunakan sebagai output. Saya menggunakan PORTC sebagai output karena LED-LED di board SMART AVR 16 SYSTEM terhubung ke PORTC

    Portc = &B1111_1110

    Nilai PORTC di set ke 1111 1110. Ini berarti PORTC.7—PORTC.1 nilainya = 1=high=5volt.

    Sedangkan POTC.0 nilainya = 0 = low = 0 volt.

    Berarti LED yang terhubung ke PORTC.0 akan menyala. Perlu diketahui LED-LED pada board Smart AVR System dirangkai active low artinya jika di beri Logic Low / teg. 0 volt maka LED akan active/menyala.

    Do

    Rotate Portc , Right , 1

    Waitms 500

    Loop

    End

    Baris-baris program yang berada di antara Do --- Loop merupakan baris –baris program utama/ main program yang akan di kerjakan terus menerus.

    Rotate Portc , Right , 1

    Menggeser nilai pada PORTC ke KANAN sebanyak 1kali. Di awal program nilai PORTC di set ke 1111_1110 jika digeser kekanan 1 kali maka nilainya menjai 0111_1111 berarti PORTC.7 =Low= 0 volt sehingga LED yang terhubung ke port ini akan menyala.

    Waitms 500

    Delay 500ms, selama waktu ini microcontroller tidak melakukan apa2.

    Loop

    Perintah untuk mengulang program ke baris DO, sehingga program untuk menggeser LED akan dijalankan terus.

    5. Membuat code program untuk membaca tombol

    Program ini bertujuan untuk membaca penekanan tombol untuk merubah nyala led.

    Pada board Smart AVR System Tombol 1 terhubung ke PIND.2, Tombol 2 terhubung ke PIND.3

    Jika tombol 1 ditekan maka nyala LED akan begeser ke kanan.

    Jika tombol 2 ditekan maka nyala LED akan bergeser ke ke kiri

    $regfile = "m16def.dat"

    $crystal = 11059200

    Config Portd.2 = Input

    Config Portd.3 = Input

    Portd.2 = 1

    Portd.3 = 1

    Config Portc = Output

    Portc = &B1111_1110

    Do

    If Pind.2 = 0 Then Rotate Portc , Right , 1

    If Pind.3 = 0 Then Rotate Portc , Left , 1

    Waitms 500

    Loop

    End
    Tekan F7 untuk men COMPILE.

    Jika tidak ada ERROR tekan F4, lalu pilih ERASE and PROGRAM CHIP

    A. Pembahasan program:

    Config Portd.2 = Input

    Config Portd.3 = Input

    PORTD.2 dan PORTD.3 di setting sebagai input

    Portd.2 = 1

    Portd.3 = 1

    Memberi nilai 1/ high pada PORTD.2 dan PORTD.3, karena sebelumnya port-port ini disetting sebagai input maka baris program ini akan mengaktifkan internal pull up. Jika internal pull up tidak diaktfikan maka kondisi port input akan mengambang menyebabkan nilai pembacaan kacau.

    If Pind.2 = 0 Then Rotate Portc , Right , 1

    Jika PIND.2 = 0 maka PORTC akan di geser ke kanan 1kali. PIND.2 akan bernilai 0 jika tombol 1 ditekan.

    If Pind.3 = 0 Then Rotate Portc , Left , 1

    Jika PIND.3 = 0 maka PORTC akan di geser ke kiri 1kali. PIND.3 akan bernilai 0 jika tombol 2 ditekan.

Sabtu, 03 September 2011

Animasi LED dengan Basic

Setelah sebelumnya membuat rangkain LED dengan atmega8535 lengkap dengan downlodernya, sekarang kita akan belajar bahasa Basic untuk menyalakan LED tersebuat. Download terlebih dahulu program Bascomp-Avr, dan instal di komputer anda. Perhatikan petikan listing program di bawah ini.

$regfile = "m85835.dat" 'ini untuk menyatakan IC yang digunakan
$crystal = 12000000 'kristal yang digunakan
portc = output 'menyatakan bahwa port c digunakan sebagai output

portc=1 'LED nyala semua
wait=5 'tunggu 5 detik
portc=0 'LED nyala mati semu
wait=5 'tunggu 5 detik

Nah anada harus mengerti bilangan biner terlebih dahulu. Contoh 111110000 berati 4 buah Led nyala dan 4 buah led mati, 10101010 berarti led nyala dan mati berselingan, pokoknya angka 1 berarti nyala dan 0 berarti mati,

Memulai Belajar dengan Atmega8535




Setelah sebelumnya mempelajari Atmega8535 sekarang kita akan memulai membuat rangakaian minimum, yaitu menyalakan 8 buah led.
Yang kita perlukan adalah downloader dan sistem minimum Atmega8535 untuk menyalakan Led. Gambar yang paling atas adalah rangkaian atmega8535 untuk menyalakan Led, kemudian rangkaian downloder dengan parallel prot dan serial port. Silahkan pilih sendiri mana yang digunakan. Lihat sostingan selanjutnya untuk listing programnya.

Atmega 8535

Mikrokontroler keluaran ATMEL bisa diprogram dengan menggunakan bahasa Basic, oleh karena itu saya pilih Mikrokontroler dari ATMEL, ada banyak mikrokotroler keluaran ATMEL ini salah satunya Attynity 2313, AtMega 8, Atmega 16, Atmega 8535 dsb. Nah hati saya jatuh ke Atmega 5835. Untuk kalian yang ingin belajar gak perlu bingung, tingal beli Micro Chip atau yang umum di sebut IC dari beberapa yang sebutkan di atas, soket IC sesuai dengan jumlah kaki IC, kemudian kristal. Harga IC nya di sebuah toko Elektronik Online untuk atmega 8535 adalah Rp 65.000, murah kan? Disamping ini adalah Chip dari Atmega 8535. Mempunyai 40 pin. Yang saya suka Chip ini memiliki empat port A-D yang masing-masing port memiliki 8bit yang bisa digunakan sebagai input ataupun output. Kemudian IC ini memiliki pin ISP yaitu pin untuk download program tanpa memakai downloader cukup dengan rangkain sedikit kita bisa membuat downloader sederhana untuk IC ini. Atmega 8535 bisa duganakan tanpa sebuah kristal karena sudah terdapat kristal internal 8Mhz, tetapi anda bisa menambahkan kristal eksternal sampai 16Mhz kalo tidak salah untuk menambah kecapatan dalam eksekusi program.
Saran saya, beli IC atmega 8535 + Crystal 12Mhz, sudah cukup untuk belajar.
Kemudian buka postingan selanjutnya untuk membuat rangkaian minimum.

Ayo belajar Mikrokontroler

Bismillah hirohmanirrohim.....
Kalo sebelumnya saya selalu posting tentang proyek-proyek elektronika analog, karena hoby dan kemampuan saya baru sampai saya. Saat ini saya mengajar di salah satu sekolah di Cibiuk-Garut
. Kenapa saya cerita tentang ini? Nah, saya ingin setiap pulang sekolah anak-anak yang mempunyai minat yang kuat seperti saya bisa belajar bersama saya, dan sebetulnya saya juga baru belajar dengan namanya mikrokontroler. Dengan bermodalkan pengetahuan yang sedikit tentang pengmrograman tepatnya Visual Basic, dan elektro saya nekad untuk belajar Mikrokontroler otodidak.
Mikrokontroler menurut definisi saya sendiri yang singkat yaitu sebuah Micro Chip bisa di program sesuai keinginan kita. Nah untuk memprogramnya kita harus mengerti tentang bahasa pemrograman. Biasa bahasa yang digunakan adalah Asembly, Basic, C++. Tadi saya telah cerita di atas, pemrograman yang saya pernah pelajari dan di anggap paling mudah dimengerti dibandingkan dengan bahasa pemrograman yang lainnya yaitu Visual Basic, pemrograman yang dapat digunakan untuk memprogram sebuah mikrokontroler salah satunya adalah Basic yang mempunyai kesamaan dalam struktur program Visual Basic, sedikit berbeda dengan Basic, tapi yang intinya VB dan Basic adalah satu keluarga. Selanjutnya klik postingan tentang Atmega 8535 supaya anda mengerti dengan mudah dan bertahap.