
Figure 1 very basic H-bridge.
Build a High Power Transistor H-Bridge Motor Control
So far in this series we've looked at several types of transistor and MOSFET switching circuits. Now we will tie all of that together and build a bipolar transistor H-bridge motor control. Looking once again at fig. 1 we see that a H-bridge is simply four switches, two tied to ground, two tied to Vcc, and a motor connected between the commons.
In the case above with mechanical switches only when one of the Vcc switches on one side and the ground connected switch on the other side is at ground do we complete the current path and the motor will run. Now we will replace mechanical switches with bipolar transistors.
Here we are using the TIP120 and TIP125 Darlington power transistors. See Tutorial Using TIP120 and TIP125 Power Darlington Transistors

Figure 2
In fig. 2 we have our basic transistor H-bridge. This consists of two PNP and two NPN Darlington transistors. In addition we have four diodes to suppress noise and voltage spikes. From here on I'll leave out the diodes, but they will be needed if they aren't internally built into the transistors.
If one hasn't read my other pages know now that LOW or 0-volts on A or C will switch on Q1 or Q2. A HIGH or positive voltage input on C or D will switch on Q3 or Q4.
Caution: avoid switching on Q1 and Q3 or Q2 and Q4 AT THE SAME TIME! This will create a condition known as "shoot through" shorting out the power supply and damaging the transistors.

Figure 3
In fig. 3 we have created a current path for the motor by switching on Q3 with a HIGH input and switching on Q2 with a LOW. Rotation direction on DC permanent magnet motor is dependant on the direction of current flow.

Figure 4
In fig. 4 we have created a reverse current path relative to the motor with a LOW on Q1 and a HIGH on Q4.

Figure 5
In fig. 5 we have added two additional transistors Q5 and Q6. This has overcome the pitfall of being unable to connect the circuit to a micro-controller because of the 12-volts present on R1 and R3. Q5-Q6 block that voltage and with proper selection of base resistors allow 5-volt operation. A HIGH on B and a HIGH on C will turn on the motor. Using a 2N2222 for Q5-Q6 and a hfe of over 1000 on Q1-Q4 we can use 2.2K resistors.
In fact with proper circuit modifications one could use low-power MOSFETs or Darlington transistors - or even CMOS gates if Vcc is under 15-volts.

Figure 6
Finally we reversed the direction of the motor with a HIGH on A and D with a LOW B and C.
I hope the series was helpful. Any corrections, suggestions etc. e-mail me at lewis@bvu.net.
- ULN2003A Darlington Transistor Array with Circuit Examples
- Tutorial Using TIP120 and TIP125 Power Darlington Transistors
- Driving 2N3055-MJ2955 Power Transistors with Darlington Transistors
- Understanding Bipolar Transistor Switches
- N-Channel Power MOSFET Switching Tutorial
- P-Channel Power MOSFET Switch Tutorial
- H-Bridge Motor Control with Power MOSFETS
- More Power MOSFET H-Bridge Circuit Examples
- Build a High Power Transistor H-Bridge Motor Control
- New Nov. 2014
- Using the ULN2003A Transistor Array with Arduino YouTube
- ULN2003A Darlington Transistor Array with Circuit Examples
- Using the TIP120 & TIP120 Darlington Transistors with Arduino YouTube
- Tutorial Using TIP120 and TIP125 Power Darlington Transistors
- Driving 2N3055-MJ2955 Power Transistors with Darlington Transistors
- Using Power MOSFETS with Arduino YouTube
- N-Channel Power MOSFET Switching Tutorial
- P-Channel Power MOSFET Switch Tutorial
- Using PNP Bipolar Transistors with Arduino, PIC YouTube
- Using NPN Biploar Transistors with Arduino, PIC YouTube
- Understanding Bipolar Transistor Switches
- How to build a Transistor H-Bridge for Arduino, PIC YouTube
- Build a High Power Transistor H-Bridge Motor Control
- Build a Power MOSFET H-Bridge for Arduino, PIC YouTube
- H-Bridge Motor Control with Power MOSFETS
- More Power MOSFET H-Bridge Circuit Examples
- Basic Triacs and SCRs
- Constant Current Circuits with the LM334
- LM334 CCS Circuits with Thermistors, Photocells
- LM317 Constant Current Source Circuits
- TA8050P H-Bridge Motor Control
- All NPN Transistor H-Bridge Motor Control
- Basic Triacs and SCRs
- Comparator Theory Circuits Tutorial
- Constant Current Circuits with the LM334
- LM334 Constant Current Source with Resistive Sensors
- LM317 Constant Current Source Circuits
- Introduction Hall Effect Switches, Sensors, and Circuits
- Using Ratiometric Hall Effect Sensors
- Pulse Width Modulation Power Control for Microcontrollers
- Introduction to PIC12F683 Programming
- Basic Transistor Driver Circuits for Micro-Controllers
- Opto-Isolated Transistor Drivers for Micro-Controllers
- Comparator Theory Circuits Tutorial
- Arduino Projects Revisited Revised
- Schematic for Following Projects
- Programming ADS1115 4-Channel I2C ADC with Arduino
- Arduino uses ADS1115 with TMP37 to Measure Temperature
- Connect Arduino to I2C Liquid Crystal Display
- Arduino Reads Temperature Sensor Displays Temperature on LCD Display
- Arduino with MCP4725 12-bit Digital-to-Analog Converter Demo