Anda di halaman 1dari 6

nawa-nawa: Pengendalian Kecepatan Motor DC dengan PWM

1 dari 6

http://bittara.blogspot.co.id/2015/05/pengendalian-kecepatan-motor-dc-d...

Pengontrolan motor DC secara sederhana dibagi menjadi dua. Pertama yaitu dengan

mengatur arah putaran dan besarnya kecepatan dari putaran motor. Arah putaran motor
secara prinsip di atur dengan membalikan polaritas tegangan yang masuk ke motor.
Sedangkan besarnya kecepatan putaran motor diatur dengan mengatur tegangannya.
Mekanisme pengaturan ini ditangani oleh driver motor.

Driver motor yang digunakan banyak jenisnya. Yang paling sederhana dan mudah dijumpai
adalah driver dengan tipe IC L293D dan L298. Driver ini masing-masing memiliki kemampuan
memberikan arus maksimal motor sebesar 1A dan 4A. Untuk motor-motor kecil yang memiliki
rating arus rendah sangat cocok menggunakan driver motor ini. Akan tetapi pada percobaan

piu piu

ini kita tidak akan menggunakan driver untuk mengatur kerja motor dc.
Cara pengaturan kecepatan yang digunakan adalah dengan menggunakan teknik PWM
(Pulse Width Modulation), salah satu teknik untuk mengatur kecepatan motor DC yang
umum digunakan. Dengan menggunakan PWM kita dapat mengatur kecepatan yang
diinginkan dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah,
pengaturan kecepatan motor dengan cara merubah-rubah besarnya duty cycle pulsa. Pulsa
yang yang berubah ubah duty cycle-nya inilah yang menentukan kecepatan motor. Besarnya
amplitudo dan frekuensi pulsa adalah tetap, sedangkan besarnya duty cycle berubah-ubah
sesuai dengan kecepatan yang diinginkan, semakin besar duty cylce maka semakin cepat
pula kecepatan motor, dan sebaliknya semakin kecil duty cycle maka semakin pelan pula
kecepatan motor.
Membuat sinya PWM dengan menggunaka CodeVisionAVR Pada ATMega16 yang
mempunyai 3 buah timer, tetapi disini saya hanya akan menggunakan Timer1 saja yang
digunakan untuk membangkitkan sinyal PWM. Pada dasarnya Timer0 dan Timer1
mempunyai 4 buah mode untuk membangkitkan sinyal PWM.
Output pin PWM pada ATMega16 terdapat pada 2 buah pin yaitu PD4 (OC1B) dan PD5
(OC1A).

19 memiliki saya di
lingkaran

Lihat
semua

with Google Friend Connect

There are no members yet.


Be the first!

Already a member? Sign in

2/17/2016 5:17 AM

nawa-nawa: Pengendalian Kecepatan Motor DC dengan PWM

2 dari 6

http://bittara.blogspot.co.id/2015/05/pengendalian-kecepatan-motor-dc-d...

Gambar 1. Simulasi Rangkaian pada Proteus

Timer1
Mode Phase Correct PWM
Foc1a = Fosc/(2*N*TOP)
Foc1b = Fosc/(2*N*TOP)
D = (OCR1X/TOP)*100%
Mode Fast PWM
Foc1a = Fosc/(N*(1+TOP))
Foc1b = Fosc/(N*(1+TOP))
D = (OCR1X/TOP)*100%
Dimana:
Foc1a = Frekuensi output OC1A
Foc1b = Frekuensi output OC1B
N = Skala clock (mempunyai nilai 1, 8, 64, 256 dan 1024)
D = Duty cycle
Fosc = Frekuensi clock kristal yang digunakan
TOP = nilai maksimum counter (TCNT1),
TOP mempunyai 3 buah nilai untuk kedua mode tersebut yaitu 8 bit (FF), 9 bit (1FF) dan
10 bit (3FF)
Sekarang kita akan membuat aplikasi membangkitkan sinyal PWM dengan periode 20 ms
dengan duty cycle 75%, menggunakan Timer1 10 Bit Mode Fast PWM.
Dengan menggunakan kristal 12 Mhz,
N = 256
TOP = 10 bit = 3FF = 1023
Maka akan didapat frekuensi output (Foc1x) sebesar 45,77 Hz atau jika diubah kedalam
peroide 21,8 ms 20 ms
Untuk Duty cycle:
D = (OCR1X/TOP)*100%
75% = (OCR1X/1023)*100%

2/17/2016 5:17 AM

nawa-nawa: Pengendalian Kecepatan Motor DC dengan PWM

3 dari 6

http://bittara.blogspot.co.id/2015/05/pengendalian-kecepatan-motor-dc-d...

OCR1X = 767 = 2FF (dalam hexa)

Gambar 2. Pengaturan Timer 1

Gambar 3. Pengaturan Port Output PW M

Script Program pada CodeVision AVR


#include <mega16.h>
#include <delay.h>
void main(void)
{
// Port D initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x30;
// Timer/Counter 0 initialization

2/17/2016 5:17 AM

nawa-nawa: Pengendalian Kecepatan Motor DC dengan PWM

4 dari 6

http://bittara.blogspot.co.id/2015/05/pengendalian-kecepatan-motor-dc-d...

// Clock source: System Clock


// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 187.500 kHz
// Mode: Fast PWM top=03FFh
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA3;
TCCR1B=0x0B;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x02;
OCR1AL=0xFF;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off

2/17/2016 5:17 AM

nawa-nawa: Pengendalian Kecepatan Motor DC dengan PWM

5 dari 6

http://bittara.blogspot.co.id/2015/05/pengendalian-kecepatan-motor-dc-d...

ACSR=0x80;
SFIOR=0x00;
while (1)
{
OCR1B = 767 ;
};
}

Hasil Percobaan

Gambar 4. Tampilan Output dari simulasi Proteus

Beri komentar sebagai:

Publikasikan

Beri tahu saya

2/17/2016 5:17 AM

nawa-nawa: Pengendalian Kecepatan Motor DC dengan PWM

6 dari 6

http://bittara.blogspot.co.id/2015/05/pengendalian-kecepatan-motor-dc-d...

2/17/2016 5:17 AM