Pulse Width Modulation
To control the speed of the motor, the switches of an H-bridge are opened and closed at different rates in order to apply different average voltages across the motor. This technique is called pulse width modulation (PWM). Let's look at the following diagrams:
In the above diagrams, V is the voltage across the motor and t is time. By switching quickly, we can create an average voltage across across the motor. The speed of the motor can be adjusted by changing the pulse-width ratio:
Pulse-Width Ratio =
of the voltage applied across its terminals.
If the motor only has to turn in 1 direction, we can just use a half bridge:
The diode is there because the inductance of the motor does not want the current through the motor to change instantaneously. (Remember that the voltage across an inductor is equal to v = Ldi / dt, so an instantaneous change in i means an infinite di / dt, resulting in infinite voltage, at least theoretically.) If the motor has current flowing through it, and then we open a switch, the diode provides a path for current to continue to flow through the motor as the energy of the motor is gracefully dissipated through the resistance of the motor (and the diode). This prevents a large voltage transient (an "inductive kick") that could damage your electronics. When a diode is used this way it is called a flyback diode. Such a diode should be capable of carrying large currents and switching on and off quickly. See more at Diodes and Transistors.
There are different ways to control the speed of a DC motor:
- switching from full positive to full negative
- full positive to open
- full negative to open
- braking by shorting
- free wheeling by leaving the circuit open.
One of the possibilities is to use a full H-bridge chip, such as the L6201 shown below:
When using a integrated chip, one of the concerns is heat sinking. It is because there are lots of power dissipation and we need to take the heat away. Usually, these chips come with some way to attach to piece of metal or copper (a heatsink).
For a practical circuit that controls a DC motor using PWM, see the PIC PWM Motor Driver.