LAB PTE-3
Kelompok 7 :
1. Dwi Adi Putra M. R. (160534611635)
2. Izzulfi Wahyu Ramadhan (160534611662)
3. Nafalia Kurniawati (160534611621)
4. Rama Deyanto (160534611671)
A. TUJUAN
Mengetahui dan memahami cara menggunakan ADC yang ada di dalam
mikrokontroler.
Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk
mengonversi data analog menjadi data digital.
B. DASAR TEORI
1. Analog to Digitan Converter (ADC)
Penggunaan ADC sebagai pengonversi data analog menjadi data digital
merupakan sesuatu hal yang diperlukan jika data yang masuk ke dalam
mikrokontroler, biasanya data dari sensor berupa sinyal analog.
Fitur ADC dalam ATMega8535 adalah sebagai berikut:
o Resolusi 10 bit.
o Waktu konversi 65-260 s.
o Input 8 kanal.
o Input ADC 0-5Vcc.
o 3 Mode pemilihan tegangan referensi.
Ada beberapa langkah yang harus dilakukan untuk inisialisasi ADC, yaitu
penentuan clock, tegangan referensi, format data output dan mode pembacaan.
Inisialisasi ini dilakukan pada register-register berikut:
2. Prosedur
1. Rangkailah peralatan yang diperlukan seperti dalam Gambar diatas.
Hubungkan soket jumper PORTC pada minimum system dengan soket
jumper pada OUTPUT LED. Vout pada rangkaian potensiometer
dihubungkan pada PORTA.0 (ADC channel 0).
Kabel Kabel hitam
Kabel USB downloader Minimum I/O
ISP Downloader
system AVR
Potensio
meter
10. Perhatikan blok program berikut. Arti dari blok instruksi tersebut adalah
setting ADC di PORTA dan inisialisasi ADC. Tuliskan fungsi berikut di luar
program utama.
11. Tuliskan program berikut dalam program utama tepatnya di dalam while(1).
12. Compile dan Build program jika ada yang error perbaiki program. Masukkan
file hex menggunakan Khanzama AVR Programer. Klik auto program.
13. Hubungkan output potensiometer pada PORTA.0.
14. Ukur tegangan potensiometer (kaki tengah) sebesar 0-5V (sesuai tabel).
15. Lepas probe AVO Meter lalu perhatikan dan catat nyala LED dan konversi
nilai dalam desimal.
16. Hitung perhitungan nilai digital dalam desimal dengan rumus berikut:
Vdigital = Vukur / Vcc *255
Contoh: misal tegangan analog yang diukur 1 V, maka tegangan digital
adalah:
V = 1/5 *255 = 51 desimal, atau 33H atau 00110011B
Tabel ADC
Tegangan Tampilan LED Nilai digital Nilai digital Nilai digital
No analog (bit7-bit0) LED perhitungan LCD (volt)
(0-5V) (decimal) (desimal)
1 0 0 0 0.0
2 0.5 31 29 0.5
3 1 63 59 1
4 1.5 85 87 1.5
5 2 115 118 1.996
6 2.5 143 146 2.499
7 3 171 177 2.99
8 3.5 207 207 3.5
9 4 231 232 4.00
10 4.38 255 255 4.38
11 5 255 255 5
E. HASIL PRAKTIKUM
float adcdt;
unsigned char 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 ADCH;
}
void main(void)
{
PORTB=0x00;
DDRB=0x00;
ACSR=0x80;
SFIOR=0x00;
SPCR=0x00;
TWCR=0x00;
while (1)
{
// Place your code here
adcdt=read_adc(0);
PORTC=adcdt;
}
}
Tampilan LED:
0/4.38*255 = 0
0.5V
0.5/4.38*255 =29
1V
1/4.38*255 =59
1.5V
1.5/4.38*255 =87
2V
2/4.38*255 =118
2.5V
2.5/4.38*255 =146
3V
3/4.38*255 =177
3.5V
3.5/4.38*255 =207
4V
4/4.38*255 =232
4.38
4.38/4.38*255 =255
int adcdt;
float a;
char tamp[];
unsigned char 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 ADCH;
}
void main(void)
{
PORTB=0x00;
DDRB=0xff;
ACSR=0x80;
SFIOR=0x00;
SPCR=0x00;
TWCR=0x00;
while (1)
{
// Place your code here
adcdt=read_adc(0);
a=(float)adcdt/255*5;
ftoa(adcdt,1,tamp);
lcd_gotoxy(0,0);
lcd_puts(tamp);
lcd_putsf(" V");
delay_ms(5);
}
}
Tampilan LCD:
F. KESIMPULAN
Pada pengguaan ADC sebagai pengkonversi data dari analog menjadi data yang
digital, hal ini merupakan hal yang diperlukan jika data yang masuk kedalam
mikrokontroler biasanya data dari sensor berupa sinyal analog. Ada beberapa langkah
yang harus dilakukan untuk inisialisasi ADC, yaitu penentuan clock, tegangan referensi,
format data output dan mode pembacaan. Inisialisasi register pada ADC (Analog to
Digital converter) ialah ADMUX (ADC Multiplexer Selection Register), ADCSRA
(ADC Control and Status Register A), dan SFIOR (Special Function IO Register).
Danrumus untuk pehitungan nilai digital dalam bentuk decimal dapa dihitung dengan
rumus sebagai berikut: Vdigital = Vukur / Vcc *255.
G. DAFTAR PUSTAKA
1. Tim AsistenDosen. Modul 6 Menggunakan Analog to Digital Converter dalam
Mikrokontroler ATmega 8535.2017.