Rabu, 30 Mei 2018

ADC (ANALOG TO DIGITAL CONVERTION)


LAPORAN
PRAKTIK MIKROKONTROLLER
DOSEN PENGAMPU MUSLIKHIN, M.Pd.



ADC (ANALOG TO DIGITAL CONVERTION)

Disusun oleh:
Istiqomah        16507134035  Angkatan 2016



TEKNIK ELEKTRONIKA-D3
PENDIDIKAN TEKNIK ELEKTRONIKA DAN INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2018






A.    TUJUAN
Setelah melakukan praktik mahasiswa diharapkan dapat:
1.    Memahami konfigurasi ADC
2.    Menguasai pemrograman ADC untuk aplikasi input sensor

B.     TEORI DASAR
ADC (Analog To Digital Converter) adalah perangkat elektronika yang berfungsi untuk mengubah sinyal analog (kontinyu) menjadi sinyal digital (deskret). 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).

                  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 ADC. Dengan cara sebaliknya akan diperoleh nilai tegangan input. Resulosi dapat ditingkatkan dengan memperkecil nilai referensi, misalnya:
Jika diketahui        Vref                 = 2,5 V
Prosesor           = ATmega16 (8bit)
Resolusi AD   = 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
a.      Modul AVR Atmega8535/8/16/32
b.      PC (Personal computer)/laptop
c.       Jumper
d.      Power Supply 5-12 V

D.    SKEMA RANGKAIAN



E.     LANGKAH KERJA DAN PENGAMATAN
a.      Buatlah alat dan bahan seperti rangkaian di atas;
b.      Buatlah program seperti yang tertulis berikut, uji cobakan/simulasikanlah di Proteus lalu coba pada hardware nyata;
c.       Cobalah list program berikut;
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 22/02/2018
Author  : tyery08
Company : embeeminded.blogspot.com
Comments:


Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega16.h>

#include <delay.h>

// Alphanumeric LCD functions
#include <alcd.h>

#define ADC_VREF_TYPE 0x00

// Read the AD conversion result
unsigned int 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 ADCW;
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=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: 1000,000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: Free Running
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0xA3;
SFIOR&=0x1F;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 2
// RD - PORTD Bit 1
// EN - PORTD Bit 3
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 8
lcd_init(8);

while (1)
      {
         data=read_adc(0);
         sprintf(kata,"suhu:%d",data);
         lcd_gotoxy(0,0);
         lcd_puts(kata);
         delay_ms(100); 
         lcd_clear();        


      };
}
F.      HASIL DAN ANALISIS

            Berdasarkan data diatas maka dapat dianalisis bahwa pada rangkaian ADC (Analog to Digital Converter) tersebut digunakan mikrokontroler jenis AVR Atmeg16. PORTD sebagai output yang akan ditampilkan pada LCD. Potensiometer digunakan untuk mengatur outputan yang diinginkan dengan cara memutar potensiometer. Pada program code vision disetting sedemikian rupa sehingga nantinya muncul tampilan di LCD suhu yang telah disetting tersebut. ADC mengkonversi sinyal analog ke bentuk besaran yang merupakan rasio perbandingan sinyal input dengan 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). Signal = (sample/max_value) * reference_voltage = (153/255) * 5 = 3 Volts
           
G.    KESIMPULAN
Berdasarkan hasil praktikum yang telah dilakukan dan teori yang ada maka dapat disimpulkan bahwa ADC (Analog to Digital Converter) merupakan perangkat elektronika yang mengubah sinyal analog menjadi sinyal digital. Penerapan ADC banyak digunakan sebagai rangkaian pengukuran/pengujian, komunikasi digital serta pengatur proses industri yang kebanyakan digunakan sebagai pengatur sensor suhu, cahaya, tekanan dan yang lainnya. ADC dapat dikonfigurasi dengan memperhatikan kecepatan sinyal sampling, resolusi ADC, tegangan referensi yang digunakan, dan prosesor yang digunakan pada rangkaian ADC tersebut.


Tidak ada komentar:

Posting Komentar