Basic H-Bridge with switches
Figure 1 very basic H-bridge.

H-Bridge Motor Control with Power MOSFETS

by Lewis Loflin

Update October 2016: note the updated pages related to this subject. Also when constructing these circuits DO NOT leave the input pins floating or unconnected to a micrcontroller. See the following for safety tips:

And the following two videos:

Also study the links below on transistor switching circuits before you attempt to build any of these devices.

Permanent magnet DC motors have been around for many years and come in a variety of sizes and voltages. Their direction of rotation is dependant upon the polarity of the applied voltage. Reverse the voltage, the direction of rotation reverses. One of the most common solid-state controls is known as the H-bridge.

In figure 1 we have a very basic H-bridge using two spring-loaded, single-pole, double-throw switches. The normally closed (NC) contacts are grounded and normally open (NO) contacts are connected to +12 volts. A DC motor is connected between the two commons. In its normal state, both motor connections are grounded through the switches. Both switches are spring loaded.

If we press SW1 the NC contact opens and the NO closes supplying +12 volts to one side of the motor while the other side is still grounded through SW2. The motor will spin at full speed say counter-clockwise. Release Sw1 and press SW2 and +12 volts is supplied to the '+' side of the motor while the negative side is grounded through SW1. The direction now is clockwise. Press both switches and both sides of the motor will be at +12 volts and won't run.

Now we will look at practical MOSFET H-bridge circuits. Check the above links if not familiar with transistor switching circuits.

H-Bridge circuit using power MOSFETs.
Figure 2

In this example we use four power MOSFETs and this circuit operates in an identical manner as the two switches in figure 1. Q1 and Q3 operate as NC contacts while Q2 and Q4 act as NO contacts. The two transistors Q5, Q6 can switched on-off with a micro-controller. As is with no input Q1, Q3 are always on switched to ground.

Parts list:
Q2, Q4, P-channel MOSFET IRF9630
Q1, Q3, N-channel MOSFET IRF630
Q5, Q6, 2N2222A NPN bipolar transistor.

H-Bridge circuit using power MOSFETs.
Figure 3 Q2, Q4 turned on both side of motor switched to Vcc - doesn't run.

H-Bridge circuit using power MOSFETs.
Figure 4 Q2, Q3 turned on motor runs in forward direction.

H-Bridge circuit using power MOSFETs.
Figure 5 Q1, Q4 turned on motor runs in reverse.

4-input H-Bridge circuit using power MOSFETs.
Figure 6. Here we have 4 TTL level inputs - does the same thing as above.

MOSFET H-bridge with opto-isolation.
Figure 7

In this case I've used opto-isolators to switch the MOSFETs on/off. This circuit is fully functional and will operate from any modern micro-controller.

The above can be used in the same manner as Arduino with the TA8050 Motor Controller project. The opto-couplers isolate the microprocessor from motor noise and the higher voltage.