Monday, June 11, 2012

Port ADC dengan AVR-ATMEGA8


Belajar microcontroller
Menggunakan Port ADC dengan
 AVR-ATMEGA8


Kali ini saya sharing pengalaman saya dengan  mikrokontroller atmega8, saya sangat penasaran yang membuat chip ini sangat terkenal. Padahal untuk aplikasi yang contohnya bisa di download pada halaman internet bisa dilakukan dengan MCS51 yang bisa kita katakana harganya lebih murah dari IC Atmega.

Ternyata setelah beberapa kali mencoba dan mempelajarinya memang harga g bohong… mungkin jika kita menggunakan assembler untuk menulis programnya, ic ini tidak terlalu menarik bikin puusing…. J. Saya menggunakan bahasa pascal yang baru – baru ini dikeluarkan (eh salah baru saya temukan di internet) “mikropascal for AVR” ada versi freenya kok tapi Cuma bisa compile 2K ROM cukup untuk belajar aja. Dan dari fungsinya inilah(ADC) yang paling menarik bagi beberapa designer selain factor kecepatannya.

Oke kita mulai saya menggunakan schema seperti ini :


Bisa dilihat saya menggunakan potensio sebagai masukan ADC agar nantinya input akan bermain dari 0 – 5 volt dan hasilnya akan ditampilkan lewat LCD standard 1 baris.


Sekarang kita lihat firmwarenya :

program ADC_on_LEDs;

// LCD module connections
var LCD_RS : sbit  at PORTD0_bit;
var LCD_EN : sbit  at PORTD1_bit;
var LCD_D4 : sbit  at PORTD5_bit;
var LCD_D5 : sbit  at PORTD6_bit;
var LCD_D6 : sbit  at PORTD7_bit;
var LCD_D7 : sbit  at PORTB0_bit;

var LCD_RS_Direction : sbit at DDD0_bit;
var LCD_EN_Direction : sbit at DDD1_bit;
var LCD_D4_Direction : sbit at DDD5_bit;
var LCD_D5_Direction : sbit at DDD6_bit;
var LCD_D6_Direction : sbit at DDD7_bit;
var LCD_D7_Direction : sbit at DDB0_bit;
// End LCD module connections


var adc_rd : word;
    des: real;
var txt1 : array[16] of char;
var txt2 : array[16] of char;

  begin
   Lcd_Init();                        // Initialize LCD
   Lcd_Cmd(_LCD_CLEAR);               // Clear display
   Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off

    while (TRUE) do
      begin
        adc_rd := ADC_Read(0);  // get ADC value from 2nd channel
        des:= adc_rd;
        des:= (des/1023)*5;
        WordToStr(adc_rd, txt1);
        floattostr(des,txt2);
        LCD_Out(1,1,txt1);
        lcd_out(1,7,txt2);
      end;
  end.

Saatnya simulasi: untuk simulasi saya percayakan pada software proteus karena proteus mempunyai banyak library untuk microcontroller. ada file simulasi yang bisa di download di akhir artikle.

Dan berikut ini adalah foto dan videonya pada saat saya  melakukan pengetesan:







Dan cukup sekian dari article ini dan selanjutnya saya serahkan pada anda, dibawah ini ada file – file dari hal2 yang saya sebutkan di atas silahkan download dan comment semoga kita bisa belajar bersama – sama atau kalo linknya rusak lapor ke ruslan_inst@yahoo.com dan saya akan coba mengirimnya langsung k email anda


file Videonya
file simulasi dan firmware (proteus dan mikro pascal)









4 comments:

  1. wuih... kereen bang... tp kalo bisa ada initialiasasi script yang lebih lengkap.. sehingga mudah dalam menterjemahkan maksud dari penggunaan script tersebut.. :)

    ReplyDelete
  2. sangat memuaskan download di sini... trimakasih mas...

    ReplyDelete
  3. Lanjutkan terus bang berbagi ilmunya... keep it up.. thanks jg sudah mau berbagi di forum FB Inovasi Mikrokontroller yg saya create... salam..

    ReplyDelete