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

Postingan populer dari blog ini

LAPORAN MIKROKONTROLER TIMER/COUNTER

LAPORAN MIKROKONTROLER RTC

LAPORAN MIKROKONTROLER KEYPAD