PNP transistor in H bridge not closing

Hi,
I’m trying to make an H bridge using BJT’s, and things aren’t exactly working out.

After burning some transistors, it kind of works, but the motor spins much slower one way than the other.

Below is a schematic of the circuit.

The transistor that’s not closing [it stays at 0.1V - 0.4V](even though the other one is identical, and swapping components between each other doesn’t help) heats up, along with it’s counterpart (so both the NPN and PNP transistor heats, but not the helper npn)

Again, it only happens one way, I really don’t know why. I’ll have a friend double check the breadboard for me.

I’m grateful for any additional tips or useful links as to how to properly connect a pnp, and pointing out any additional mistakes.

This is the article that I used: http://www.electronics-tutorials.ws/transistor/tran_3.html

The transistors controlling the motor directly are BD137 and BD138, the helper npn’s are BC547


Could you please edit your schematic into a proper h bridge layout? It's hard to follow drawn the way you have it right now.

Also, are you powering the motor from the output of the Arduino's 5V regulator and powering the Arduino from a 11V supply? If so, this is not a good idea.

EDIT: there's a 24V supply too?

Probably Q5 and Q3 conducting at the same time. Are you sure that D10 is always the opposite of D8? And the same for D9 and D7.

Pieter

What is D1 for? Get rid of it, and don't connect 5V to that part of the circuit to begin with.

Your PNPs are backwards. Emitters go to the power rails, and the collectors go to the motor. Their diodes are also the wrong way around. The high side diodes are forward biased the way you have them drawn.

Also, the base of a BJT doesn't need a pulldown. You can get rid of R7 through R10.

Why connecting the 5V and 3.3V pins of your Arduino together? Doesn't sound like a good idea to me. This including the connection though D1 doesn't appear to have any function to me.

The motor appears to be powered from 24V (it's customary to place the high voltage on the top of your drawing, ground or 0V at the bottom). At least not from the Arduino's power supply. That's good.

Indeed Q5, Q6 and their respective diodes are the wrong way. I guess this are the transistors that heat up (you forgot to specify this!)

Why this odd mix of 2.2k and 100k resistors? Getting those mixed up may also cause problems. From the schematic it's not clear how they're mixed. Transistors anyway don't need pull-downs, as they're current driven (unlike MOSFETs which are voltage driven and do need them).

Hi,
Welcome to the forum.

Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html

This is my interpretation of the OPs circuit.

Tom... :slight_smile:

Q5 and Q6, including their diodes, are drawn upside down.
Leo..

Wawa:
Q5 and Q6, including their diodes, are drawn upside down.
Leo..

Just like in the original schematic as posted by OP.

Hi,
I have interpreted the OPs circuit so he/she can see how to lay the circuit out, all the errors are still there.

I have not made any corrections.

Tom.. :slight_smile:

Hi,
Suggested fixes..


Tom.. :slight_smile:
PS. Feel free to edit.

Only problem might be drive current for the NPN power transistors (BD137).
20mA from an Arduino pin is just be ok for a few hundred mA motor current.
Leo..

Thank's for all the replies!
Later today I'll try the suggested fix schematic, and see if that fixes the problem.
I also apologize for my poor schematic drawing skills.

lukasz_b_g:
Thank's for all the replies!
Later today I'll try the suggested fix schematic, and see if that fixes the problem.
I also apologize for my poor schematic drawing skills.

Your diagram just needs some structure to allow the flow of the circuit to be easy to trace, good try if your first attempt.
You will learn as you go, try to avoid diagonal wires or wires that cross at other than 90Deg.
As you will have seen in my version, the use of the gnd symbol to help tidy up some of the wiring and as suggested, starting with positive supply wire across the top usually helps to get the layout right.
A bit of time spent getting your diagram right and clear can add up to better understanding of your circuit when asking for advise about it.
Tom... :slight_smile:

Looking at the drawing from TomGeorge (post#10), I would suggest
1k for R1,R2, 10k for R3,R4,R11,R12, and 220ohm for R5,R6.
I think we all have to give TomGeorge some karma for all these clear drawings he puts on this website.
Leo..

Wawa:
Looking at the drawing from TomGeorge (post#10), I would suggest
1k for R1,R2, 10k for R3,R4,R11,R12, and 220ohm for R5,R6.
I think we all have to give TomGeorge some karma for all these clear drawings he puts on this website.
Leo..

No, thank ExpressPCB....

So I built the schematic, and used the proposed resistor values.

It works,but the PNP's aren't closing, ie. the voltage drops to 0.4V, not to 0. This makes the NPN transistors heat slightly.

I could just stick some radiators on them, but I'd rather not. What should I change to make the PNP's close completely?

  1. are you absolutely sure they're connected the correct way? Mind that the collector and emitter are reversed polarity compared to the NPNs. Double check spec sheets and so.

  2. disconnect R3 or R4, then Q5 resp. Q6 should be very much closed. If not, repeat with R2 and R1, disconnecting the base of the transistor should totally close them. If still not closed, those PNPs are toast (which can very well be the case as you used to have them the wrong way around).

Hi,
What voltage, where are you measuring it.
There will be some volt drop due to the nature of BJTs.
What do you mean by closing?
The transistors are being switched ON or OFF.
What outputs from the Arduino do you have when you measure the voltage?

Does the motor run?

Thanks… Tom… :slight_smile:

Yes, the motor does run.

When I say closing I mean turning off.

I'm measuring the 0.4V on the collector of the PNP.

When it's on it's at 23.8V, and when it's off it's at 0.4V. I think this is what is causing the NPN to heat up.

My transistors weren't backwards in the circuit, they were backwards only in my schematic.

I checked to see if the transistors are broken, by measuring the resistance between each of the leads, and they seem ok. Anyway, if I change them out for different ones, the same happens.

And just to clarify, the 11V for the arduino comes directly from 3 Li-ion batteries, and the 24 comes from a boost converter, hooked up to the same batteries.