LAPORAN MIKROKONTROLER JOB 4 ADC
PRAKTIKUM
MIKROKONTROLER
ADC (ANALOG TO DIGITAL CONVERTION)
Disusun
Oleh
Khairinnisa Siregar ( 16507134042)
TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS
NEGERI YOGYAKARTA
A. Tujuan
Setelah
melakukan praktik mahasiswa diharapkan dapat:
1. Memahami konfigurasi ADC
2. Menguasai pemrograman ADC untuk
aplikasi input sensor
B. Dasar
Teori
ADC (Analog
To Digital Converter) adalah
perangkat elektronika yang berfungsi untuk mengubah sinyal analog (kontinyu)
menjadi sinyal digital (diskrit). Perangkat ADC dapat berbentuk suatu modul
atau rangkaian elektronika maupun suatu chip IC. ADC berfungsi untuk
menjembatani pemrosesan sinyal analog oleh sistem digital.
Kecepatan
sampling suatu ADC menyatakan “seberapa sering sinyal analog dikonversikan ke
bentuk sinyal digital pada selang waktu tertentu”. Kecepatan sampling biasanya
dinyatakan dalam sample per second
(SPS).
Gambar. Kecepatan sampling ADC dalam
ketelitian
Resolusi ADC menentukan “ketelitian
nilai hasil konversi ADC”. Sebagai contoh: ADC 8 bit akan memiliki output 8 bit
data digital, ini berarti sinyal input dapat dinyatakan dalam 255 (2n
–1) nilai diskrit, ADC 10 bit memiliki 1023 nilai deskret. ADC 12 bit memiliki
12 bit output data digital, ini berarti sinyal input dapat dinyatakan dalam
4096 nilai diskrit. Dari contoh diatas ADC 12 bit akan memberikan ketelitian
nilai hasil konversi yang jauh lebih baik daripada ADC 8 bit.
Resolusi
ADC = Vref/(nilai bit-1)
Contoh
Jika
diketahui
Vref = 5 V
Prosesor = ATmega16 (8bit)
Resolusi
ADC = 5/(256-1)
=
0,0196 V
Artinya setiap kenaikan
0,0196 V maka nilai ADC akan bertambah 1 nilai deskret ara sebaliknya akan
diperoleh nilai tegangan input. Resulosi dapat ditingkatkan dengan memperkecil
nilai referensi, misalnya:
Jika diketahui
Vref = 2,5 V
Prosesor = ATmega16 (8bit)
Resolusi ADC
= 2,5/(256-1)
= 0,0098 V
Dengan demikian dapat
diartikan bahwa setiap kenaikan 0,0098 V maka nilai deskret ADC akan naik 1
poin. Prinsip kerja ADC mengkonversi sinyal analog ke dalam bentuk besaran yang
merupakan rasio perbandingan sinyal input dan tegangan referensi. Sebagai
contoh, bila tegangan referensi 5 volt, tegangan input 3 volt, rasio input
terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit dengan skala
maksimum 255, akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk
decimal) atau 10011001 (bentuk biner).
Sinyal
Analog = (sample/max_value) * reference
voltage = (153/255) * 5
= 3
Volts
C. Alat
dan Bahan
1.
Modul AVR Atmega8535/8/16/32
2.
PC (Personal
computer)/laptop
3.
Jumper
4. Power
supply 5-12V
D. Skema
Rangkaian
E. Langkah
Kerja
1.
Buatlah alat dan
bahan seperti rangkaian di atas;
2.
Buatlah program seperti yang tertulis berikut, uji
cobakan/simulasikanlah di Proteus lalu coba pada hardware nyata;
3. Cobalah
list program berikut;
#include
<mega8535.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x20
// Read the 8 most
significant bits // of the AD conversion result
unsigned char
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);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD
conversion to complete while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; return ADCH;
}
// Declare your global
variables here unsigned char data=0; char kata[16]; void main(void) {
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s)
initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by
Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 750.000 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: Free Running
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xA4;
SFIOR&=0x0F;
// LCD module
initialization lcd_init(16);
while (1) {
data=read_adc(0); //baca
data yang masuk pada ADC0 (PINA0) sprintf(kata,"suhu : %d",data);
//tampilkan data pada LCD lcd_gotoxy(0,0);
//posisi pada layar lcd lcd_puts(kata); delay_ms(100); //waktu tunda biar nggak kecepetan
lcd_clear(); //clear layar LCD
};
}
4.
Berikan input ADC Anda berupa potensiometer, amatai apa yang
terjadi.
5.
Tugas, buatlah program dengan untuk membuat termometer
dengan sensor LM35 DZ.
6.
Tuliskan hasil praktikum anda sesuai format dan simpulkan
hasilnya.
F. Hasil
dan Analisa
Gambar dibawah ini merupakan hasil
rangkaian setelah disimulation
Analisa
: pada praktikum ini untuk menampilkan LCD terlebih dahulu membuat header
program yaitu #include <alcd.h> kemudian program akan membuat array untuk
menampung hasil pembacaan data analog pada variable kata. Untuk menggunakan ADC terlebih dahulu harus melakukan
settingan pada register-registernya yaitu setting ADMUX,ADCSRA,dan SFIOR hasil
settingan tersebut akan membuat ADC bekerja secara free running dan frekuensi
clocknya sebesar 750.000 kHz kemudian untuk menampilkan data hasil konversi
harus menentukan PORT yang akan menjadi output pada LCD selanjutnya program
akan melakukan pembacaan data analog pada tengangan referensi melalui perintah
data=read_adc(0); dan nilai hasil pembacaan tersebut akan disimpan di data yang
akan dijadikan sebagai penentu nilai variable balik yang merupakan hasil
konversi digitalnya. Untuk menampilkan hasil konversinya digunakan perintak lcd_puts(kata);
perintah ini berfungsi untuk menampilkan data nilai konversi yang tersimpan
dalam array kata ke LCD.
G. Kesimpulan
Dari hasil praktikum yang dilakukan
dapat disimpulkan:
1. ADC
merupakan fitur yang ada dalam mikrokontroller yang berfungsi sebagai piranti
pengkonversi data analog menjadi digital.
2. ADC
memiliki 3 fitur utama yaitu ADMUX,ADCSRA, dan SFIOR
3. Dalam aplikasi mikrokontroller atmega16
sinyal analog disini berupa tegangan refrensi yang diberikan dari 0 volt – 5
volt melalui pin vcc dan vreff. Kemudian sinyal ini akan diolah oleh fasilitas
ADC yang ada pada mikrokontroller ATmega 16 yang terdapat pada PORT A sebanyak
8 kanal ADC. Hanya dengan menggunakan pin inilah data ADC dapat di baca, namun
fasilitas ini hanya dapat membaca 8 buat data ADC saja.
Komentar
Posting Komentar