Вы находитесь на странице: 1из 7

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.1 Mode 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.2 Register Pengendali ADC


a. 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


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 input
0000 ADC0
0001 ADC1
0010 1DC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7

b. ADC Control and Status Register A (ADCSRA)

Gambar 6.2 Register 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
Penge-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 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 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 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.
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


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 255
ocr=128
0 0

Gambar 6.5 Pola Kerja PWM


6.1 Konfigurasi PWM
Register 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 TCNT0


Register 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 OCR0


Register 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


6.2 Mode Operasi PWM
a. 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
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

Вам также может понравиться