This circuit drives small DC motors up to about 100 watts or 5 amps or 40 volts, whichever comes first. Using bigger parts could make it more powerful. Using a real H-bridge IC makes sense for this size of motor, but hobbyists love to do it themselves, and I thought it was about time to show a tested H-bridge motor driver that didn't use exotic parts.

Operation is simple. Motor power is required, 6 to 40 volts DC. There are two logic level compatible inputs, A and B, and two outputs, A and B. If input A is brought high, output A goes high and output B goes low. The motor goes in one direction. If input B is driven, the opposite happens and the motor runs in the opposite direction. If both inputs are low, the motor is not driven and can freely "coast", and the circuit consumes no power. If both inputs are brought high, the motor is shorted and braking occurs. This is a special feature not common to most discrete H-bridge designs, drive both inputs in most H-bridges and they self-destruct. About 0.05 amp is consumed in this state.

Stress-testing the H-bridge with Basic Stamp 2, PWM circuit, motor-dynamo, and 12 volt battery.

To do PWM(pulse width modulation) speed control, you need to provide PWM pulses. PWM is applied to one input or the other based on direction desired, and the other input is held either high(“locked rotor”) or low(“float”). Depending on the frequency of PWM and the desired reaction of the motor, one or the other may work better for you. Holding the non-PWM'ed input low generally works best for low frequency PWM, and holding the non-PWM'ed input high generally works best at high frequencies, but is not efficient and produces a lot of heat, especially with these Darlingtons, so locked rotor is not recommended for this circuit.

Truth table:

input | output
A | B | A | B
0  0 | float
1  0 | 1  0
0  1 | 0  1
1  1 | 1  1

Please reference the accompanying schematic diagram. The circuit uses Darlington power transistors to reduce cost. Forward losses are typically 1 to 2 volts, and since the current must pass through two transistors, expect losses to total up to 4 volts at maximum current. The 4 Darlington transistors need to be heatsunk based on your expected current and duty cycle.

PWM operation over 3 khz will likely lead to high losses and more heat dissipation, due to the simplicity of the circuit and the construction of Darlington transistors. You might get away with higher frequencies if you put a 1K resistor emitter-base on each TIP12x transistor. I prefer to go with very low frequencies, 50 to 300Hz.

Not shown in the schematic are the internal pinch-off resistors(5K and 150 ohms) and the damper diode that are built into all TIP12x series transistors. If you build your own variation of the circuit with other parts, include these neccessary parts. To the right is a picture of the internals of the TIP12x transistors.

Operation with logic signals greater than the motor supply voltage is allowed and absorbed by R7 and R8. The circuit is really intended to be operated with CMOS logic levels, logic high being about 4 volts.

If you live in the U.S., expect the TIP120 and TIP125 transistors to cost about $0.50 and the very common and generic "quad-2" PN2222A to cost about $0.10. An inexpensive source for hobbyist-grade parts like these is Jameco Electronics. At low duty cycles, currents up to the 8 amp rated peak of the transistors is allowed, but there is no current limiting in this circuit, so it would be unwise to use this circuit to drive a motor that consumes more than 5 amps when stalled.

Notes on circuit assembly:
Transistors Q1,2,3 and 4 must be heatsunk. Insulators should be used, or two separate heatsinks isolated from each other and the rest of the world. Note that Q1 and Q3 are grouped together and share common collectors and can share a heatsink. The same is true for Q2 and Q4.

Operation over 3khz will lead to higher losses. If it is required to run at higher frequency, additional pinch-off resistors can be added to Q1,2,3 and 4, supplementing the internal resistors. A good value would be 1k, and the resistors should be soldered from base to emitter.

To reduce RF emissions, keep the wires between the circuit and the motor short. No freewheel diodes are required, they are internal to the TIP series Darlington transistors.

Drive the circuit from 5-volt logic. Drive levels higher than 5 volts will tend to heat up R1 and 2. This is OK for short periods of time.

Power supply voltage is 5 to 40 volts. Output current up to 5 amps is allowed if the power supply voltage is 18 volts or less. Peak current must be kept below 8 amps at all times.

There is no current limiting in this circuit. Reversing a motor at full speed can cause it to draw huge currents, understand your load to avoid damage. There are higher powered devices in the TIP series of Darlington transistors, these can be substituted if needed. Look at the TIP140 and TIP145, please note they are in a bigger package and don’t fit the PC board layout.

hb01sch.gif Schematic in GIF format
hb01sch.pdf Schematic in PDF format
hb01pc.gif PC board foil layout in GIF format. Not to scale.
hb01pc.pdf PC board foil layout in PDF format. Print your transfer with this.
hb01st.gif Parts stuffing diagram in GIF format. Not to scale.
hb01st.pdf Parts stuffing diagram in PDF format.
hb01pl.txt Parts list in plain text format.

Frequently asked questions:


I want 20 amps. Can I parallel Darlingtons?


Yes, but you don’t want to. Darlingtons are not efficient. You will have too much heat to deal with.




Can I use MOSFET transistors for more power or efficiency?


Yes, but not in this circuit. I suggest using the IR2112 chip to drive MOSFETs. See Digi-Key.




[Home] [Services] [TechRef] [Weekend] [Legal] [Contact]



Copyright © 1995-2002 Bob Blick. All Rights Reserved.
Designated trademarks and brands are the property of their respective owners.