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 :
- Pen-cuplik-an
- Peng-kuantisasi-an
- 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);
};}
0 Response to "MENGAKSES ADC (POTENSIO) DENGAN MIKROKONTROLER"
Post a Comment