Subscribe via email

Enter your email address:

Delivered by FeedBurner

Mengenal ADC (1)

ADC (Analog to Digital Converter) adalah fitur paling populer dari ATmega 8535. Dengan adanya fitur ini kita tidak perlu menggunakan ADC0804 untuk membaca sinyal analog. ATmega 8535 memiliki 8 channel input ADC. Hasil pembacaan ADC beresolusi maksimum 10 bit (hmmm... cukup presisi. Biasanya saya hanya menggunakan 8 bit biar gak bingung ngitungnya.. He3...)
Register-Register yang mempengaruhi ADC:
Berikut adalah daftar register untuk menentukan setting ADC

Register ADMUX
Register ADMUX digunakan untuk:
menentukan tegangan referensi dari ADC
menentukan format data hasil konversi ADC
menentukan channel ADC yg akan digunakan (Ingat!! ATmega 8535 memiliki 8 channel ADC )
Berikut isi dari register ADMUX:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0

Bit 7 (REFS1) dan bit 6(REFS0) digunakan untuk menentukan tegangan referensi ADC.
Bit 7 Bit 6 Tegangan Referensi
0 0
pin AREF, internal Vref di matikan (off)
0 1
pin AVCC, dengan kapasitor eksternal pada  pin AREF
1 0 tidak digunakan

1

1
tegangan referensi internal 2,56 V dengan kapasitor eksternal pada pin AREF

Bit 5 (ADLAR) digunakan untuk menentukan format data hasil konversi.
Isi bit ini dengan 1 (ADLAR=1)jika menggunakan resolusi 8 bit

Bit 3..0 (MUX3..0) digunakan untuk menentukan channel ADC

Bit 3 Bit 2 Bit 1 Bit 0 Channel ADC
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7

Contoh:

      tegangan referensi  ADC menggunakan AVCC,  mode 10 bit, membaca channel 1

image
maka programnya:
       ADMUX=0x41;

    
Register ADCSRA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0

Bit 7 (ADEN) untuk mengaktifkan ADC. ADEN=0 disable / ADEN=1 enable

Bit 6 (ADSC) untuk memulai (start) pembacaan ADC.

Bit 5 (ADFR)  jika ADFR=1 free running mode , ADFR=0 single conversion

Bit 4 (ADIF) bit penanda interupsi. Bernilai 1 saat konversi ADC selesai.

Bit 3 (ADIE) berfungsi untuk mengaktifkan interupsi ADC. ADIE=1 enable / ADIE=0 disable

Bit 2..0(ADPS2..0) menentukan clock ADC
Bit 2 Bit 1 Bit 0 Clock
0 0 0 XTAL / 2
0 0 1 XTAL / 2
0 1 0 XTAL / 4
0 1 1 XTAL / 8
1 0 0 XTAL /16
1 0 1 XTAL / 32
1 1 0 XTAL / 64
1 1 1 XTAL / 128

Register ADCL dan ADCH

merupakan 2 register tempat menampung hasil pembacaan ADC

untuk mengambil nilai nya gunakan ADCW(mode 10 bit) dan ADCH (mode 8 bit)

misal:
      adc_data=ADCH; //memasukkan nilai ADC mode 8bit ke variable adc_data


Saat akan menggunakan ADC, hal yang pertama harus di lakukan adalah ADC initialization / inisialisasi ADC (menentukan mode ADC).
contoh inisialisasi ADC:
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=0x40;
ADCSRA=0x85;
SFIOR&=0xEF;
nyampe sini dulu ya  kenalan ma ADCnya,,,  ntar dismbung lagi ...  ngantuk berat nwech.....^_^

any questions?? post comment on this blog: http:\\avrku.blogspot.com
or send email to: [email protected]
CodeVisionAVR C Compiler is copyright by Pavel Haiduc, HP InfoTech s.r.l.
AVR is a registered trademark of Atmel Corporation




Comments :

2 comments to “Mengenal ADC (1)”

bagaimana menentukan nilai resolusi konversi adc dari atmega8535

bulkisespost mengatakan...
on 

mas minta tolong donk, listing program untuk monitoring suhu dengan lm35, mikronya atmega8535.
ni emailnya: [email protected]

Anonim mengatakan...
on