http://all-thewin.blogspot.com//feeds/posts/default Belajar | Elektro, Robotika, Pemrograman, Teknologi, Sastra Islami: Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR
Cari Artikel dan Tulisan

Tuesday, August 16, 2011

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR

Keunggulan utama mikrokontroler keluarga AVR semisal mikrokontroler ATMEGA 8535 dibanding dengan pendahulunya MCS-51 adalah mikrokontroler ATMEGA 8535 ini telah memiliki ADC internal sebesar 10 bit.

Hal diatas menguntungkan karena bila kita ingin mengolah suatu data analog seperti sensor suhu LM 35, sensor kelembaban SHT 11, intensitas cahaya dengan LDR (light dependent resistor) atau dengan photodiode, dll maka kita tidak memerlukan komponen tambahan seperti IC ADC 0804.

Lalu bagaimana cara memprogram ADC pada mikrokontroler ATMEGA 8535, sangat mudah tentunya tergantung dengan bahasa pemrograman yang dikuasai, jika mahir dalam menggunakan bahasa basic maka silahkan gunakan compiler Bascom AVR jika mahir menggunakan bahasa C maka silahkan gunakan compiler codevision AVR. Dalam tulisan kali ini akan digunakan compiler codevision AVR.

Untuk simulasi, silahkan buat rangkaian minimum plus LCD di proteus, seperti dibawah ini.

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR

Lalu buka codevision dan, setting seperti gambar berikut.

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR


Ketikkan program seperti berikut:

#include      
#include
#include

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include

#define ADC_VREF_TYPE 0x00
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

int data_adc;
char data[8];
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;

TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
lcd_init(16);

while (1)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Data ADC:");
data_adc= read_adc(0);
lcd_gotoxy(0,1);
ftoa(data_adc,1,data);
lcd_puts(data);
delay_ms(500);

};
}

Compile, dan downloadkan ke rangkaian proteus yang telah dibuat dan jalankan program

Memprogram ADC Mikrokontroler ATMEGA 8535 dengan Codevision AVR


Semoga bermanfaat

11 comments:

  1. mas bisa bantu membuat sebuah program dengan code vision avr untuk menampilkan selisih data digital hasil konversi ADC mode 8 bit ATMEGA8535

    misal kita Gunakan input channel 2 dan 3 dengan rumus perhitungan channel 2 - channel 3 + 10 (input analog CH2 harus lebih besar dari CH3).
    tetapi menggunakan interupsi adc !
    dan Tampilan hasil perhitungan menggunakan penampil Led...kebingungan nich..thanks

    ReplyDelete
  2. kalo pake VB tp compilernya codevision bs tdk? ato harus pake bascomm?

    ReplyDelete
  3. gak bisa karena codevision AVR itu compiler mikrokontroler berbasis bahasa C, kalo mau pake bahasa Basic bisa gunain Basic Compiler(BasCom)

    ReplyDelete
  4. mas angka yang ditampilkan di LCD itu sudah dalam bentuk digital atau masih analog?

    ReplyDelete
  5. Mas sep nilai digital 10 bit, jadi antara 0 - 1023

    ReplyDelete
  6. mas minta bantuanya, saya kn ingin membuat pengaman rumah gt, jd inputnya dari sensor inframerah erus kemodem yg nantinya akan mengirim sms ke pengguna, apa programnya jg sama seperti ini??

    ReplyDelete
  7. MAS,,saya pakai sensor koin,,output dari snsor koinnya itu berupa pulsa,,programnya dgn basic bgmn ya mas?makasih

    ReplyDelete
  8. include nya koq ga ad ktrngannya??

    ReplyDelete
    Replies
    1. dianggap tag html sepertinya itu mas

      Delete
  9. gan jika inputnya photodiode di porta dan outputnya led di port d ,,gimna prodramnya gan ,,mohon bantuannya ??

    ReplyDelete
  10. kalau error yg "ftoa(data_adc,1,data);" itu knp ya mas?
    pesan error ny :
    Error: coba1.c(105): must declare first in block
    -mohon bantuannya-

    ReplyDelete

Silahkan tinggalkan komentar...

Berlangganan Artikel

Masukkan Email anda untuk berlangganan artikel terbaru:

Mari Berteman

review http://all-thewin.blogspot.com/ on alexa.com Science Blogs Page Rank blogging tips