Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Tabel 8. Compare Output Mode, Phase Correct and Phase and Frequency
Correct mode.
0). Dalam mode ini penghitungan arah selalu up (incrementing), dan tidak ada
counter yang jelas dilakukan. Counter hanya overruns ketika melewati
maksimum nilai 8-bit (TOP = 0xFF) dan kemudian restart dari bawah (0x00).
Dalam operasi normal Timer / counter meluap bendera (TOV0) akan ditetapkan
dalam yang sama Timer jam siklus sebagai TCNT0 menjadi nol. Bendera TOV0
dalam hal ini berperilaku seperti kesembilan sebuah bit, kecuali bahwa itu hanya
diatur, tidak dibersihkan. Namun, dikombinasikan dengan overflow timer
interrupt yang secara otomatis membersihkan bendera TOV0, resolusi waktu
dapat ditingkatkan dengan software. di sana ada kasus khusus yang perlu
diperhatikan dalam mode normal, nilai baru counter dapat ditulis kapan saja.
Output membandingkan Unit dapat digunakan untuk menghasilkan interupsi
di beberapa waktu tertentu. Menggunakan output dibandingkan dengan
menghasilkan bentuk gelombang dalam mode normal tidak dianjurkan, karena
ini akan menempati terlalu banyak waktu CPU.
2.
Untuk menghasilkan output gelombang dalam mode CTC, output OC0 dapat diatur
menjadi logika toogle level pada setiap perbandingan dengan menetapkan mode bit
output compare dengan mode toogle (COM01: 0 = 1). Nilai OC0 tidak akan terlihat
pada port pin kecuali arah data untuk pin diatur ke output.
3.
Dengan variabel N mewakili factor prescale (1, 8, 32, 64, 128, 256 atau 1024)
PULSE WIDTH MODULATION (PWM)
Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi
lebar sinyal yang dinyatakan dengan pulsa dalam suatu perioda, untuk mendapatkan
tegangan rata-rata yang berbeda. Beberapa contoh aplikasi PWM adalah
temodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang
masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasiaplikasi lainnya. Aplikasi PWM berbasis mikrokontroler biasanya berupa
pengendalian kecepatan motor DC, pengendalian motor servo, pengaturan nyala
terang LED dan lain sebagainya.
Sinyal PWM pada umumnya memiliki amplitudo dan frekuensi dasar yang tetap,
namun memiliki lebar pulsa yang bervariasi. Lebar Pulsa PWM berbanding lurus
dengan amplitudo sinyal asli yang belum termodulasi. Artinya, Sinyal PWM
memiliki frekuensi gelombang yang tetap namun duty cycle bervariasi (antara 0%
hingga 100%).
10
Pulse Width Modulation (PWM) merupakan salah satu teknik untuk mendapatkan
signal analog dari sebuah piranti digital. Sebenarnya Sinyal PWM dapat dibangkitkan
dengan banyak cara, dapat menggunakan metode analog dengan menggunakan
rankaian op-amp atau dengan menggunakan metode digital. Dengan metode analog
setiap perubahan PWM-nya sangat halus, sedangkan menggunakan metode digital
setiap perubahan PWM dipengaruhi oleh resolusi dari PWM itu sendiri. Resolusi
adalah jumlah variasi perubahan nilai dalam PWM tersebut. Misalkan suatu PWM
memiliki resolusi 8 bit berarti PWM ini memiliki variasi perubahan nilai sebanyak
28 = 256 variasi mulai dari 0 255 perubahan nilai yang mewakili duty cycle 0
100% dari keluaran PWM tersebut.
Dengan cara mengatur lebar pulsa on dan off dalam satu perioda gelombang
melalui pemberian besar sinyal referensi output dari suatu PWM akan didapat duty
cycle yang diinginkan. Duty cycle 100% berarti sinyal tegangan pengatur motor
dilewatkan seluruhnya. Jika tegangan catu 100V, maka motor akan mendapat
tegangan 100V. pada duty cycle 50%, tegangan pada motor hanya akan diberikan
50% dari total tegangan yang ada, begitu seterusnya.
Dengan menghitung duty cycle yang diberikan, akan didapat tegangan output yang
dihasilkan. Sesuai dengan rumus yang telah dijelaskan pada gambar. Average voltage
merupakan tegangan output pada motor yang dikontrol oleh sinyal PWM. a adalah nilai
duty cycle saat kondisi sinyal on. b adalah nilai duty cycle saat kondisi sinyal off.
Vfull adalah tegangan maksimum pada motor. Dengan menggunakan rumus diatas,
maka akan didapatkan tegangan output sesuai dengan sinyal kontrol PWM yang
dibangkitkan.
III. ALAT dan BAHAN
PC / Laptop ( Telah terinstall CVAVR )
Downloader
Osiloskop
Modul ATMEGA 128
Voltmeter DC
11
V. LANGKAH PERCOBAAN
1. Buka software Code Vision AVR. Maka akan muncul jendela dari CVAVR.
12
Setelah memilih tipe dari chip yang digunakan, maka akan muncul jendela
wizard dari CVAVR. Wizard disini bertujuan untuk memudahkan user
mengaktifkan dan mengatur fitur yang akan digunakan.
Pertama-tama masuk ke tab Chip. Pilih varian dari chip yang digunakan.
Dalam praktikum kali ini yaitu ATMEGA128. Atur juga frekuensi dari kristal
eksternal yang digunakan oleh chip tersebut
Untuk mengaktifkan PWM, masuk ke tab Timer. Pilih Timer yang akan
digunakan. Misal Timer 0.
Ada beberapa hal yang perlu diatur. Yang pertama adalah Clock Source, yaitu
sumber clock dati Timer/Counter yang digunakan. Karena sumber clock yang
digunakan bersumber dari clock sistem, maka kita pilih System Clock
13
Hal selanjutnya yang perlu kita atur ialah Clock Value. Clock Value sangat
berhubungan dengan prescaller yang digunakan
Clock Value = System Clock / Prescaller
Jika prescaller yang digunakan ialah 1 maka nilai Clock Value 8 MHz atau 8000
KHz.
Setelah mengatur Clock Value, Selanjutnya ialah mengatur Mode Operasi dari
Timer/Counter yang digunakan. Misal kita gunakan mode operasi Fast PWM.
Kemudian kita atur bagaimana output gelombang yang dikeluarkan oleh PWM.
Pada mode Fast PWM terdapat 2 pilihan yaitu membalik dan tak membalik. Kita
pilih yang tidak membalik.
14
4. Untuk mengatur Duty Cycle PWM keluaran mikro, maka kita atur nilai dari OCRn.
Jika yang digunakan Timer 0, maka kita atur nilai dari OCR0. Tuliskan pada while
seperti contoh dibawah ini.
5.
15
7. Pilih tab After Build. Pada Action pilih Program the Chip. Hilangkan
centang pada JTAGEN=0 kemudian OK.
8. Compile program. Perbaiki program apabila terdapat error. Jika tidak ada, Build
program.
9. Amati bentuk gelombang PWM keluaran dari mikrokontroller, kemudian ukur
tegangan keluaran dengan Multimeter Digital dan catat pada tabel.
10. Variasikan nilai OCR sehingga didapat beberapa data.
11. Lakukan semua prosedur dengan Mode CTC PWM dan Fast PWM dengan
mengubah prescaller dan Timer yang digunakan sesuai tabel.
16
Timer
Prescaler
Timer 0
Timer 1
Nilai
OCR
FPWM Teori
(Hz)
FPWM
Pengukuran
(Hz)
Duty Cycle
(%)
Tegangan PWM
(V)
16
235.294,12
235.300,00
50,02
2,519
32
121.212,12
121.300,00
50,06
2,520
64
61.538,46
61.570,00
50,07
2,520
92
43.010,75
43.020,00
50,03
2,518
128
31.007,75
31.020,00
50,06
2,518
16
29.411,76
29.480,00
50,12
2,518
32
15.151,52
15.150,00
50
2,514
64
7.692,31
7.703,00
50,15
2,513
92
5.376,34
5.376,00
50
2,513
128
3.875,97
3.876,00
50
2,514
64
61.538,46
61.570,00
50,07
2,520
128
31.007,75
31.020,00
50,06
2,518
192
20.725,39
20.730,00
50,02
2,514
256
15.564,20
15.560,00
50,12
2,514
512
7.797,27
7.800,00
50,01
2,513
64
7.692,31
7.703,00
50,15
2,513
128
3.875,97
3.876,00
50
2,514
192
2.590,67
2.591,00
50,05
2,512
256
1.945,53
1.949,00
50,09
2,512
512
974,66
974,70
50
2,512
17
Timer
Prescaler
Timer 0
Timer 1
FPWM Teori
(Hz)
Nilai OCR
Duty Cycle
(%)
Tegangan PWM
Teori
Pengukuran
Teori
Pengukuran
16
31.250,00
31.210,00
6,25
6,39
15
0,317
32
31.250,00
31.210,00
12,5
12,76
31
0,609
64
31.250,00
31.210,00
25
25,33
63
1,263
128
31.250,00
31.210,00
50
50,46
127
2,534
192
31.250,00
31.210,00
75
75,34
191
3,75
16
3.906,25
3.906,00
6,25
6,71
15
0,317
32
3.906,25
3.906,00
12,5
12,93
31
0,629
64
3.906,25
3.906,00
25
23,31
63
1,264
128
3.906,25
3.906,00
50
50,47
127
2,536
192
3.906,25
3.906,00
75
75,35
191
3,76
64
7.812,50
7.813,00
6,25
6,40
63
0,302
128
7.812,50
7.813,00
12,5
12,66
127
0,615
192
7.812,50
7.813,00
18,75
18,88
191
0,926
256
7.812,50
7.813,00
25
25,12
255
1,242
512
7.812,50
7.813,00
50
50,16
511
2,503
64
976,56
976,60
6,25
6,35
63
0,300
128
976,56
976,60
12,5
12,62
127
0,610
192
976,56
976,60
18,75
18,85
191
0,926
256
976,56
976,60
25
25,17
255
1,242
512
976,56
976,60
50
50,10
511
2,502
18
VII.
KODE PROGRAM
19
20
21
22
VIII. ANALISA
PWM dapat dibangkitkan oleh mikrokontroller. Salah satunya oleh Mikrokontroller
ATMEGA 128 dengan mengaktifkan Timer/Counter. Pada ATMEGA128 terdapat 4
Timer/Counter, yaitu :
Timer/Counter 0 (8 bit)
Timer/Counter 1 (16 bit)
Timer/Counter 2 (8 bit)
Timer/Counter 3 (16 bit)
Mode Operasi yang dapat digunakan pada masing-masing timer adalah :
Normal Mode
Fast PWM Mode
CTC Mode
Phase Correct PWM Mode
Masing-masing mode operasi memiliki karakteristik yang berbeda. Pada praktikum ini
yang diamati adalah Mode Fast PWM dan CTC.
Perbedaan pertama terletak pada isi atau nilai register TCCR0 apabila menggunakan
Timer/Counter 0, sedangkan ketika menggunakan Timer/Counter 1 perbedaannya
terletak pada register TCCR1A dan TCCR1B.
Pada Timer/Counter 0
Fast PWM Mode
TCCR0=(1<<WGM00) | (1<<COM01) | (0<<COM00) | (1<<WGM01) | (0<<CS02) | (0<<CS01) | (1<<CS00);
CTC Mode
TCCR0=(0<<WGM00) | (0<<COM01) | (1<<COM00) | (1<<WGM01) | (0<<CS02) | (0<<CS01) | (1<<CS00);
Register TCCR0
23
Pada Timer/Counter 1
Fast PWM Mode
TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<COM1C1) | (0<<COM1C0) | (1<<WGM11) | (1<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
CTC Mode
TCCR1A=(0<<COM1A1) | (1<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<COM1C1) | (0<<COM1C0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
24
Perbedaan kedua,
Mode CTC PWM (sampel data hanya pada Timer 0)
Timer
Prescaler
Timer 0
Nilai
OCR
FPWM Teori
(Hz)
FPWM
Pengukuran
(Hz)
Duty Cycle
(%)
Tegangan PWM
(V)
16
235.294,12
235.300,00
50,02
2,519
32
121.212,12
121.300,00
50,06
2,520
64
61.538,46
61.570,00
50,07
2,520
92
43.010,75
43.020,00
50,03
2,518
128
31.007,75
31.020,00
50,06
2,518
16
29.411,76
29.480,00
50,12
2,518
32
15.151,52
15.150,00
50
2,514
64
7.692,31
7.703,00
50,15
2,513
92
5.376,34
5.376,00
50
2,513
128
3.875,97
3.876,00
50
2,514
Prescaler
Nilai OCR
FPWM Teori
(Hz)
Teori
Timer 0
Duty Cycle
(%)
Tegangan
PWM
16
31.250,00
31.210,00
6,25
6,39
0,317
32
31.250,00
31.210,00
12,5
12,76
0,609
64
31.250,00
31.210,00
25
25,33
1,263
128
31.250,00
31.210,00
50
50,46
2,534
192
31.250,00
31.210,00
75
75,34
3,75
16
3.906,25
3.906,00
6,25
6,71
0,317
32
3.906,25
3.906,00
12,5
12,93
0,629
64
3.906,25
3.906,00
25
23,31
1,264
128
3.906,25
3.906,00
50
50,47
2,536
192
3.906,25
3.906,00
75
75,35
3,76
25
Timer/Counter 0
FOCn =
2 ( 1+ )
8M
2 x 1 x ( 1+16 )
= 235,294 KHz
Mode CTC ; Prescaller = 8 ; OCR0 = 16
FOCn =
2 ( 1+ )
8M
=
2 x 8 x ( 1+16 )
= 29,411 KHz
Timer/Counter 1
Mode CTC ; Prescaller = 1 ; OCR0 = 64
FOCn =
2 ( 1+ )
8M
=
2 x 1 x ( 1+64 )
FOCn =
256
8M
1 x 256
= 31,250 KHz
Mode Fast PWM ; Prescaller = 8;
FOCn =
256
8M
8 x 256
= 3,906 KHz
Timer/Counter 1
Mode Fast PWM ; Prescaller = 1;
FOCn =
1024
8M
1 x 1024
= 7,8125 KHz
= 61,538 KHz
Mode CTC ; Prescaller = 8 ; OCR0 = 64
FOCn =
2 ( 1+ )
8M
=
2 x 8 x ( 1+64 )
1024
8M
8 x 1024
= 976,56 Hz
= 7,692 KHz
26
Terdapat beberapa variabel yang dapat kita ubah nilainya agar frekuensi PWM sesuai dengan
yang kita inginkan. Variabel tersebut adalah System Clock, Prescaller, Timer Periode.
Pada modul ATMEGA128, akan sangat sulit jika kristal yang telah terpasang (System Clock)
harus diubah nilainya. Sehingga para Programmer biasanya mengubah nilai dari Prescaller
maupun Timer Periode. Pada praktikum kali ini nilai Timer Periode tidak ubah. Sedangkan
yang diubah adalah Prescaller.
Nilai Prescaller pada Timer adalah 1, 8, 32, 64, 128, 256, 1024.
Penggunaan masing-masing nilai tersebut akan berpengaruh pada register TCCR0 apabila
menggunakan Timer/Counter 0 dan TCCR1B apabila menggunakan Timer/Counter 1.
Pada Timer/Counter 0
Prescaller = 1
TCCR0=(1<<WGM00) | (1<<COM01) | (0<<COM00) | (1<<WGM01) | (0<<CS02) | (0<<CS01) | (1<<CS00);
Prescaller = 8
TCCR0=(1<<WGM00) | (1<<COM01) | (0<<COM00) | (1<<WGM01) | (0<<CS02) | (1<<CS01) | (0<<CS00);
Pada Timer/Counter 1
Prescaller = 1
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
Prescaller = 8
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
27
IX. KESIMPULAN
Mikrokontroller ATMEGA128 dapat membangkitkan gelombang PWM dengan
frekuensi yang kita inginkan melalui TIMER. Pada ATMEGA128 terdapat 4 Timer yaitu :
Timer 0, Timer 1, Timer 2, dan Timer 3. Mode Operasi dari tersebut adalah Normal Mode,
CTC Mode, Fast PWM Mode, Phase Correct Mode. Dari keempat mode operasi tersebut,
rumus perhitungan untuk keluaran frekuensi PWM berbeda-beda.
Agar menghasilkan frekuensi PWM yang diinginkan, kita dapat mengubah nilai dari
variabel Prescaller maupun Timer Periode. Nilai Prescaller sendiri telah disediakan
yaitu 1, 8, 32, 64, 128, 256, 1024. Perubahan nilai Prescaller akan berpengaruh pada nilai
dari Regsiter TCCRn (Timer 0 dan Timer 2) atau TCCRnB (Timer 1 dan Timer 3). Lebih
tepatnya pada bit CSn2, CSn1, dan CSn0. Sedangkan Perbedaan pada tiap Mode Operasi
Timer akan berpengaruh pada Register TCCRn (Timer 0 dan Timer 2) atau TCCRnA dan
TCCRnB (Timer 1 dan Timer 3). Tepatnya pada bit WGMn0 dan WGMn1 untuk Timer 0
dan Timer 2. Sedangkan untuk Timer 1 dan Timer 3 pada bit WGMn0, WGMn1, WGMn2.
Apabila Mode Fast PWM dan Mode CTC diamati dalam hal keluaran karkteristik
gelombang keluarannya, maka :
Mode Fast PWM, Semakin bertambahnya nilai OCR, frekuensi PWM nya tetap. Namun
Duty Cycle dan Tegangan Ouput PWM berbanding lurus dengan nilai OCR sehingga
semakin besar juga.
Mode CTC, semakin bertambahnya nilai OCR, frekuensi PWM nya semakin turun.
Sedangkan Duty Cycle tetap pada nilai 50%. Begitu pula dengan tegangan output PWM
yang berkisar antara 2,5 V (Konstan).
OCR Meningkat
CTC
Fast PWM
Frekuensi turun
Frekuensi Tetap
28