Anda di halaman 1dari 3

1/30/2020 Tentang PWM (Pulse Width Modulation) | KL301

KL301
Mikroprosesor

Home
Silabus
SAP
Pertemuan
Lessons »
KL301A »
KL301B »
KL301C

-- Main Menu --

May
19

By firman

Tweet

4
Like

Tentang PWM (Pulse Width Modulation)


Category: iMe Leave a Comment

Pengertian PWM

PWM ( Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce)
dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di
zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum
termodulasi. Duty Cycle merupakan representasi dari kondisi logika high dalam suatu periode sinyal dan di
nyatakan dalam bentuk (%) dengan range 0% sampai 100%, sebagai contoh jika sinyal berada dalam kondisi
high terus menerus artinya memiliki duty cycle sebesar 100%. Jika waktu sinyal keadaan high sama dengan
keadaan low maka sinyal mempunyai duty cycle sebesar 50%.

Aplikasi penggunaan PWM biasanya ditemui untuk pengaturan kecepatan motor dc, pengaturan cerah/redup
LED, dan pengendalian sudut pada motor servo. Contoh penggunaan PWM pada pengaturan kecepatan motor dc
semakin besar nilai duty cycle yang diberikan maka akan berpengaruh terhadap cepatnya putaran motor. Apabila
nilai duty cylce-nya kecil maka motor akan bergerak lambat.

Untuk membandingkannya terhadap tegangan DC, PWM memiliki 3 mode operasi yaitu :

1.Inverted Mode
Pada mode inverted ini jika nilai sinyal lebih besar dari pada titik pembanding (compare level) maka output akan
di set high (5v) dan sebaliknya jika nilai sinyal lebih kecil maka output akan di set low (0v) seperti pada
gelombang A pada gambar di atas.

kl301.ilearning.me/2015/05/19/tentang-pwm-pulse-width-modulation/ 1/3
1/30/2020 Tentang PWM (Pulse Width Modulation) | KL301

2.Non Inverted Mode


Pada mode non inverted ini output akan bernilai high (5v) jika titik pembanding (compare level) lebih besar dari
pada nilai sinyal dan sebaliknya jika bernilai low (0v) pada saat titik pembanding lebih kecil dari nilai sinyal
seperti pada gelombang B pada gambar di atas.

3.Toggle Mode
Pada mode toggle output akan beralih dari nilai high (5v) ke nilai low (0v) jika titik pembanding sesuai dan
sebaliknya beralih dari nilai low ke high.

Implementasi dan pemrogramannya pada ATmega 8535

Kebanyakan mikrokontroler AVR memiliki kanal PWM di dalam chip-nya. Fasilitas ini membuat penggunaan
PWM menjadi lebih sederhana dan lebih akurat. Timer atau Counter dalam AVR dapat digunakan dalam modus
PWM tanpa mengganggu fungsi dasar timer. Timer1 dapat di-konfigurasi dalam modus PWM dengan men-
setting bit PWM11 dan PWM10 dalam register TCCR1A.
PWM11 PWM10 Description
0 0 PWM operation of Timer/Counter1 is disabled
0 1 Timer/Counter1 in 8-bit PWM Mode
1 0 Timer/Counter1 in 9-bit PWM Mode
1 1 Timer/Counter1 in 10-bit PWM Mode
Prescale dapat dipilih melalui register TCCR1B.
Lebar pulsa di-load ke dalam timer output compare register OCR1A (OCR1AH dan OCR1AL) dan OCR1B
(OCR1BH dan OCR1BL). Timer/Counter1 bertindak sebagai up/down counter, menghitung naik dari 0000H
hingga TOP, kemudian berbalik menghitung turun hingga nol, demikian seterusnya. Ketika nilai counter sama
dengan isi dari 10-bit OCR1A atau OCR1B, pin OC1A dan OC1B di-set atau di-clear sesuai dengan setting bit
dari COM1A1/COM1A0 atau COM1B1/COM1B0 dalam Timer/Counter1 Control Register (TCCR1A).
PWM Resolution Timer Top Value Frequency
8-bit PWM $00FF (255) Ftck1/510
9-bit PWM $01FF (511) Ftck1/1022
10-bit PWM $03FF (1023) Ftck1/2046
COM1X1 COM1X0 Effect on OCX1
0 0 Not Connected
0 1 Not Connected
1 0 Cleared on compare match, up-counting. Set on compare match down-counting (non-inverted PWM)
1 1 Cleared on compare match, down-counting. Set on compare match up-counting (inverted PWM)
Berikut adalah contoh dalam Bahasa C:
#define PULSE_WIDTH 0x40
void pwm_start()
{
OCR1AL = PULSE_WIDTH; //Load Pulse width
OCR1AH = 0;
DDRD |= (1<<5); //PortD.5 as o/p
TCCR1A = 0x81; //8-bit, Non-Inverted PWM
TCCR1B = 1; //Start PWM
}
Frekuensi yang dapat digunakan untuk aplikasi motor, tergantung pada kualitas motor dan kemampuan H-bridge
yang digunakan. Motor yang digunakan pada power window mobil atau mainan, bekerja dengan baik pada
frekuensi 500 Hz hingga 1 kHz. Beberapa motor kelas “high-end” bekerja dengan mulus pada 20 kHz. H-bridge
754410 dan L293D telah diuji dan berjalan dengan baik pada frekuensi 5 kHz.

Pemrogramannya pada Atmega8535

Berikut adalah contoh pemrograman dengan BASCOM-AVR:


$regfile = “m8535.dat”
$crystal = 4000000
kl301.ilearning.me/2015/05/19/tentang-pwm-pulse-width-modulation/ 2/3
1/30/2020 Tentang PWM (Pulse Width Modulation) | KL301

$baud = 9600
$hwstack = 32
$swstack = 10
$framesize = 50

Dim Dummy As Integer


Dim Potvalue As Integer

Config Pind.5 = Output


Config Pind.4 = Output
Config Timer1 = Pwm , Prescale = 64 , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear
Down
Enable Interrupts
Enable Timer1
Config Adc = Single , Prescaler = 64
Start Adc
Ocr1ah = 0
Ocr1ah = 0
Do
Potvalue = Getadc(0)
Dummy = Potvalue / 2
Dummy = Dummy / 2
Ocr1bl = Dummy
Loop
End

Leave a Reply
You must be logged in to post a comment.

Recent Posts

[TUGAS] Questionaire iLP [KL301Z]


[TUGAS] Development Board [KL301Z]
MediaTek Linkit One
Raspberry Pi
Arduino Edison

© 2020 KL301

Powered by WordPress and the Designfolio Theme.

kl301.ilearning.me/2015/05/19/tentang-pwm-pulse-width-modulation/ 3/3

Anda mungkin juga menyukai