Tuesday, February 10, 2009

Pulse Width Modulation or PWM Tutorial using PIC 16F877, Proteus and Mikroc PART-1



Pulse width Modulation or PWM is one of the powerful techniques used in todays control systems.
It is used for speed control of motors, used for measurement , communication and power control.

Pulse-width Modulation is achieved with the help of a squarewave whose duty cycle (ON time vs OFF time) is changed to get a varying voltage output as a result of average value of waveform. See Picture

Consider a square wave shown in the figure above.

TON is the time for which the output is high and ToFF is time for which output is low. Let Ttotal be time period of the wave such that, Ttotal = TON +ToFF

Duty cycle of a squarewave is defined as
D = TON / (TON+ToFF)= TON/Ttotal

See output voltage varies with duty cycle

VOUT = D x VIN

VOUT = (TON/Ttotal) x VIN

we see from the final equation the output voltage can be directly varied by varying the TON value.

If TON is Zero , VOUT is also Zero.

2 comments:

Anonymous said...

Dear sir,,

can i generate multiple pwm to feed into the 3-phase inverters just using the duty cycles technique. is there any methods..

thanks...

Nick said...

Need Help!

Im using PIC18F452 as the 'brain' and H-bridge to control my POWER WINDOW MOTOR. The code is written using MikroC.
The problem is that when i tried to feed a 50% duty cycle(or below 50%), the motor couldnt run. However, it ran at 60%(and above) duty cycle. What is happening? I want the motor speed at 50% or below duty cycle. Can anyone here gives me some opinions?