A simple H-Bridge design
By Radu Motisan Posted on March 22nd, 2009
Normally I wouldn't a topic about such a simple device, but since there are many sites offering wrong information (for eg. this one short circuits your power source), I had to do it.
An H-bridge is an electronic circuit which enables a voltage to be applied across a load in either direction. If you need to learn more, read here.
Now, assuming you know what a hbridge is, let's choose a topology for our implementation. You already know we'll be needing transistors or mosfets (if not, please read the docs above), what you might not know is that these transistors will have to handle a high enough currents, especially when the motors they control are overloaded.
Some time ago, I've build a robot on a RC-truck, the load was so high because of the heavy batteries, that when the motors got the command to move forward they overheated and died.
So it's important to use heat sinks, to dissipate the heat. So, for a h-bridge we will be needing 4 transistors, working in pairs at a time. If we use 2xPNPs and 2xNPNs we can have common collectors, and so, using a single heatsink per pair. For the topology this is the only requirement I will impose, and here is one possibility:
You will need to place the left side MJE2955 and MJE3055 on the same heatsink since they have common collectors. A separate heat sink for the right size transistors must be used.
These components support up to 10A current, so they will work well for small to medium motors.
Remember, a H-Bridge only controls 1 motor. So if you'll need to driver the servo motor and also one main, propulsion motor you will need two separate h-bridges.
Here are some of the h-bridges I've created. On a board I usually create 2, since I mostly use 2 motored robots.
|
|
And here is a nice board having an ATMega8, a MAX232 for serial communication with a PC, and two h-bridges for controlling two big gear motors. Again I've used MJE2955/3055 pairs, but feel free to use any transistors/mosfets you have.
|
|
It runs well and it doesn't heat up much. In case anyone needs further details on how this works, or other things like why we need the D1-D4 diodes, feel free to ask.
Also the R3,R4 resistors can be adjusted to suit your needs. For me, they are used to limit even further the current given by the microcontroller on the output control pins. Not really required in my case.
Radu Motisan














March 22nd, 2009 at 3:51 pm
[...] « A simple H-Bridge design [...]
June 29th, 2009 at 1:44 pm
Radu:
We came across your design and are very interested in giving it a try. Would you have any last minute recommendations before we purchase components? We are driving a small motor with (4)AA batteries but it is for a battle-bot so it is often stopped – the Arduino motor shield we have tried (burnt out) and the NYT circuit using a SN754410NE are both overheating. Also, is there kickback protection in your design?
Thanks Much.
Jules
June 30th, 2009 at 8:32 am
Yes there is a good kickback voltage protection given by the four diodes.
Using some big transistors should give a very durable/robust design.
I’m using it to control some big geared motors and it works well. So go ahead, try this out!
Hey, I’d love to see your battle bot.
August 22nd, 2009 at 1:27 pm
Radu:
We got all of the parts but are having a bit of a hard time going from schematic to wiring diagram to breadboard. Is there a chance you can send me a photo of the underside of image 2253 or another drawing that could help?
Thanks,
Jules
September 13th, 2009 at 7:40 pm
[...] everything together: the robot platform modified to 4×4 geared motor propulsion (very strong), the sensor unit, the bluetooth remote and motor controller board (all on a neat ATMega8 board that I’ve developed) and finally the brain, a low-power [...]
September 14th, 2009 at 5:31 pm
Hi, if I only have TIP31, TIP42, 2N3904, and 2N3906 transistors, would it still be possible for me to accomplish this?
September 15th, 2009 at 10:09 am
Hi Ethan, let’s see:
TIP31 is a 40V/3A NPN (http://www.datasheetcatalog.org/datasheet/MicroElectronics/mXuwuts.pdf)
TIP42 is a -40V/-6A PNP (http://www.datasheetcatalog.org/datasheet/fairchild/TIP42.pdf)
2N3094 is a 40V/0.2A NPN (http://www.datasheetcatalog.org/datasheet/fairchild/2N3904.pdf)
The TIP31 and TIP42 are not complementary but this HBridge doesn’t have fixed/particular requirements, you can use what you have and it will work good.
So use TIP31 for MJE3055 and TIP42 for MJE2955 and the 2n3094 for the 2n5551 but be careful, the bridge will only withstand 3A max current (because of the TIP31).
September 26th, 2009 at 2:45 pm
Radu:
We got everything wired up OK and the bridge works great for small motors with no load (like a little fan) but it will not power a small 3.6 volt Black and Decker screwdriver motor which we are using in our project. Any ideas?
Thanks,
Jules
September 26th, 2009 at 9:28 pm
can you put a voltmeter in parallel with the motor and see what happens when you trigger the h-bridge?
October 9th, 2009 at 3:21 am
Hello,
Very thanks for the very nice and detailed scheme.
Im totally new to all this stuff and from some days i have the doubt:
Why we need the 2N5551 transistor? I have seem a lot of H-brigde schemes without using such transistors. Im using Atmega168 and those 2N5551 are intented to provide the correct current for the main tansistors? Or cant I just wire digital outputs to bridge transistro base directly?
Very thanks for any toughts and sorry if not the best english here, it´s not my native language.
Regards,
Rodrigo
October 9th, 2009 at 6:24 pm
Hi Rodrigo, thanks for the constructive comment.
As you’ve mentioned it already, the 2n5551 was intended to amplify the current getting to the power transistors.
When using an atmel microcontroller you can skip the 2n5551 and use an additional 460 Ohm resistors instead (one for the base of each power transistor).
October 9th, 2009 at 7:28 pm
Ok Radu, thanks for the answer.
Was testing a bridge using only NPN ones (the TIP122), and had trouble getting the darligton properly saturated, on Atmega168. Tested applying tension from some external supply and things went good. Maybe im doing something wrong or bad interpreting datasheets but it says emitter-base voltage as 5v, did some calc with the TIP HFE to choose the resistor but still Atmega168 not able to feed it properly, maybe something else, im using 20+ year old TIP´s from some old printer, anyway I expected Atmega168 doing the job but it dont (Actually on a Arduino Severino board). Telling this just to expose my experience here. Anyway bought today new TIP31´s and 32´s and the N2222A´s for your bridge project.
Thanks again and best regards,
Rodrigo
October 9th, 2009 at 10:37 pm
Hm, quite strange with the TIP122. Anyhow, I’m sure the new components will do a better job. Looking forward to your results. Good luck!
October 11th, 2009 at 6:00 am
Allright Radu,
Finally got the bridge done. After testing it on protoboard get a final assembly. Initially was looking for those Bridge CI´s but did not find in my city so ended with the TIP´s bridge. I think it was very positive that happened this way because had a chance to understand a little more about Darlingtons, MOSFETS and Bridge priciples.
Bridge is intented to equip my first bot and i want the smallest as possible so decided to not PCB it, the bridge ended being quite heavy tought, with all those TIP´s and screws. It´s dual bridge on a homebrew moun. Not used heatsinks because will use little motors, TIP´s barely realize they are working.
Bridge front view: http://img36.imageshack.us/img36/305/bridgefview.jpg
Rear view: http://img28.imageshack.us/img28/8251/bridgerview.jpg
Detail on clamp diodes: http://img200.imageshack.us/img200/3226/bridgedetail.jpg
And this just for fun: http://img185.imageshack.us/img185/8561/bridgefun.jpg
Thanks again for teaching and congratulations to have this “Reply” section enabled for anonymous replies. Restricted spaces is what made me not responding in many situations (Just because it ends with tons of subscriptions if i go to answer).
Peace !
October 11th, 2009 at 8:37 am
Hi Rodrigo,
Thanks for posting those images and congrats on building your hbridge!
Yes I try to keep the balance between spam tolerance and board accessibility, since it is the only way to receive valuable feedback such as yours.
I’m also looking forward to see your BOT. There are a few posts here as well (http://www.pocketmagic.net/?p=869) regarding this subject. If you’re interested I can provide you with free login credentials to this blog to post your robot.
October 14th, 2009 at 3:45 pm
Hello Radu,
Thanks for your attention.
I liked this site and it´s format… I think it´s a good place to stay and share. Was searching for some “subscription” link in here but cant find anything related.
Do you know how to subscribe in here?
Thanks,
Rodrigo
October 14th, 2009 at 3:55 pm
Radu,
Sorry but asnwer is right in front of me,… this is an personal blog.. I think i get confused because yet from main domain http://www.pocketmagic.net im able to visualize the trheads but yeah all of them are your posts. So looks like you made a great job having your own domain for your own blog, congratulations
Anyway, i have yet a first version of my bot done and now I feel like taking photos and some explanation to show you and everyone else. Can you suggest some nice site with such a service? You offered me credentials to your blog, very thanks for this. Ideia is starting posting things (when those ones really interesting arrives), but i never had some subscription for such activities so why Im asking you.
Thanks again,
Rodrigo
October 14th, 2009 at 10:15 pm
Hi Rodrigo,
Seems like you did a lot of progress lately.
I’ll be sending you an email shortly, with the login details and some instructions. I’m using the email in your post.
Cheers!
October 17th, 2009 at 10:12 am
[...] H-bridge. Thanks to Radu for sharing his detailed H-Bridge scheme: http://www.pocketmagic.net/?p=508, that i used to made a compact style of H-Bridge that I called as “Sandubridge”, a [...]
November 10th, 2009 at 3:03 pm
Hi, Radu
Would you like to explain me. Why you c hoose this kind of diode. If it’s possible that your design can do engine break? (lock the motor, by logic 1 1)
I would like you email me your explaination at my email as soon as!
adi.kurniawan@s.itb.ac.id
November 10th, 2009 at 9:10 pm
Hi Adi,
You can choose different diodes. I prefer to use fast diodes and this is why I’ve used the BYV36E. But feel free and use the popular 1N400X if you want.
What exactly do you mean by “lock the motor” and what would be the mechanism to accomplish that? Perhaps shortcircuiting the motor terminals?
The motors I use are strong geared motors with 30rpm. If they are not powered, they will not move. So for me doing a brake is as simple as un-powering my motor.
August 8th, 2010 at 9:35 am
I was wondering, if I were to use the motor leads(-/+0V to -/+5V) from the driver inside of a futaba servo as the inputs to this circuit would I need the 2n5551 transistors? Also, I can’t find the BYV26E diodes in amounts less than 5000, what would a suitable replacement be, the BYV26E ranges form 200V to 1000V and there are glass and barrel ones. What would be the down side of using a slower diode like the 1N400, and which 1N400 would suffice? I’m pretty new to this stuff, I’ve looked at dozens of data sheets and just dont know enough to choose. As for the 10A current, the MJE’s have a 10A current limit is that MAX or continuous. They also dissipate 75W, does this mean at 8V I could push 9.4Amps continuously?
Just found this thread and web site, I hope someone can answer these questions.
Thank you,
Scott
August 8th, 2010 at 9:56 am
Hi Scott, thanks for your interesting comment.
I’m not familiar with the futaba servo, so if I understand this correctly you want to control the servo using this H-Bridge? If yes, this would work, the H-Bridge will simply give you pair of polarity (+ -) and the reversed (- +) resulting in controlling the servo in one way or the other, but you know this already so hope I got your question right.
Regarding the 2n5551, it is used as a signal amplifier, for ex. I control the H-bridge using a microcontroler, and the command signal is simply too low, this is why I’m using this transistor. You can use any other general purpose NPN transistor instead of 2n5551.
This is a very flexible design, none of the components used are critical. You could use 1N4007 instead of BYV26E.
Regarding the power dissipation on the power transistors, it is good that you check the transistor ratings. Indeed they dissipate 75W, but only at a given temperature, and this parameter gets worse as the temperature raises. However I had no issues with overheating, and using only small heatsinks, you can see the photos. Also for servo’s this should be fine.
For higher power motors, you can use different transistors, tell me more about your hardware requirements, and maybe I could come with a suggestion.
Here is where I used this bridge: http://www.pocketmagic.net/?p=869