ADC DAN PWM ATMEGA8535

9
ADC & PWM A. DASAR TEORI 1. Analog to Digital Converter (ADC) ADC digunakan untuk mengubah sinyal input yang analog menjadi sinyal digital agar dapat diolah oleh mikrokontroler. Adapun fitur dari ADC ATMega8535 adalah sebagai berikut: a. Resolusi 10 bit. b. Waktu konversi 65-260 us. c. 0-vcc range input ADC. d. Memiliki 8 channel input. e. Tiga mode pemilihan tegangan referensi. 1.1Mode Operasi a. Mode Konversi Tunggal (Single Conversion) Dalam mode ini, konversi dilakukan untuk sekali pembacaan sampel tegangan input. Konversi dimulai ketika bit ADSC di- set dan bit ini tetap set sampai satu kali konversi selesai, setelah itu bit ini otomatis di clear CPU. b. 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) 1.2Register Pengendali ADC a. ADC Multiplexer Selection Register (ADMUX) Gambar 6.1 Register ADMUX Bit 7:6 – REFS1:0 (Reference Selection Bits)

description

mikrokontroler, ATMEGA8535, ADMUX, ADCSRA, ADCH, ADCL, SFIOR, prescaler, tegangan referensi ADC, analog to digital converter

Transcript of ADC DAN PWM ATMEGA8535

Page 1: ADC DAN PWM ATMEGA8535

ADC & PWM

A. DASAR TEORI1. Analog to Digital Converter (ADC)

ADC digunakan untuk mengubah sinyal input yang analog menjadi sinyal digital agar dapat diolah oleh mikrokontroler. Adapun fitur dari ADC ATMega8535 adalah sebagai berikut:a. Resolusi 10 bit.b. Waktu konversi 65-260 us.c. 0-vcc range input ADC.d. Memiliki 8 channel input.e. Tiga mode pemilihan tegangan referensi.

1.1 Mode Operasia. Mode Konversi Tunggal (Single Conversion)

Dalam mode ini, konversi dilakukan untuk sekali pembacaan sampel tegangan input. Konversi dimulai ketika bit ADSC di-set dan bit ini tetap set sampai satu kali konversi selesai, setelah itu bit ini otomatis di clear CPU.

b. 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)

1.2 Register Pengendali ADCa. ADC Multiplexer Selection Register (ADMUX)

Gambar 6.1 Register ADMUX

Bit 7:6 – REFS1:0 (Reference Selection Bits)Kedua bit ini digunakan untuk memilih tegangan referensi ADC yang akan digunakan.

Tabel 6.1 Pemilihan Mode Tegangan Referensi ADC

Page 2: ADC DAN PWM ATMEGA8535

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.Bits 3:0 – MUX3:0 (Analog Channel Selection Bits) Bit ini digunakan untuk memilih saluran input ADC.

Tabel 6.2 Pilihan Saluran Masukan ADC MUX 3…0 Pin input0000 ADC00001 ADC10010 1DC20011 ADC30100 ADC40101 ADC50110 ADC60111 ADC7

b. ADC Control and Status Register A (ADCSRA)

Gambar 6.2 Register ADCSRA

Bit 7 – ADEN : ADC EnableBit ini digunakan untuk mengaktifkan ADC, bernilai awal 0, jika bernilai 1 maka ADC aktif.Bit 6 – ADSC : ADC Start ConversionPenge-set-an bit ini membuat ADC memulai konversi sinyal masukan. Ketika konversi telah selesai, maka otomatis bit ini di-clear.Bit 5 – ADATE : ADC Auto Trigger EnableBit 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 FlagBit ini set ketika konversi ADC telah selesai dan Data Register telah ter-updated. Bit ini otomatis di-clear ketika eksekusi interupsi ADC conversion complete.

Bit 3 – ADIE : ADC Interupt EnableBit 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.

Page 3: ADC DAN PWM ATMEGA8535

Bit 2 – ADPS2:0 :ADC Prescaler Select BitDigunakan untuk menentukan faktor pembagi frekuensi clock CPU yang akan digunakan.

Tabel 6.3 Pilihan Nilai Prescaler

c. The ADC Data Register (ADCH:ADCL)

Gambar 6.3 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. Special Function IO Register (SFIOR)Register SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC.untuk operasi ADC, bit ACME,PUD,PSR2 dan PSR10 tidak dipakai.

Gambar 6.4 Register SFIOR

Page 4: ADC DAN PWM ATMEGA8535

Bit ADTS2:0 mengatur pemicu eksternal operasi ADC. Hanya berfungsi jika bit ADATE pada ADCSRA bernilai 1. Bernilai awal 000 sehingga ADC bekerja pada Free Running dan tidak ada interupsi yang dihasilkan.

Tabel 6.4 Pilihan Sumber Trigger

2. Pulse Width Modulation (PWM)Pulse Width Modulation (PWM) adalah cara yang digunakan untuk menyediakan tegangan

yang nilainya diantara nilai off (zero) dan nilai on (max) dengan memanipulasi lebar pulsa digital. Pulsa PWM adalah sederetan pulsa digital yang lebar pulsanya dapat diatur. PWM digunakan untuk mengatur kecepatan motor DC, mengatur gelap terang nyala LED, dan aplikasi lainnya.

PWM menggunakan gelombang kotak dengan duty cycle tertentu yang menghasilkan berbagai nilai rata-rata dari suatu bentuk gelombang. Duty cycle menyatakan presentase keadaan logika high (pulse) dalam satu periode sinyal. Satu siklus diawali oleh transisi low to high dari sinyal dan berakhir pada transisi berikutnya. Selama satu siklus, jika waktu sinyal pada keadaan high sama dengan low maka dikatakan sinyal mempunyai duty cycle 50%. Fitur PWM merupakan salah satu keunggulan Timer/Counter pada ATMega8535. Pengaturan duty cycle dan nilai rata-rata tegangan DC dilakukan dengan mengatur nilai register OCRn pada Timer/counter

Average Average Average DC DC 50% DC 75% 25%

Nyala red redup Nyala sedang Nyala led terang 255 255ocr=128 0 0

Gambar 6.5 Pola Kerja PWM

Page 5: ADC DAN PWM ATMEGA8535

6.1 Konfigurasi PWMRegister yang digunakan untuk mengkonfigurasi penggunaan PWM berada pada register untuk Timer/counter . Timer/counter0 dan Timer/counter2 memiliki PWM 8 bit, Timer/counter1 memiliki PWM 9 bit,PWM 8 bit dan PWM 10 bit. Output PWM terletak pada pin OC0(timer0), pin OC1A dan OC1B (timer 1) , serta pin OC2 (timer2). Untuk memahami penggunaan PWM,berikut ini contoh pemakaian Timer/Counter0 sebagai PWM.Register untuk Konfigurasi PWM :a. Timer/Counter Register (TCNT0)

Gambar 6.6 Register TCNT0Register ini bertugas menghitung pulsa yang masuk ke dalam rimer/counter. Untuk menggunakan PWM, TCNT0 perlu ditentukan nilai awalnya yaitu 0.

b. Output Compare Register (OCR0)

Gambar 6.7 Register OCR0Register 8 bit ini secara kontinu dibandingkan dengan isi TCNT0. Register ini dapat ditentukan isinya. Ketika isi TCNT0=OCR0 maka akan terjadi compare match yang dapat membangkitkan pulsa PWM pada pin OC0

c. Timer/Counter Control Register (TCCR0)Pemilihan Timer untuk mode PWM dikonfigurasi melalui bit WGM01 dan WGM00 pada register TCCR0.

Gambar 6.8 Register TCCR0

Tabel 6.5 Konfigurasi Bit WGM01 dan WGM00

Page 6: ADC DAN PWM ATMEGA8535

6.2 Mode Operasi PWMa. Mode Fast PWM

Tabel 6.6 Konfigurasi Bit COM01 dan COM00 Compare Output Mode Fast PWM

Dalam mode ini, TCNT0 mencacah dari BOTTOM(0x00) terus mencacah naik (counting up) hingga mencapai MAX (0xff), kemudian mulai dari BOTTOM lagi dan begitu seterusnya (single slope).

Gambar 6.9 Pulsa Fast PWM

b. Mode Phase Correct PWM

Tabel 6.7 Konfigurasi Bit COM01 dan COM00 Compare Output Mode Fast PWM

Page 7: ADC DAN PWM ATMEGA8535

Ketika COM00 clear dan COM01 set, pin OC0 clear ketika terjadi compare match (nilai TCNT0=OCR0) saat timer mencacah naik (counting up), dan pin OC0 set jika terjadi compare match ketika timer mencacah turun (counting down), kondisi ini menghasilkan keluaran berupa non-inverting PWM. Sebaliknya, ketika COM00 set dan COM01 juga set, maka pin OC0 set ketika terjadi compare match saat timer naik dan OC0 clear saat timer mencacah turun, kondisi ini menghasilkan inverting PWM.Pada mode ini, TCNT0 mencacah dari BOTTOM (0x00) counting up hingga mencapai MAX(0xff) kemudian counting down hingga BOTTOM, begitu seterusnya (dual slope).

Gambar 6.10 Pulsa Phase Correct PWM