Anda di halaman 1dari 9

ANALOG TO DIGITAL

CONVERTER (ADC)
ANALOG TO DIGITAL
CONVERTER
 ADC (Analog to Digital Converter) dalam mikrokontroller
berfungsi untuk mengubah atau mengkonversi data
analog ke data digital.
Prinsip dasar karakter ADC
 1. Kecepatan sampling ADC adalah seberapa sering
sinyal analog dikonversikan ke bentuk sinyal digital pada
selang waktu tertentu. Kecepatan sampling biasanya
dinyatakan dalam sample per second (SPS).
 2. Resolusi ADC menentukan ketelitian nilai hasil
konversi ADC.
Alat dan bahan:
1. CodeVision AVR
2. Proteus Professional :
 ATMEGA32
 LM016L (LCD)
 LM35 (Sensor suhu)
 POT-HG (Potensiometer)
 OSCILLOSCOPE
 GROUND
 POWER
RANGKAIAN ADC
MENGGUNAKAN PROTEUS
PROGRAM UNTUK MENGKONVERSI
DATA ANALOG KE DIGITAL

#include <mega32.h>
#include <lcd.h>
#include <delay.h>
#include <stdlib.h>

#asm
.equ __lcd_port=0x15 //PORTC
#endasm
#define ADC_VREF_TYPE 0x40
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;
float suhu;
char temp[8];
void baca_suhu() {
data = read_adc(1);
}
void hitung_suhu() {
suhu = (float)(data)/2;
}
void main(void) {
PORTD.0=1; DDRD.0=1;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
lcd_init(16);
lcd_clear();
lcd_gotoxy(2, 0);
lcd_putsf("Data ADC");
while (1) {
if(suhu <= 20) {
PORTD.0=1;
} else {
PORTD.0=0;
}
baca_suhu();
hitung_suhu();
ftoa(suhu,1,temp);
lcd_gotoxy(0,1);
lcd_puts(temp);
lcd_gotoxy(5,1);
lcd_putchar(0xdf);
lcd_putsf("C");
}
}

Anda mungkin juga menyukai