praktikum 7 adc

Upload: frebu-trilangga

Post on 07-Jan-2016

8 views

Category:

Documents


0 download

DESCRIPTION

wasd

TRANSCRIPT

PERCOBAAN VIIMENGGUNAKAN ANALOG TO DIGITAL CONVERTER (ADC) DALAM MIKROKONTROLER ATMEGA85351. TUJUAN1. Mengetahui dan memahami cara menggunakan ADC yang ada di dalam mikrokontroler.

2. Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk mengonversi data analog menjadi data digital.

2. DASAR TEORI

Penggunaan ADC sebagai pengonversi data analog menjadi data digital merupakan sesuatu hal yang diperlukan jika data yang masuk ke dalam mikrokontroler, biasanya data dari sensor berupa sinyal analog.

Fitur ADC dalam ATMega8535 adalah sebagai berikut:

Resolusi 10 bit.

Waktu konversi 65-260 s.

Input 8 kanal.

Input ADC 0-5Vcc.

3 Mode pemilihan tegangan referensi.

INISIALISASI ADC

Ada beberapa langkah yang harus dilakukan untuk inisialisasi ADC, yaitu penentuan clock, tegangan referensi, format data output dan mode pembacaan. Inisialisasi ini dilakukan pada register-register berikut:

1. ADMUX (ADC Multiplexer Selection Register)ADMUX merupakan register yang mengatur tegangan referensi yang digunakan ADC,format data output dan saluran ADC.

a. REFS0-1 (Reference Selection Bits)REFS0-1 adalah bit-bit pengatur mode tegangan referensi ADC.

b. ADLAR (ADC Left Adjust Result) ADLAR adalah bit keluaran ADC. Jika ADC telah selesai konversi, maka data ADC akan diletakkan di 2 register, yaitu ADCH dan ADCL dengan format sesuai ADLAR.

Format data ADC jika ADLAR=0

Format data ADC jika ADLAR=1

c. MUX0-4 (Analog Channel and Gain Selection Bits) MUX0-4 adalah bit-bit pemilih saluran pembacaan ADC.

2. ADCSRA (ADC Control and Status Register A)

ADCSRA adalah register 8 bit yang berfungsi untuk melakukan manajemen sinyal kontrol dan status ADC.

a. ADEN (ADC Enable)

ADEN merupakan bit pengatur aktivasi ADC. Jika bernilai 1 maka ADC akan aktif.

b. ADCS (ADC Start Conversion)

ADCS merupakan bit penanda dimulainya konversi ADC. Selama konversi berlogika 1 dan akan berlogika 0 jika selesai konversi.

c. ADATE (ADC Auto Trigger Enable)

ADATE merupakan bit pengatur aktivasi picu otomatis. Jika bernilai 1 maka konversi ADC akan dimulai pada saat tepi positif pada sinyal trigger yang digunakan.

d. ADIF (ADC Interrupt Flag)

ADIF merupakan bit penanda akhir konversi ADC. Jika bernilai 1 konversi ADC pada suatu saluran telah selesai dan siap diakses.

e. ADIE (ADC Interrupt Enable)

ADIE merupakan bit pengatur aktivasi interupsi. Jika bernilai 1 maka interupsi penandaan telah selesai. Konversi ADC diaktifkan.

f. ADPS0-2 (ADC Prescaler Select Bit)

ADPS0-2 merupakan bit pengatur clock ADC.

3. SFIOR (Special Function IO Register)SFIOR adalah register 8 bit yang mengatur sumber pemicu ADC. Jika bit ADATE pada register ADCSRA bernilai 0 maka ADTS0-2 tidak berfungsi.

Rangkaian yang digunakan untuk mempelajari ADC dapat dilihat dalam Gambar 7.1. Rangkaian ini merupakan rangkaian pembagi tegangan dimana tegangan keluaran dapat dihitung dengan rumus:Vout= R2 x Vcc

R1+R2

Gambar 7.1 Rangkaian Pembagi Tegangan dengan Potensiometer

3. ALAT DAN BAHAN YANG DIGUNAKAN

1. 1 set Personal Computer/Laptop yang sudah berisi program Code Vision dan Khazama2. 1 buah catu daya DC +5V3. 1 buah multimeter

4. 1 buah ISP Downloader AVR

5. 1 buah sistem minimum AVR6. 1 buah I/O7. 1 buah potensiometer8. 1 buah kabel printer USB4. PROSEDUR 1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 7.1. Hubungkan soket jumper PORTC pada minimum system dengan soket jumper pada OUTPUT LED. Vout pada rangkaian potensiometer dihubungkan pada PORTA.0 (ADC channel 0).

Gambar 7.2 Rangkaian antarmuka mikrokontroler dengan potensiometer2. Buka program Code Vision AVR3. Buatlah project baru. Pada saat mengeset chip dan clock, set juga bagian PORTC untuk LED dan ADC seperti Gambar 7.3. Kemudian simpanlah file tersebut.

Gambar 7.3 Setting LED dan ADC4. Perhatikan blok program berikut. Arti dari blok instruksi tersebut adalah setting ADC di PORTA dan inisialisasi ADC.#define ADC_VREF_TYPE 0x60

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

}.

.

.

// ADC initialization

// ADC Clock frequency: 31.250 kHz

// ADC Voltage Reference: AVCC 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=0xA7;

SFIOR&=0x0F;5. Blok berikut merupakan deklarasi variabel hasil konversi ADC.

// Declare your local variables here

unsigned char adcdt;6. Tuliskan script berikut dalam program utama:while (1)

{

// Place your code here

adcdt=read_adc(0); //mengambil hasil konversi PORTC=adcdt; //ditampilkan ke LED }

}7. Ukur tegangan potensiometer (kaki tengah) sebesar 0V (sesuai tabel).8. Perhatikan dan catat nyala LED dan konversi nilai dalam desimal.

9. Hitung perhotungan nilai digital dalam desimal dengan rumus berikut:

Vdigital = Vukur / Vcc *255 Contoh: misal tegangan analog yang diukur 1 V, maka tegangan digital adalah:

V = 1/5 *255 = 51 desimal, atau 33H atau 00110011B

5. DATA HASIL PERCOBAAN

NoTegangan analog (0-5V)Tampilan LED (bit7-bit0)Nilai digital LED (decimal)Nilai digital perhitungan (desimal)

100000000000

20.516000110112725,5

31,012001101115551

41.502010011117976,5

52,00401101111111102

62.50210000111135127,5

73,00710011011155153

83.5010110111183178

94,0411011111223204

104.511101111239229,5

11511111111255255

6. PEMBAHASANNilai digital perhitungan: V ukurVCCV digital = (Vukur/VCC)* 255

0,5525,5

1551

1,5576,5

25102

2,55127,5

35153

3,55178,5

45204

4,55229,5

55255

. PORT C sebagai output . pada saat tegangan input analog bernilai nol maka tampilan LED 00000000 . semakin tinggi nilai tegangan maka tampilan LED akan naik pula dan bervariasi

. pada saat nilai input tegangan analog bernilai 5 volt maka tampilan LED 11111111 dan nilai desimalnya 255

KESIMPULAN

Percobaan ADC menggunakan potensiometer ini berfungsi merubah inputan dari Mikrokontroler yang mengatur penyalaan LED dengan bilangan biner (dari bit 0 7) , contoh : jika 2 , maka 000110011 yang berarti nilai LED decimal 27 . dan seterusnya .

Nyala LED ini berdasarkan nilai yang kita atur dari potensiometer , dari nilai 0 sampai dengan 5 volt . cara listing program dengan menggunakan ADC ini dengan menggunakan perintah unsigned char adcdt di dalam variabel local , dan menambahkan fungsi read untuk membaca konversi dan memilih port untuk menayangkan LED ._1350801664.vsdISP Downloader

Minimum system AVR

I/O

Kabel USB

Kabel downloader

Kabel hitam

Potensiometer