Arduino & Full Bridge Motor Drives

9.1K1498

Intro: Arduino & Full Bridge Motor Drives

Many of you may recognize this circuit but you may not agree on its name. Most reversible motor drives are called one of three names; Full Bridge Push Pull, Full Bridge Inverters, and H Bridge circuits. Just like one electronics engineer calls a vacuum tube a vacuum tube and another electronics engineer calls a vacuum tube a valve, I include the different names to avoid confusion.

I am working on an autonomous solar robot; this is not easy where I live since six months of the year we do not get enough light to power a solar garden light let alone a mobile robot. I have been working on a number of possible brains for my robot Including using Arduino and I have worked it down to one circuit for reversing the motors direction using a full bridge circuit.

STEP 1: Full Bridge Circuit A

With circuit A there are 4 transistor inputs and it works the same as all other full bridge circuits.

You can attach a PWM, (Pulse Width Modulator) to line A, too turn the motor on and off or control motor speed. You can also connect source voltage to line A and the PMW to the transistor inputs to reverse the motor and control the motor speed.

Close transistor QC and QE and the current flows from terminal A to terminal B through the motor, making the motor turn in one direction.

Close transistor QB and QD and the current flows from terminal B to terminal A through the motor, making the motor turn in the other direction.

STEP 2: Arduino and a Full Bridge IC

The L293D IC is called a QUADRUPLE HALF-H DRIVER, the ICs works just like all other full bridge circuits but it takes 2 motor inputs and an enable to control a single motor.

Move the switch one way the motor turns one way, move the switch the other way and the motor turns the other way.

STEP 3: Full Bridge Circuit B

Unlike circuit A this full bridge circuit only has 2 transistor inputs and although the circuit looks different they work basically the same.

You can attach a PWM, (Pulse Width Modulator) to line A, too turn the motor on and off or control motor speed. You can also connect source voltage to line A and the PMW to the transistor inputs to reverse the motor and control the motor speed.

Close transistor QB1 and QB2, and the current flows from terminal A to terminal B through the motor, making the motor turn in one direction.

Close transistor QC1 and QC2, and the current flows from terminal B to terminal A through the motor, making the motor turn in the other direction.

STEP 4: The Logic Circuit

This is the logic circuit and the brain of my reversible motor drive, a single transistor inverter gate with the same logic input and output as a hex inverters gate.

The bridge circuit to use with the single transistor inverter is one consisting of NPN and PNP transistors.

When the output of the inverter gate is connected to the transistor inputs, and the logic input to the inverter is 0 and the output is 1 the NPN transistors are closed and the PNP transistors are open making the current flow from terminal B to A making the motor run in one direction.

When the logic input to the inverter is 1 and the output is 0 the PNP transistors are closed and the NPN transistors are open making the current flow from terminal A to B and the motor run in the opposite direction.

For circuit protection I used high speed diodes on the transistor inputs.

STEP 5: Parts

Although I salvaged most of my parts, if you were to buy all the components on the circuit board it would cost less than a dollar.

5 volt power supply

solderless breadboard

assorted jumpers

1 x 5 volt DC motor

1 x 33Ω resistor

1 x push button switch for testing logic

2 x 1N4148 fast switching diode

2 x 2N4403 PNP transistor

3 x 2N4401 NPN transistor

5 x 100Ω resistors

STEP 6: Circuit Testing

Amazingly this circuit does what the Arduino circuits in this Instructable do using only one transistor.

I always build test circuits on a solderless bread board, if you use a prototype board and solder the joints any changes you need to make can be a pain.

I used a push button switch to simulate data inputs and ran the motor at full power, you can see the motor twist as it goes from forward to reverse and back in the video.

As is this circuit would make a good bump bot drive.

7 Comments

This circuit isn't dummy proof.. It enters a forbidden state if both the inputs are high, and connects the vcc with the ground.. Leading to your transistors getting blown up.. I would suggest using pairs of npn-pnp transistors with nand gates as buffers between the uc and the h-bridge.. This allows you to ensure that the above scenario doesn't happen.. Also you'll then need only one direction pin (high for forward and low for backward) with another pin doing only pwm control of the motor.. The code too becomes more efficient this way. There are plenty of examples available online.

First I never said any of the circuits are dummy proof.

Second which circuits are you talking about.

Third NPN and PNP like my last circuit; tell me, did you read the whole Instructable?

A youngster trying to demonstrate his engineering talent and not realizing that this great teaching guide needs to be a simple uncomplicated starter for members who have never seen a logic gate.

He ignores or does not read the final circuit which is very worthy for DIY work.

It is as funny as the toilet and the tourist arguments.

Great project, thanks for sharing it....