Anda di halaman 1dari 18

MODUL V

ANALOG TO DIGITAL CONVERTER


Amanda Madeliane Christine (118130067)
Asisten : Sarah Rahayu (13117026)
Tanggal Percobaan : 08/05/2021
EL2209 Praktikum Sistem Mikroprosesor
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak— Pada praktikum keempat ini akan membahas konversi ke sinyal digital per detiknya. Sedangkan resolusi
mengenai Analog to Digital Coverter (ADC) pada system ADC berpengaruh terhadap ketelitian hasil konversinya.
mikroprosesor ATMega 8535. Praktikum ini diharapkan Resolusi pada mikrokontroler AVR ada 2 yaitu resolusi 8 bit
praktikan dapat membuat program dengan menggunakan ADC
dan 10 bit. Namun pada kali ini kita akan menggunakan
pada ATMega 8535 untuk mengkonversi input tegangan analog
menjadi nilai digital dan mampu membuat program untuk resolusi 10 bit.
mengubah hasil konversi dalam satuan biner menjadi satuan BDC Adapun tujuan dari percobaan modul ini ialah:
dan dikirimkan ke PC memalui komunikasi seral USART. Pada
ATMega 8535 pin I/O yang berfungsi sebagai Analog to Digital 1. Praktikan mampu membuat program dengan
Coverter (ADC) adalah PORTA . ADC merupakan alat yang menggunakan ADC pada ATMega 8535 untuk
menjembatani pemrosesan sinyal analog oleh sistem digital
mengkonversi input tegangan analog menjadi nilai
dengan mengubah sinyal analog (sinyal kontinyu) menjadi sinyal
digital. Analog to Digital Coverter (ADC) pada mikroprosesor digital.
ATMega 8535 ini diatur dengan mengatur pensettingan atau 2. Praktikan mampu membuat program untuk mengubah
pemograman beberapa register ADMUX, ADCSRA, hasil konversi dalam satuan biner menjadi satuan BDC
ADCL/ADCH 0/1 dan SFIOR. Pada dasarnya mikrokontroler dan dikirimkan ke PC memalui komunikasi seral
mampu mengontrol system ADC untuk dapat menampilkan hasil USART.
output berupa menyala/padam nya nyala lampu LED. ADC
memiliki 2 faktor penting pada penggunaan nya yaitu kecepatan
sampling dan resolusi. Mikrokontroler AVR ATMega8535 II. LANDASAN TEORITIS
mempunyai ADC dengan resolusi 10-bit dimana tegangan A. Analog to Digital Coverter (ADC)
referensinya dapat dipilih dengan mengatur pada register
ADMUX. Beberapa pilihan tegangan referensi yaitu pada pin Alat bantu digital yang paling penting untuk teknologi
AREF, pada pin AVCC, Reserved, atau menggunakan tegangan
kontrol proses adalah yang menerjemahkan informasi digital ke
referensi internal sebesar 2,56 Volt. Terdapat 2 percobaan yang
akan di lakukan dimana yang pertama yaitu percobaan bentuk analog dan juga sebaliknya. Untuk menghubungkan
mengukur suhu dengan LM35 DZ dan mengukur tegangan output sinyal analog dan digital dapat dilakukan dengan sebuah
LDR. Maka melalui 2 percobaan ini hasil yang di dapatkan mikrokontroler dan computer , dimana terlebih dahulu
diharapkan fitur Analog to Digital Coverter (ADC) dapat di melakukan konversi analog ke digital (A/D). System ADC
implementasikan sesuai dengan pen-settingan pada program dan (Analog Digital Converter) merupakan fitur pada
dapat diketahui penjelasan mengenai mekanisme eksekusi mikrokontroler yang berfungsi untuk mengkonversi sinyal/data
program dari fitur ADC nya tersebut. dari besaran analog menjadi besaran digital. Karena sebagian
besar data/sinyal yang ada di dunia ini merupakan besaran
Kata Kunci— Analog to Digital Coverter (ADC), Resolusi, analog. Pengkonversian data dari analog ke digital merupakan
Kecepatan sampling, ATMega 8535, Codevision AVR, Proteus 8.
suatu cara untuk mengolah data analog tersebut agar dapat di
modifikasi, di manipulasi dan mengubah karakteristiknya.
I. PENDAHULUAN Contoh besaran analog yang sering di jumapai dalam kehidupan
Perkembangan ilmu pengetahuan dan teknologi sangat sehari-hari yaitu suhu, cahaya, kecepatan,tegangan, suara, dll.
diperlukan untuk kehidupan manusia menjadi lebih baik. Salah Fitur ADC ini sering digunakan dalam proses industri dan
satu langkahnya adalah dengan mengubah teknologi yang komunikasi digital. ADC inilah yang menghubungkan antara
semula menggunakan system analog menjadi system digital. sensor dengan sistem komputer yang telah terintegrasi.
Fitur ADC ini sering digunakan dalam proses industri dan Mikrokontroler AVR ATMega8535 mempunyai ADC dengan
komunikasi digital. Dimana ADC ini lah yang menghubungkan resolusi 10-bit. Di dalam mikrokontroller ATMega8535, input
antara sensor dengan sistem komputer yang telah terintegrasi. ADC dihubungkan ke sebuah 8 channel Analog multiplekser
Sebagai contohnya yaitu telepon, voltmeter digital dan kamera yang digunakan untuk single ended input channel artinya input
digital. Pada system ADC ada 2 faktor penting yaitu kecepatan ADC diukur dengan referensi pada ground. Masing-masing
sampling dan resolusi. Dimana kecepatan sampling ini channel dari analog multiplekser terhubung dengan PORT A.
Jadi input ADC pada saat tertentu hanya terhubung dengan satu
berpengaruh terhadap seberapa banyak sinyal analog yang di
tegangan input saja.(dengan memilih channel pada analog
multiplekser). Pada ADC diperlukan frekuensi clock untuk
proses konversi tegangan analog menjadi nilai digital.
Pemilihan clock ADC berdasarkan nilai ADPS2:0 (nilai untuk
prescaler ADC) dalam I/O register ADCSRA. Untuk
mendapatkan hasil konversi dengan ketelitian tinggi,
diperlukan frekuensi clock ADC antara 50-200 KHz. Prinsip
kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk
besaran yang merupakan rasio perbandingan sinyal input dan
tegangan referensi.[1]

Gambar 2. ADC Simultan

b. Counter RAM ADC


Counter Ramp ADC didalamnya tedapat ADC yang diberi
Gambar 1. Rangkaian ADC pada ATMega 8535 masukan dari counter, masukan counter dari sumber Clock
B. Jenis-jenis ADC dimana sumber Clock dikontrol dengan cara meng AND kan
Berikut beberapa jenis dari A. Analog to Digital Coverter dengan keluaran Comparator. Comparator membandingkan
(ADC) : antara tegangan masukan analog dengan tegangan keluaran
a. ADC Simultan ADC, apabila tegangan masukan yang akan dikonversi
ADC Simultan atau biasa disebut flash converter atau belum sama dengan tegangan keluaran dari ADC maka
parallel converter. Input analog Vi yang akan diubah ke keluaran comparator = 1 sehingga Clock dapat memberi
bentuk digital diberikan secara simultan pada sisi + pada masukan counter dan hitungan counter naik. Misal akan
komparator tersebut, dan input pada sisi – tergantung pada dikonversi tegangan analog 2 volt, dengan mengasumsikan
ukuran bit converter. Ketika Vi melebihi tegangan input – counter reset, sehingga keluaran pada ADC juga 0 volt.
dari suatu komparator, maka output komparator adalah high, Apabila konversi dimulai maka counter akan naik dari 0000
sebaliknya akan memberikan output low. Bila Vref diset ke 0001 karena mendapatkan pulsa masuk dari Clock
pada nilai 5 Volt, maka dari gambar 3 dapat didapatkan : oscillator dimana saat itu keluaran Comparator = 1, karena
V(-) untuk C7 = Vref * (13/14) = 4,64 mendapatkan kombinasi biner dari counter 0001 maka
V(-) untuk C6 = Vref * (11/14) = 3,93 tegangan keluaran ADC naik dan dibandingkan lagi dengan
V(-) untuk C5 = Vref * (9/14) = 3,21 tegangan masukan demikian seterusnya nilai counter naik
V(-) untuk C4 = Vref * (7/14) = 2,5 dan keluaran tegangan ADC juga naik hingga suatu saat
V(-) untuk C3 = Vref * (5/14) = 1,78 tegangan masukan dan tegangan keluaran ADC sama yang
V(-) untuk C2 = Vref * (3/14) = 1,07 mengakibatkan keluaran komparator = 0 dan Clock tidak
V(-) untuk C1 = Vref * (1/14) = 0,36 dapat masuk. Nilai counter saat itulah yang merupakan hasil
Misal : konversi dari analog yang dimasukkan. Kelemahan dari
Vin diberi sinyal analog 3 Volt, maka output dari C7=0, counter tersebut adalah lama, karena harus melakukan trace
C6=0, C5=0, C4=1, C3=1, C2=1, C1=1, sehingga didapatkan mulai dari 0000 hingga mencapai tegangan yang sama
output ADC yaitu 100 biner. sehingga butuh waktu.

Gambar 2. Blok Diagram Counter Ramp ADC


• REFS0-1 (Reference Selection Bits)
REFS0-1 adalah bit-bit pengatur mode tegangan referensi
c. SAR (Successive Aproximation Register) ADC ADC.
SAR adalah ADC yang memakai konfigurasi yang hampir Tabel tegangan referensi ADC:
sama dengan counter ramp tetapi dalam melakukan trace REFS1 REFS0 Tegangan Referensi
dengan cara tracking dengan mengeluarkan kombinasi bit
0 0 AREF
MSB = 1 => 1000 0000. Apabila belum sama (kurang dari
tegangan analog input maka bit MSB berikutnya = 1 =>1100 0 1 AVCC
0000) dan apabila tegangan analog input ternyata lebih kecil 1 0 Reserved
dari tegangan yang dihasilkan DAC maka langkah 1 1 Internal 2.56V
berikutnya menurunkan kombinasi bit => 10100000.Untuk
mempermudah pengertian dari metode ini diberikan contoh • ADLAR (ADC Left Adjust Result)
seperti pada timing diagram gambar 6 Misal diberi tegangan ADLAR adalah bit keluaran ADC. Jika ADC telah selesai
analog input sebesar 6,84 volt dan tegangan referensi ADC konversi, maka data ADC akan diletakkan di 2 register, yaitu
10 volt sehingga apabila keluaran tegangan sbb : ADCH dan ADCL dengan format sesuai ADLAR.
Jika D7 = 1 Vout=5 volt - Format data ADC jika ADLAR=0
Jika D6 = 1 Vout=2,5 volt
Jika D5 = 1 Vout=1,25 volt
Jika D4 = 1 Vout=0,625 volt
Jika D3 = 1 Vout=0,3125 volt
Jika D2 = 1 Vout=0,1625 volt
Jika D1 = 1 Vout=0,078125 volt
Jika D0 = 1 Vout=0,0390625 volt
Setelah diberikan sinyal start maka konversi dimulai - Format data ADC jika ADLAR=1
dengan memberikan kombinasi 1000 0000 ternyata
menghasilakan tegangan 5 volt dimana masih kurang dari
tegangan input 6,84 volt, kombinasi berubah menjadi 1100
0000 sehingga Vout = 7,5 volt dan ternyata lebih besar dari
6,84 sehingga kombinasi menjadi 1010 0000 tegangan Vout
= 6,25 volt kombinasi naik lagi 1011 0000 demikian
seterusnya hingga mencapai tegangan 6,8359 volt dan
• MUX0-4 (Analog Channel and Gain Selection Bits)
membutuhkan hanya 8 clock.
MUX0-4 adalah bit-bit pemilih saluran pembacaan ADC.
Tabel Input Channel dan Gain :

Gambar 2. Blok Diagram SAR ADC


[2]

C. Register AVR ADC


Ada beberapa register yang digunakan untuk memprogram
fitur Analog to Digital Coverter (ADC) yaitu :
1. ADMUX (ADC Multiplexer Selection Register)

ADMUX merupakan register yang mengatur tegangan


referensi yang digunakan ADC,format data output dan
saluran ADC.
Berikut penjelasan ADMUX per bitnya :
III. METODOLOGI
2. ADC Control and Status Register A (ADCSRA)
Alat dan Bahan
• Laptop (1buah)
• Software Proteus (1buah)
ADCSRA adalah register 8 bit yang berfungsi untuk • Software CV AVR (1buah)
melakukan manajemen sinyal kontrol dan status ADC. • Starter KIT AVR DT-Combo (1buah)
Berikut penjelasan ADC Control and Status Register A • USBasp (1buah)
(ADCSRA) per bitnya :
• ADEN (ADC Enable) Langkah Kerja
ADEN merupakan bit pengatur aktivasi ADC. Jika Percobaan A : Mengirim data karakter ke PC.
bernilai 1 maka ADC akan aktif.
• ADCS (ADC Start Conversion) Siapkan alat dan perangkat yang akan digunakan
ADCS merupakan bit penanda dimulainya konversi
ADC. Selama konversi berlogika 1 dan akan berlogika 0
jika selesai konversi. Buat lah rangkaian pada proteus sesuai yang ada dimodul
• ADATE (ADC Auto Trigger Enable)
ADATE merupakan bit pengatur aktivasi picu otomatis.
Jika bernilai 1 maka konversi ADC akan dimulai pada saat
tepi positif pada sinyal trigger yang digunakan. Sambungkan koneksi dengan spesifikasi sesuai pada modul +
buatlah pemogramannya pada CV AVR
• ADIF (ADC Interrupt Flag)
ADIF merupakan bit penanda akhir konversi ADC. Jika
bernilai 1 konversi ADC pada suatu saluran telah selesai
dan siap diakses. Klik Project + compile + built all program
• ADIE (ADC Interrupt Enable)
ADIE merupakan bit pengatur aktivasi interupsi. Jika
bernilai 1 maka interupsi penandaan telah selesai.
Tambahkan file .hex yang sudah dibuat di CV + OK + Run
Konversi ADC diaktifkan. rangkaian
• ADPS0-2 (ADC Prescaler Select Bit)
ADPS0-2 merupakan bit pengatur clock ADC.
Tabel ADC Prescaler :
Amati hasilnya + buat Flowchartnya
ADPS2 ADPS1 ADPS0 Division Factor
0 0 0 2
0 0 1 2 Percobaan B : Mengirim beberapa kata ke PC
0 1 0 4
0 1 1 8 Siapkan alat dan perangkat yang akan digunakan
1 0 0 16
1 0 1 32
1 1 0 64 Buat lah rangkaian pada proteus sesuai yang ada dimodul
1 1 1 128

3. SFIOR (Special Function IO Register) Sambungkan koneksi dengan spesifikasi sesuai pada modul +
buatlah pemogramannya pada CV AVR

SFIOR adalah register 8 bit yang mengatur sumber pemicu Klik Project + compile + built all program
ADC. Jika bit ADATE pada register ADCSRA bernilai 0
maka ADTS0-2 tidak berfungsi.
Tambahkan file .hex yang sudah dibuat di CV + OK + Run
rangkaian

Amati hasilnya + buat Flowchartnya

Ulangi percobaan dengan memodifikasi Program sebelumnya


sehingga hasil keluaran program pada IA dan IB dapat
ditampilkan secara bersamaan menggunakan hypertherminal
IV. HASIL DAN ANALISIS }

Data Hasil Percobaan #define ADC_VREF_TYPE 0x00

Percobaan A : Pengukuran Suhu dengan LM35DZ unsigned int read_adc (unsigned char adc_input)
Gambar Rangkaian yang digunakan untuk percobaan A : {
unsigned char temp;
unsigned int data_adc;
ADMUX=adc_input|ADC_VREF_TYPE;
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
data_adc=0x0000;
temp=ADCL;
data_adc=ADCH;
data_adc<<=8;
data_adc|=temp;
return data_adc;
}

flash unsigned char string[]= {"Hasil pada ADC0 : "};


void main(void)
{
unsigned char i,temp,adc_input=0x00;
DDRA=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x87;
Hasil Pengukuran LM35DZ : SFIOR&=0xEF;
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
while (1)
{
for (i=0; i<= strlenf(string)-1; i++)
{
temp=string[i];
putchar(temp);
}
hasil=hasil*49;
Algoritma Program: hasil=bin2BCD(hasil);
temp=(hasil>>16 & 0x0F)+0x30;
#include <mega8535.h> temp=(hasil>>12 & 0x0F)+0x30;
#include <delay.h> putchar(temp);
#include <string.h> temp=(hasil>>8 & 0x0F)+0x30;
#include <stdio.h> putchar(temp);
putchar(',');
temp=(hasil>>4 & 0x0F)+0x30;
unsigned long int hasil; putchar(temp);
temp=(hasil & 0x0F)+0x30;
unsigned long int bin2BCD (unsigned int input) putchar(temp);
{ putchar(' ');
hasil=((input/10000)*65536)+ putchar('C');
(((input%10000)/1000)*4096)+ putchar(0x0D);
((((input%10000)%1000)/100)*256)+ putchar(0x0A);
(((((input%10000)%1000)%100)/10)*16)+ delay_ms(1000);
((((input%10000)%1000)%100)%10); }
return(hasil); }
Flowchart percobaan A : Algoritma Program :
#include <mega8535.h>
#include <delay.h>
#include <string.h>
#include <stdio.h>

unsigned long int hasil;

unsigned long int bin2BCD (unsigned int input)


{
hasil=((input/10000)*65536)+
(((input%10000)/1000)*4096)+
((((input%10000)%1000)/100)*256)+
(((((input%10000)%1000)%100)/10)*16)+
((((input%10000)%1000)%100)%10);
return(hasil);
}

#define ADC_VREF_TYPE 0x00

unsigned int read_adc (unsigned char adc_input)


{
unsigned char temp;
unsigned int data_adc;
Percobaan B : Mengukur Tegangan Output LDR ADMUX=adc_input|ADC_VREF_TYPE;
Gambar Rangkaian Percobaan B: ADCSRA|=0x40;
(ADCSRA=ADCSRA|0x40);
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
data_adc=0x0000;
temp=ADCL;
data_adc=ADCH;
data_adc<<=8;
data_adc|=temp;
return data_adc;
}

flash unsigned char string[]= {"Hasil pada ADC1 : "};


void main(void)
{
unsigned char i,temp,adc_input=0x01;
DDRA=0x00;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x87;
SFIOR&=0xEF;
1.B Menampilkan Hasil pengukuran tegangan output pada UCSRA=0x00;
LDR UCSRB=0x18;
Hasil Percobaan : UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
while (1)
{
for (i=0; i<= strlenf(string)-1; i++)
{
temp=string[i];
putchar(temp);
}
hasil=read_adc(adc_input);
hasil=bin2BCD(hasil);
temp=(hasil>>16 & 0x0F)+0x30;
putchar(temp); //Fungsi untuk mengubah input biner menjadi bentuk BCD
putchar(','); unsigned long int bin2BCD (unsigned int input)
temp=(hasil>>12 & 0x0F)+0x30; {
putchar(temp); hasil=((input/10000)*65536)+
temp=(hasil>>8 & 0x0F)+0x30; (((input%10000)/1000)*4096)+
putchar(temp); ((((input%10000)%1000)/100)*256)+
putchar(' '); (((((input%10000)%1000)%100)/10)*16)+
putchar('V'); ((((input%10000)%1000)%100)%10);
temp=(hasil>>4 & 0x0F)+0x30; return(hasil);
temp=(hasil & 0x0F)+0x30; }
putchar(0x0D); //Tegangan referensi : pin AREF
putchar(0x0A); //Hasil konversi ADC : right adjusted
delay_ms(1000); #define ADC_VREF_TYPE 0x00
} //Fungsi untuk membaca tegangan input ADC (konversi ADC)
} unsigned int read_adc (unsigned char adc_input)
{
Flowchart Percobaan B1 : unsigned char temp;
unsigned int data_adc;
ADMUX=adc_input|ADC_VREF_TYPE;
//Start konversi ADC
ADCSRA|=0x40;
//Tunggu sampai konversi ADC selesai (flag ADIF)
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; //Clear flag ADIF
data_adc=0x0000;
temp=ADCL; //Baca ADC Data Register LOW
data_adc=ADCH;//Baca ADC Data Register HIGH
data_adc<<=8; //Geser data_adc HIGH ke kiri 8 kali
data_adc|=temp; //Hasil konversi ADC= 0000 00xx xxxx xxxx
return data_adc; //Right adjusted
}
flash unsigned char string[]= {"Hasil pada ADC0 dan ADC1 :
"};
void main(void)
{
unsigned char i,temp,adc_input=0x00;
DDRA=0x00;
//Tegangan referensi ADC : pin AREF
ADMUX=ADC_VREF_TYPE;
2.B Menampilkan Hasil pengukuran tegangan output pada //Inisialisai ADC (Enable ADC)
LDR dan prngukuran suhu pada LM35DZ bersamaan //Frekuensi clock ADC : 31.250 kHz (4MHz/128)
Hasil Percobaan : ADCSRA=0x87;
SFIOR&=0xEF; //Sumber trigger : Free Running mode
// Inisialisasi USART 8-N-1 dengan baud rate 9600 bps(4MHz)
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
while (1)
{
for (i=0; i<= strlenf(string)-1; i++)
{
Algoritma Program : temp=string[i];
#include <mega8535.h> putchar(temp); //Kirim temp ke USART
#include <delay.h> }
#include <string.h> hasil=read_adc(adc_input); //Baca tegangan pada pin ADC0
#include <stdio.h> hasil=hasil*49; //Hasil pembacaan dikalikan dengan 1 LSB
hasil=bin2BCD(hasil); //Konversi hasil ADC ke format BCD
unsigned long int hasil;
temp=(hasil>>16 & 0x0F)+0x30; //Ubah format BCD ke
ASCII
temp=(hasil>>12 & 0x0F)+0x30; Analisa
putchar(temp); //Kiirim ASCII ke USART
temp=(hasil>>8 & 0x0F)+0x30; Pada percobaan pertama yaitu tentang mengirim data
putchar(temp); karakter ke PC dari percobaan ini kita akan menampilkan hasil
putchar(','); pengukuran suhu dengan sensor LM35DZ. Pada percobaan ini
temp=(hasil>>4 & 0x0F)+0x30; LM35DZ akan mengukur suhu dan menghasilkan data analog
putchar(temp); kemudian akan di konversikan dengan ADC lalu diolah pada
temp=(hasil & 0x0F)+0x30; mikrokontroler ATMega8535, hasil pengukuran di tampilkan
putchar(temp); pada virtual terminal pada PC menggunakan fitur komunikasi
putchar(' '); serial USART. Pada program ini disetting bahwasannya
putchar('C'); PORTA diatur sebagai ADC dan program akan akan looping
putchar(' '); setiap kelipatan 10. Pada pada program utama dideklarasikan
putchar('&'); PORT A menggunakan tipe data unsigned int. Artinya,
putchar(' '); PORTA memiliki jangkauan nilai 0 hingga 65.353. Sehingga
putchar(0x0A); akhirnya program akan membaca data suhu dari LM35DZ
kemudian mengkonversikan nilai analog menjadi nilai suhu
temp=(hasil>>16 & 0x0F)+0x30; //Ubah format BCD ke dlam besaran celcius lalu dikirimkan ke PC melalui serial port.
ASCII Pada percobaan kedua yaitu tentang mengirim beberapa kata
putchar(temp); ke PC dari percobaan ini kita akan menampilkan hasil
putchar(','); pengukuran tegangan output pada LDR. Pada percobaan ini
//Kiirim ASCII ke USART LDR akan mengukur suhu dan menghasilkan data analog
temp=(hasil>>12 & 0x0F)+0x30; kemudian akan di konversikan dengan ADC lalu diolah pada
putchar(temp); mikrokontroler ATMega8535, hasil pengukuran di tampilkan
temp=(hasil>>8 & 0x0F)+0x30; pada virtual terminal pada PC menggunakan fitur komunikasi
putchar(temp); serial USART. Pada Percobaan B ini ada 2 subtugas yang
putchar(' '); dikerjakan dimana yang pertama kita akan mengukur dan
putchar('V'); menampilkan hasil pengukuran tegangan ouput LDR saja dan
temp=(hasil>>4 & 0x0F)+0x30; yang kedua mengukur dan menampilkan hasil pengukuran suhu
temp=(hasil & 0x0F)+0x30; pada LM35DZ dan tegangan output pada LDR. Pada program
putchar(0x0D); //Kirim ENTER pada terminal untuk baris baru utama ini juga dideklarasikan PORT A menggunakan tipe data
putchar(0x0A); unsigned int. Artinya, PORTA memiliki jangkauan nilai 0
delay_ms(1000); hingga 65.353. Sehingga akhirnya pada percobaan 1 program
} akan membaca data tegangan output dari LDR kemudian
} mengkonversikan nilai analog menjadi nilai tegangan dalam
besaran Volt(V) lalu dikirimkan ke PC melalui serial port
Flowchart Percobaan B2 : sedangkan pada percobaan dua yang membedakan hanya hasil
output pada serial portnya ditambahkan hasil pengukuran suhu
(ada dua buah nilai akhir).

V. SIMPULAN

1. Hasil ADC di dapatkan dengan cara melakukan


inisialisasi terlebih dahulu yaitu dengan mengatur
penentuan clock, tegangan referensi, format output data,
dan mode pembacaan. Register yang perlu diset nilainya
adalah ADMUX (ADC Multiplexer Selection Register),
ADCSRA (ADC Control and Status Regsiter A), dan
SFIOR (Special Function IO Register) pada
ATMega8535 melalui CV AVR kemudian di built all dan
tambahkan file hexnya ke rangkaian di proteus.
2. Data yang di dapatkan dari mikrokontroler adalah berupa
bilangan biner /heksa sedangkan sensor mengeluarkan
output berupa data analog sehingga tidak dapat diolah
langsung oleh mikrokontroler oleh sebab itu diperlukan
ADC untuk mengubah satuannya kemudia digunakan
komunikasi serial USART untuk menampilkan hasil
konversinya pada PC.
VI. REFERENSI

[1] http://adewiaquratu.blogspot.com/2016/11/laporan-6-
analog-to-digital-converter.html

[2] http://zonaelektro.net/adc-analog-to-digital-converter/

[3]http://psychotechengineering.blogspot.com/2017/01/analog
-to-digital-converter-atmega8535.html
Lampiran

Link Video Yotube : https://youtu.be/GXdQyk4r64U

Kartu Praktikum
BCP

Anda mungkin juga menyukai