Anda di halaman 1dari 4

Oleh: RESTIA ADC ADC (analog to digital converter) adalah suatu piranti yang digunakan untuk mengubah isyarat

analog menjadi isyarat digital. Disini akan dibahas ADC yang terdapat pada mikrokontroler (keluarga AVR). Adapun fitur dari ADC pada ATMega8535 adalah sebagai berikut : 1. Resolusi 10 bit 2. Waktu konversi 65-260 uS 3. 0-VCC range input ADC 4. Memiliki 8 channel input 5. Tiga mode pemilihan tegangan referensi Mode Operasi 1. Mode konversi tunggal ( single conversion) Dalam mode ini, konversi dilakukan dalam sekali pembacaan sampel tegangan input. Konversi dimulai ketika bit ADSC di-set dan bit ini tetap di-set sampai satu kali konversi selesai, setelah itubit ini otomatis di clear CPU. 2. Mode konversi kontinu ( free running) Dalam mode ini, konversi dilakukan secara terus menerus (ADC membaca sampel tegangan input lalu dikonversi dan hasilnya ditampung di register ADCH dan ADCL secara terus menerus)

Register pengendali ADC a. ADC multiplexer selection register (ADMUX)

Bit 7:6 - REFS1:0 (reference selection bits) kedua bit ini digunakan untuk memilih tegangan referensi ADC yang akan digunakan.

Bit 5 - ADLAR (ADC Left Adjust Result) Bit ini digunakan untuk memilih mode data keluaran ADC. Bit ini berakibat pada format data hasil konversi dalam register ADCH:ADCL

Bit 3:0 - MUX3:0 (Analog Channel Selection Bits) Bit ini digunakan untuk memilih saluran input ADC.

b. ADC Control and Status Register A (ADCSRA)

Bit 7 - ADEN : ADC Enable Bit ini digunakan untuk mengaktifkan ADC, bernilai awal 0, jika bernilai 1 maka ADC aktif. Bit 6 - ADSC : ADC Start Conversion Set bit ini untuk memulai konversi sinyal masukan. Ketika konversi telah selesai, maka otomatis bit ini di clear. Bit 5 - ADATE : ADC Auto Trigger Enable Bit ini digunakan untuk mengatur sumber pemicu terjadinya konversi ADC. Jika bit ini di set maka akan mengaktifkan auto triggering register SFIOR dan menggunakan mode free running. Bit 4 - ADIF : ADC Interupt Flag Bit ini di set ketika konversi ADC telah selesai dan data register telah ter-update. Bit ini otomatis di clear ketika eksekusi interupsi ADC conversion complete. Bit 3 - ADIE : ADC Interupt Enable Bit ini digunakan untuk mengaktifkan interupsi ADC conversion complete. Bernilai awal 0. Jika di set dan konversi ADC telah selesai, maka sebuah interupsi akan dieksekusi sesuai dengan jenis interupsi yang ditulis di program. Bit 2 - ADPS2:0 : ADC Prescaler Select Bit Digunakan untuk menentukan faktor pembagi frekuensi clock CPU yang akan digunakan.

c. ADC Data Register (ADCH:ADCL)

ADCH dan ADCL (masing-masing 8 bit register) merupakan bit penampung hasil konversi ADC. Format data hasil konversi berdasarkan setting di ADLAR. Untuk membaca data di register ADCH:ADCL bisa digunakan perintah lsl, lsr, rol, dan ror. d. Spesial Function IO Regist er (SFIOR) Register SFIOR merupakan register 8 bit pengatur sumber pemicu konversi ADC. Untuk operasiADC, bit ACME, PUD, PSR2, dan PSR10 tidak dipakai.

Bit ADTS2:0 mengatur pemicu eksternal operasi ADC. Hanya berfungsi jika bit ADATE pada ADCSRA bernilai 1. Bernilai awal 000 sehingga ADC bekerja pada mode free running dan tidak ada interupsi yang dihasilkan. Prinsip kerja ADC adalah 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).

Listing Program 1. Perhatikan setting register port B. Kita telah men-set port B sebagai output.

2. Perhatikan bagian listing kode ADC

terlihat setting register-register yang mempengaruhi, yaitu ADMUX, ADCSRA, SFIOR.

3. Sekarang kita mendeklarasikan variable unsigned char didalam fungsi main. Dipilih unsigned char karena tadi pada saat setting ADC (langkah ke 5) kita meng-enable-kan box use 8 bit, yang berarti kita memilih ADC 8 bit. Berikut pendeklarasian variabelnya,

4. Nilai hasil konversi ADC ditempatkan dengan nama variable adc_data[n]. Berikut listing kode untuk mendapatkan nilai hasil konversi ADC dan menampilkannya pada 8 bit output port B.

Anda mungkin juga menyukai