MENGAKSES ADC (POTENSIO) DENGAN MIKROKONTROLER

Konsep ADC untuk Mengakses Potensio pada Mikrokontrol


ADC = Analog to Digital Converter adalah suatu perangkat yang mengubah suatu data kontinu terhadap waktu (analog) menjadi suatu data diskrit terhadap waktu (digital). Proses yang terjadi dalam ADC adalah sebagai berikut :
  1. Pen-cuplik-an
  2. Peng-kuantisasi-an
  3. Peng-kode-an



Gambar Proses Pengolahan data analog menjadi digital


Ilustrasi proses pencuplikan terlihat pada gambar 10.2 di bawah. Semakin besar frekuensi pen-cuplik-an, berarti semakin banyak data diskrit yang didapatkan, maka semakin cepat ADC tersebut memproses suatu data analog menjadi data digital.




Gambar Proses Pencuplikan

Ilustrasi proses peng-kuantisasi-an terlihat pada Gambar 10.3 di bawah. Pengkuantisasian adalah proses pengelompokan data diskrit yang didapatkan pada proses pertama ke dalam kelompok-kelompok data. Kuantisasi, dalam matematika dan pemrosesan sinyal digital, adalah proses pemetaan nilai input seperti nilai pembulatan. Semakin banyak kelompok-kelompok dalam proses kuantisasi, berarti semakin kecil selisih data diskrit yang didapatkan dari data analog, maka semakin teliti ADC tersebut memproses suatu data analog menjadi data digital.



Gambar 10.3 Proses Pengkuantisasian


Ilustrasi proses pengkodean terlihat pada Gambar 10.4 di bawah. Pengkodean adalah meng-kode-kan data hasil kuantisasi ke dalam bentuk digital (0/1) atau dalam suatu nilai biner. Dengan: X1 = 11, X2 = 11, X3 = 10, X4 = 01, X5 = 01, X6 = 10.



Gambar  Proses Pengkodean


Secara matematis, proses ADC dapat dinyatakan dalam persamaan:

Data ADC = (Vin/Vref) x Maksimal Data Digital(resolusi)

 Dengan Vref adalah jenjang tiap kelompok dalam proses kuantisasi,kemudian  maksimal data digital berkaitan proses ke-3 (peng-kode-an). Sedangkan proses ke-1 adalah seberapa cepat data ADC dihasilkan dalam satu kali proses.

Pada mikrokontroler ATMega16 terdapat 8 kanal saluran internal ADC yang bergabung dengan PORTA, dengan resolusi 8-bit atau 10-bit. Sedangkan Vref dapat digunakan internal (2,56 V) atau eksternal (AVCC=VCC atau AREF<=VCC)

Maksimal data digital-nya (resolusi) 8-bit adalah 28 – 1 = 255 (pengurangan 1 dilakukan karena data dimulai dari 0-255 yang berarti berjumlah 256). Sehingga data digital output untuk Vin=3V , Vref=AREF=5V adalah:

Data ADC = (Vin/Vref)  x Maksimal Data Digital(resolusi)
Data ADC = (3/5)  x 255
Data digital output IC = 153 = 10011001

Maksimal data digital-nya (resolusi) 10-bit adalah 210 – 1 = 1023 (pengurangan 1 dilakukan karena data dimulai dari 0-1023 yang berarti berjumlah 1024). Sehingga data digital output untuk Vin=3V , Vref=AREF=5V adalah:

Data ADC = (Vin/Vref)  x Maksimal Data Digital(resolusi)
Data ADC = (3/5)  x 1023
Data digital output IC = 613 = 1001100101

Intruksi baca tegangan analog dalam bahasa C adalah read_adc(n).

Contoh program konversi data analog ke digital dan ditampilkan ke LCD
Chip yang digunakan adalah ATMega16, kristal 11,0592MHz. Vref menggunakan AVCC=5V, dan resolusi 10-bit. LCD terhubung ke PORTC dan Vin terhubung ke ADC(0)/PORTA.0. Pilih ADC à ADC enable à AVCC Pin à Free running, seperti terlihat pada Gambar 10.5 di bawah.


Gambar Pengaturan ADC


Program Mikrokontrol :


#include <mega16.h>
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

#define ADC_VREF_TYPE 0x40

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

// Declare your global variables here
int datadigital;
char buf[33];
void main(void)
{
// Declare your local variables here
PORTA=0x00;
DDRA=0x00;

// LCD module initialization
lcd_init(16);

while (1)
      {
      // Place your code here
      datadigital=read_adc(0); //baca Vin
      lcd_gotoxy(0,0);
      sprintf(buf,"%d",datadigital);
      lcd_puts(buf);
      };}



Berlangganan update artikel terbaru via email:

0 Response to "MENGAKSES ADC (POTENSIO) DENGAN MIKROKONTROLER"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel