Anda di halaman 1dari 6

Modul X

Analog To Digital Converter (ADC)

1.1
Tujuan
Melalui percobaan ini, Praktikan diharapkan memiliki keterampilan dan sikap profesional
dalam: Membuat program masukan analog dan menampilkannya ke LCD menggunakan
CodeVision.
1.2 Dasar Teori
Analog to Digital Converter (ADC)
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 10.1 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 10.2 Proses Pencuplikan

Praktikum Mikrokontroler

X-1

Modul X
Analog To Digital Converter (ADC)

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 kelompokkelompok 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 mengkode-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 10.4 Proses Pengkodean


Secara matematis, proses ADC dapat dinyatakan dalam persamaan:
Praktikum Mikrokontroler

X-2

Modul X
Analog To Digital Converter (ADC)

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.

Praktikum Mikrokontroler

X-3

Modul X
Analog To Digital Converter (ADC)

Gambar 10.5 Pengaturan ADC

#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);
Praktikum Mikrokontroler

X-4

Modul X
Analog To Digital Converter (ADC)

// 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);
};}
1.3
Peralatan Praktikum
1. 1 (satu) set komputer, prosesor minimum setara pentium 4, minimum RAM 512
MByte
2. Sistem operasi windows
3. Perangkat lunak AVR-Studio, CodeVision, Bascom, Proteus
4. Perangkat Keras Sismin ATMega16, Potensio, LCD
1.4

Latihan
1. Buat program untuk konversi data analog di ADC(1) dan tampilkan ke LCD di
PORTB. Resolusi 10-bit, tegangan refensi internal
2. Untuk jawaban soal no.1 simulasikan dengan proteus.

Praktikum Mikrokontroler

X-5

Modul X
Analog To Digital Converter (ADC)

Praktikum Mikrokontroler

X-6

Anda mungkin juga menyukai