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 =
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