Anda di halaman 1dari 13

Laporan Praktikum Mikrokontroler AVR AT mega

2560 MOH. IDRUS LUTFISH SHOHAB (2120500007)

Praktikum 5
Judul: PWM (Pulse Width Modulation)
Tanggal: 01 Apr. 22

Pendahuluan
PWM merupakan pembangkitan square wave. Pengendalian gelombang tersebut
memunculkan istilah duty cycle dengan cara menjaga waktu on sinyal. Sehingga didapatkan
berbagai nilai rata-rata dari bentuk gelombang tersebut.
Duty cycle menyatakan prosentase keadaan logika high dari square wave.Jika suatu
kondisi dimana waktu sinyal pada keadaan high = low maka sinyal tersebut mempuyai duty
cycle 50%.
Peralatan

1. Laptop dilengkapi dengan operating system


2. Minimum system ATmega2560 dengan XTALL 16MHz
3. Software pendukung berupa:
a. Proteus 8.10
b. Arduino IDE
4. Cable data
5. Motor servo
Penjelasan program
Berikut adalah penjelasan program secara umum:

1. Percobaan ke-17: PWM Phase Correct


A. Listing Program
#include <avr/io.h>

int main(void) {
DDRE = _BV(PE3);
TCCR3B = _BV(CS30);
TCCR3A = _BV(WGM30)|_BV(COM3A1);
OCR3A = 200;
while(1){}
}

B. Wiring
C. Hasil Percobaan

Ton= 25us

Toff=6,75us

periode = 31,75us

Frekuensi = f/ 2 N TOP = 16M / 2.1.225 = 31,37KHz

Frekuensi (Simulasi) = 1/T= 1/31,75 us = 31,42KHz

Persen eror = 1.21%


Duty cycle = Ton/T = 78,44%

D. Analisa
Pada percobaan ke 17 ini melakukan percobaan PWM phase correct. Output PWM
diinisialisasi ke IO5 (pin PE3). Untuk prescaller 1 digunakan saat CS30 pada TTCCR3B. Untuk
input non inverting digunakan saat COM3A1 yang terdapat di TCCR3A. Selain itu, terdapat
WGM30 dengan nilai TOP adalah 0x00FF.. Sinyal PWM diawali dengan sinyal high untuk
Tdalam keadaan ON. Fungsi dari OCRA3A adalah untuk menampung nilai maksima; untuk
register A sebesar 200ms. Oleh karena itu, TOV Flag set on pada BUTTON, Dan timer akan
mengutung dari button ke Top satau sebaliknya.

E. Kesimpulan
Kesimpulan dari percobaan yang telah dilakukan adalah bahwa PWM phase correct
membutuhkan timer counter up dan counter down.
2. Percobaan ke-18: PWM Fast 8 Bit
A. Listing Program

#include <avr/io.h>

int main(void) {
DDRE = _BV(PE3);
TCCR3B = _BV(CS30);
TCCR3A = _BV(WGM30)|_BV(COM3A1);
OCR3A = 300;
while(1){}
}

B. Wiring
C. Hasil Percobaan

Ton= 12us,

Toff=4us,

periode = 16usFrekuensi= 1/T= 1/16 us = 62,5KHz

Frekuensi (Simulasi) : f/ N (1+TOP) = 16M / 1.(1+225) = 62,5KHz

Persen eror = 0%

Duty cycle = Ton/T = 75%

D. Analisa
Pada percobaan ke 18 ini melakuan percobaan PWM Fast 8bit dengan menggunakan
WGM32 dengan mode yang digunakan adalah non inverting. Pada saat TOV dalam keadaan
maksimal, maka timer akan menghitung dari bawah ke atas hingga tombol reset ditekan maka
timer akan mengulangi perhitungan dari bawah ke atas.
E. Kesimpulan
Kesimpulan dari percobaan PWM Fast 8 bit adalah bahwa PWM dapat berfungsi walau
hanya menggunakan counter up.
3. Percobaan ke-19: PWM Fast 8Bit on timer 3 Invert
A. Listing Program
#include <avr/io.h>

int main(void) {
DDRE = _BV(PE3);
TCCR3B = _BV(CS30)|_BV(WGM32);
TCCR3A = _BV(WGM30)|_BV(COM3A1)|_BV(COM3A0);
OCR3A = 200;
while(1){}
}

B. Wiring
C. Hasil Percobaan

Ton= 1,9us, Toff=14,1us, periode = 16us


Frekuensi= 1/T= 1/16 us = 62,5KHz
Frekuensi (Simulasi) : f/ N (1+TOP) = 16M / 1.(1+225) = 62,5KHz
Persen eror = 0%
Duty cycle = Ton/T = 11,88%

D. Analisa
Pada percobaan ini melakukan percobaan PWM Fast 8bit on timer 3invert. Dengan
menambahkan COM3A0 dan COM3A1 pada TCCR3A menjadikan PWM dalam mode inverting
sehingga sinyal yang dihasilkan berupa sinyal Toff yang dimulai dari sinyal terendah ke tertinggi.
E. Kesimpulan
Kesimpulan dari percobaan kali ini adalah bahwa PWM dapat diubah mode menjadi inverting
maupun non inverting dengan mengubah posisi startingnya.

4. Percobaan ke-20: Fast PWM 16 bit on Timer 3 ICR TOP


A. Listing Program
#include <avr/io.h>

int main(void) {
DDRE = _BV(PE3);
TCCR3B = _BV(CS30)|_BV(WGM32)|_BV(WGM33);
TCCR3A = _BV(WGM30)|_BV(COM3A1);
OCR3A = 200;
ICR3 0Xff;
while(1){}
B. Wiring

C. Hasil Percobaan
ICR=0xFF

Ton= 14,1us, Toff=1,9us, periode = 16us

Frekuensi= 1/T= 1/16 us = 62,5KHz

Frekuensi (Simulasi) : f/ N (1+TOP) =


16M / 1.(1+225) = 62,5KHz

Persen eror = 0%

Duty cycle = Ton/T = 88,13%


ICR = 0x1FF

Ton= 11us, Toff=20us, periode = 31us

Frekuensi= 1/T= 1/31 us = 32,3KHz

Frekuensi (Simulasi) : f/ N (1+TOP) = 16M


/ 1.(1+225) = 62,5KHz

Persen eror = 48,3%

Duty cycle = Ton/T = 35,48%

ICR = 0x3FF

Ton= 140us, Toff=500us, periode = 640us

Frekuensi= 1/T= 1/640 us = 1,56KHz

Frekuensi (Simulasi) : f/ N (1+TOP) = 16M


/ 1.(1+225) = 62,5KHz

Persen eror = 97,5 %

Duty cycle = Ton/T = 21,88%

ICR = 0x7FF

Ton= 16us, Toff=112us, periode = 128us

Frekuensi= 1/T= 1/128 us = 7,81KHz

Frekuensi (Simulasi) : f/ N (1+TOP) = 16M


/ 1.(1+225) = 62,5KHz

Persen eror = 87,9%

Duty cycle = Ton/T = 12,5%


ICR = 0XFFFF

Ton= 0,1ms, Toff=1,9ms, periode = 2ms

Frekuensi= 1/T= 1/2ms = 500Hz

Frekuensi (Simulasi) : f/ N (1+TOP) = 16M


/ 1.(1+225) = 62,5KHz

Persen eror = 99,2%

Duty cycle = Ton/T = 5%

ICR = 0xFFFF, OCR = 0x7FFF

Ton= 1ms, Toff=1ms, periode = 2ms

Frekuensi= 1/T= 1/2ms = 500Hz

Frekuensi (Simulasi) : f/ N (1+TOP) = 16M


/ 1.(1+225) = 62,5KHz

Persen eror = 99,2%

Duty cycle = Ton/T = 50%

D. Analisa
Pada percobaan kali ini melakukan beberapa kali percobaan untuk PWM Fast dengan
menggunakan 16 bit kemudian menambahkan program WGM32 dan WGM33 pada TCCR3B
sehingga terjadi overflow pada flag maksimum. Untuk menampung nilai maksimum dari register
A sebesar 200ms dengan menggunakan OCR3A.
E. Kesimpulan
Kesimpulan dari percobaan kali ini adalah semakin besar ICR maka duty cycle dan frekuensinya
akan semakin kecil.
5. Percobaan ke-21: Fast Software dengan Timer CTC

A. Listing Program

B. Wiring

C. Hasil Percobaan
D. Analisa
Pada percobaan kali ini melakukan percobaan PWM pada motor servo. Setelah
menentukan periode, duty cycle dan counter servo langkah selanjutnya adalah melakukan
inisialisasi servo ke PB6 dan PB3. Kemudian, motor berada ditengah untuk mempermudah
pergerakan.
E. Kesimpulan
Kesimpulan yang diperoleh dari percobaan kali ini adalah bahwa dengan mengatur OCR1 pada
periode tertentu dapat menggerakkan sistem motor servo.

Analisa
Pada praktikum kali ini melakukan percobaan dengan program PWM. Setelah melakukan
beberapa percobaan diketahui bahwa timer counter dapat membangkitkan PWM dengan cara
mendapatkan mengatur mode yang bekerja pada PWM agar sistem yang berjalan dapat sesuai
dengan pin out yang ingin ditampilkan.

Kesimpulan
Kesimpulan dari praktikum yang telah dilakukan bahwa program PWM mempertahankan
nilai amplitudo dan frekuensinya sehingga dapat mengatur nilai persentase duty cycle nya.

Anda mungkin juga menyukai