Anda di halaman 1dari 15

PERCOBAAN 5

ANALOG TO DIGITAL CONVERTER


Bagas Yuda Ananda (119130102)
Asisten : Christopher (13117071)
Tanggal Percobaan : 08/05/2021
EL2209_A-10_Praktikum_Sistem_Mikroprosesor
Laboraturium Teknik Elektro
Institut Teknologi Sumatera

Abstrak – Pada percobaan kali ini yang melakukan untuk menkonversi input tegangan analog
percobaan dengan mengkonversi analog ke digital menjadi nilai digital
atau yang biasa di sebut ADC. Pada percobaan ini ada 2. Praktikan mampu membuat program untuk
dilakukan 2 percobaan yaitu percobaan untuk mengubah hasil konversi dalam satuan
menghitung suhu dengan Lm35 dan percobaan kedua binermenjadi BCD dan dikirimkan ke PC
menghitung tegangan dengan menggunakan LDR. melalui komunikasi serial USART
Dari percobaan yang dilakukan pada pengukuran suhu
lm 35 dihubungkan dengan ADC0 dan pada BAB II
percobaan kedua menghitung tegangan dihubungkan LANDASAN TEORI
ke ADC1 pada atmega 8535.
ADC
Kata kunci -- lm35, ADC converter
Analog to Digital Converter atau sering disingkat
BAB I dengan ADC adalah rangkaian yang mengubah nilai
PENDAHULUAN tegangan kontinu (analog) menjadi nilai biner (digital)
yang dapat dimengerti oleh perangkat digital sehingga
Dalam dunia elektronika, penggunaan dapat digunakan untuk komputasi digital. Dengan kata
mikrokontroler dalam pembuatan rangkaian-rangkaian lain, Analog to Digital Converter atau Konverter
elektronika tidaklah sulit dalam pengaplikasiannya Analog ke Digital ini memungkinkan rangkaian
karna dalam perancangan suatu rangkaian elektronika
Digital berinteraksi dengan dunia nyata dengan
tidak langsung dibuat dalam bentuk hardwere
melainkan dapat dibuat simulasi terlebih dahulu. menyandikan sinyal Analog ke sinyal Digital yang
Proses pembuatan simulasi ini dilakukan bertujuan berbentuk Biner. Rangkaian ADC ini pada umumnya
untuk mengecek kondisi dari rangkaian yang akan dikemas dalam bentuk IC dan diintegrasikan dengan
dibuat. Pada pembuatan simulasi suatu rangkaian Mikrokontroler.
elektronika ini dapat digunakan suatu program yang
dapat memberikan fasilitas dalam perancangan suatu Di dunia nyata, sinyal Analog yang berasal dari
rangkaian yaitu program proteus.7 dan CVAVR untuk berbagai sumber dan sensor yang mengukur suara
pembuatan program yang dibutuhkan oleh rangkaian cahaya, gerakan dan suhu akan terus berubah nilai
yang kita buat.
(kontinu) sehingga memberikan nilai yang berbeda
Mikrokontroler AVR ATMega8535 mempunyai
ADC dengan resolusi 10-bit. Di dalam jumlah yang tak terbatas. Sedangkan rangkaian
dalam mikrokontroller ATMega8535, input ADC Digital di sisi lain bekerja dengan sinyal Biner yang
dihubungkan ke sebuah 8 channel Analogmultiplekser hanya memiliki dua kondisi diskrit yaitu logika 0
yang digunakan untuk single ended (rendah) dan logika 1 (tinggi). Oleh karena itu,
diperlukan sebuah rangkaian elektronika yang dapat
mengubah dua domain yang berbeda dari sinyal
Lalu tujuan dari praktikum ini adalah :
analog yang kontinu menjadi sinyal digital yang
1. Praktikan mampu membuat program yang diskrit. Rangkaian inilah yang kita sebut dengan
menggunakan ADC pada avr Atmega 8535 Analog to Digital Converter (ADC) atau Konverter
Analog ke Digital, Perangkat yang menjadi perantara
untuk mengubah sinyal analog menjadi sinyal Digital bahwa output komparator tersebut tergolong tinggi
agar dimengerti oleh mikrokontroler dan atau high. Namun sebaliknya malah akan memberikan
mikroprosesor output rendah atau low.

CARA KERJA ADC 2. COUNTER RAM ADC

Ada dua faktor utama dalam ADC yang menjadi Jenis ADC yang kedua dinamakan seabgai counter
ramp ADC yang di dalamnya nanti Anda temukan
penentu keakuratan nilai digital yang dihasilkannya.
rangkaian DAC yagn akan diberikan input dari
Kedua faktor tersebut adalah Resolusi dan Sample counter yang berasal dari sumber clock dimana
Rate. sumber clock tersebut akan dikontrol. Caranya adalah
dengan meng AND kan terhadap keluaran
1. Resolusi komparator. Komparator akan membandingkan
tegangan dari masukan analog dengan masukan DAC.
Sebagai contoh, apabila sinyal 1V diubah menjadi
sinyal Digital dengan menggunakan ADC 3 bit, maka Ketika tegangan yang akan dimasukkan tersebut
akan menghasilkan 8 tingkatan pembagian (23 = 8 ternyata tidak sama dengan tegangan output DAC,
atau dalam biner adalah 111). Dengan kata lain, maka keluaran komparator sama dengan 1. Dengan
terdapat 8 tingkatan untuk mencapai output 1V. begitu, clock bisa memberikan masukan counter dan
Masing-masing satu tingkatan adalah 0,125V (1/8 = juga hitungan dari counter naik.
0,125V). Jadi perubahan minimum dari ADC 3 bit
3. SAR (Successive Aproximation Register)
untuk 1V ini adalah 0,125V atau 125mV setiap ADC
tingkatan. SAR akann menggunakan konfigurasi yang tidak jauh
berbeda dengan counter ramp. Namun ketika
melakukan trace dengan tracking, maka keluaran yang
dihasilkan adalah kombinasi bit MSB = 1 =====>
1000 0000. Namun ketika belum sama, maka akan
dinyatakan 1 ===> 1100 0000. Ketika tegangan
malah lebih kecil, maka Anda harus menurunkan
kombinasi bit ====> 10100000.

BAB III
2. Kecepatan sampel METODOLOGI

Jumlah sampel konversi dari analog ke digital yang A. Alat dan Bahan
dapat dibuat oleh konverter dalam setiap detik disebut 1. Aplikasi Proteus
dengan Kecepatan Sampel (Sample Speed atau 2. Aplikasi CV AVR
Sample Rate). Sample Speed ini diukur dalam satuan 3. PC atau Laptop
S/s (Sample per Detik) atau SPS (Sample per
Second). Misalnya ADC yang bagus dapat memiliki B. Diagram Alir
sample rate atau rasio pengambilan sample hingga
300Ms/s (bisa dibaca menjadi 300 juta sampel per Percobaan 1
detik).

JENIS – JENIS ADC

1. ADC Simultan

ADC simultan juga dinamakan sebagai paraller


converter atau flash converter. Ia merupakan sebuah
input Vi yang akan diconvert ke bentuk digital yang
akan diberikan secara simultan pada sisi + terhadap
komparator tersebut.
Kemudian pada input sisi – yang disesuaikan dengan
berapa ukuran dari bit converter tersebut. Pada saat Vi
dinyatakan sudah melebihi batas tegangan input dan
ouput pada komparator, maka hal ini menyatakan
BAB IV
Persipakan alat dan bahan nya HASIL DAN PEMBAHASAN

1. Percobaan pengukuran suhu dengan


LM35DZ

Rangkai LM35 yang dihubungkan


ke ADC0

Masukan codingan yang ada pada


atmega 8535

Jalankan Program Pada percobaan ini yang di perintahkan untuk


memampilkan suhu pada terminal hyper, dari rangkaia
diatas pada lm 35 dihubungkan dengan power lau
dihubungkan dengan ground dan satu pin lagi di di
Jika progrm berhasil maka hubungkan ke ADC0 pada atmega 8535, dan tidak
pembacaan suhu oleh LM 35 akan
ditampilkan pada hyper terminal lupa menghubungkan terminal virtual ke atmega
8535, pada pin RXD dihubungkan ke TXD pada
atmega 8535 dan begitu pula sebaliknya. Lalu untuk
Percobaan 2
hasil yang di tampilkan, menampilkan suhu, karena
ini simulasi sehingga tidak terjadi perubahan suhu
pada terminal virtual nya.
Persipakan alat dan bahan nya
2. Percobaan mengukur tegangan output LDR

Rangkai LDR yang dihubungkan ke


ADC1

Masukan codingan yang ada pada


atmega 8535

Pada percobaan yang kedua ini dilakukan program


Jalankan Program untuk menampilkan tegangan output pada LDR. Pada
rangkaian diatas LDR dihubungkan ke groun lalu
dihubungkan jjuga dengan power yang di seri kan
dengan resistor dan pin ADC1 dihubungkan ke kabel
Jika progrm berhasil maka yang menghubungkan power degan resistor. Lalu
pembacaan tagangan oleh LDR akan tidak lupa juga dengan virtual terminal yang
ditampilkan pada hyper terminal dihubungkan dengan atmega 8535, cara
menghubungkan nya pun sama seperti pada percobaan
1. Lalu pada hasil nya terlihat tegangan output yang di
keluarkan oleh LDR nya karena pada percobaan ini
menggunakan power sebesar 5 volt sehingga outptu
nya pun 5 volt pada terminal virtual.
BAB V
KESIMPULAN

Kesimpulan dar praktikum kali ini adalah :

1. Dalam konversi analog ke digital harus


dibarengin dengan konversi yang tepat
2. Alam mengkonversi dari biner memerlukan
nilai yang tepat

DAFTAR PUSTAKA

Heryanto. (2008). Pemrograman Bahasa C untuk


mikrokontroler atmega 8535. Yogyakarta: Andi.

Syahrin. (2013). Sekilas tentang interupsi pada


mikrokontroler. jakarta.

Modul Praktikum Sistem Mikroprosesor Teknik


Elektro Institut Teknologi Sumatera
LAMPIRAN

Link video percobaan Modul 5 : https://youtu.be/Udm5HSNMTgI

Codingan semua percobaan :


Percobaan 1:

#include <mega8535.h>

#include <delay.h>

#include <string.h>

#include <stdio.h>

unsigned long int hasil;

//Fungsi untuk mengubah input biner menjadi bentuk BCD

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);

//Tegangan referensi : pin AREF

//Hasil konversi ADC : right adjusted

#define ADC_VREF_TYPE 0x00

//Fungsi untuk membaca tegangan input ADC (konversi ADC)

unsigned int read_adc (unsigned char adc_input)

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 : "};

void main(void)

unsigned char i,temp,adc_input=0x00;

DDRA=0x00;

//Tegangan referensi ADC : pin AREF

ADMUX=ADC_VREF_TYPE;

//Inisialisai ADC (Enable ADC)

//Frekuensi clock ADC : 31.250 kHz (4MHz/128)

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++)

temp=string[i];

putchar(temp); //Kirim temp ke USART

hasil=read_adc(adc_input); //Baca tegangan pada pin ADC0

hasil=hasil*49; //Hasil pembacaan dikalikan dengan 1 LSB

hasil=bin2BCD(hasil); //Konversi hasil ADC ke format BCD

temp=(hasil>>16 & 0x0F)+0x30; //Ubah format BCD ke ASCII

temp=(hasil>>12 & 0x0F)+0x30;

putchar(temp); //Kiirim ASCII ke USART

temp=(hasil>>8 & 0x0F)+0x30;

putchar(temp);

putchar(',');

temp=(hasil>>4 & 0x0F)+0x30;

putchar(temp);

temp=(hasil & 0x0F)+0x30;

putchar(temp);

putchar(' ');

putchar('C');

putchar(0x0D);//Kirim ENTER pada terminal untuk baris baru

putchar(0x0A);

delay_ms(1000);
}

Percobaan 2 :

#include <mega8535.h>

#include <delay.h>

#include <string.h>

#include <stdio.h>

unsigned long int hasil;

//Fungsi untuk mengubah input biner menjadi bentuk BCD

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);

//Tegangan referensi : pin AREF

//Hasil konversi ADC : right adjusted

#define ADC_VREF_TYPE 0x00

//Fungsi untuk membaca tegangan input ADC (konversi ADC)

unsigned int read_adc (unsigned char adc_input)

unsigned char temp;

unsigned int data_adc;

ADMUX=adc_input|ADC_VREF_TYPE;
//Start konversi ADC

ADCSRA|=0x40; //ADCSRA di-OR-kan dengan 40H

(ADCSRA=ADCSRA|0x40) ;

//Tunggu sampai konversi ADC selesai (flag ADIF)

while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; //Clear flag ADIF

data_adc=0x0000;

temp=ADCL;

data_adc=ADCH;

//Baca ADC Data Register LOW

//Baca ADC Data Register HIGH

data_adc<<=8; //Geser data_adc HIGH ke kiri 8 kali

data_adc|=temp;

return data_adc;

//Hasil konversi ADC= 0000 00xx xxxx

//Right adjusted

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

void main(void)

unsigned char i,temp,adc_input=0x01;

DDRA=0x00;

//Tegangan referensi ADC : pin AREF

ADMUX=ADC_VREF_TYPE;
//Inisialisai ADC (Enable ADC)

//Frekuensi clock ADC : 31.250 kHz (4MHz/128)

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++)

temp=string[i];

putchar(temp); //Kirim temp ke USART

hasil=read_adc(adc_input); //Baca tegangan pada pin ADC1

hasil=hasil*49; //Hasil pembacaan dikalikan dengan 1 LSB

hasil=bin2BCD(hasil); //Konversi hasil ADC ke format BCD

temp=(hasil>>16 & 0x0F)+0x30; //Ubah format BCD ke ASCII

putchar(temp);

putchar(',');

temp=(hasil>>12 & 0x0F)+0x30;

putchar(temp);

temp=(hasil>>8 & 0x0F)+0x30;


putchar(temp);

putchar(' ');

putchar('V');

temp=(hasil>>4 & 0x0F)+0x30;

temp=(hasil & 0x0F)+0x30;

putchar(0x0D); //Kirim ENTER pada terminal untuk baris baru

putchar(0x0A);

delay_ms(1000);

Anda mungkin juga menyukai