This has been troubling me for a while. A few days ago I mounted this circuit onto my breadboard, and even though it works, it does so very poorly.


The motor I'm trying to drive is a 12vDC motor and it's moving literally nothing even so it moves very slowly and the voltmeter readings show that only 1.9v make it pass the C-E circuit in the H Bridge. I really have no idea why is this happening.


I'm using an old laptop power supply that has a 12vDC output, a 5vDC one and ground. This circuit is supposed to simulate the behaviour of an electric gate. So I went out and watched what the one in my house did. I thought "lets make it go clockwise for a moment, wait for one, and go backwards for one." But my motor is only getting 1.9v out of the 12v it should be getting from the PSU.

¿Can someone point out why is this happening? or make me see a mistake i made please do so; it will be much appreciated. It's frustrating not knowing how to fix it.



closed as off-topic by placeholder, Daniel Grillo, Andy aka, dim, Autistic Jun 23 '16 at 21:00

  • This question does not appear to be about electronics design within the scope defined in the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    \$\begingroup\$ I'm voting to close this question as off-topic because the OP doesn't care enough to actually spend time to format the question as a question and rambles excessively. \$\endgroup\$ – placeholder Jun 23 '16 at 16:51
  • 2
    \$\begingroup\$ The top two transistors appear to be emitter followers with presumably 3V or 5V on their bases. That just won't work. \$\endgroup\$ – Brian Drummond Jun 23 '16 at 17:14

Your high-side transistors should probably be PNP, driven by an NPN as shown in this image:

enter image description here

You cannot reliably drive high-side transistors the way you are trying to in your current circuit. The high-side transistors will need ~12V on their bases in order to switch on, whereas the low-side transistors only need ~5V on their bases to turn on. You need a special "high-side driver" that can supply 12V to the bases of the high-side transistors. You can do that using Q5 and Q6 shown in the image.


While @DerStorm8 is correct, you can get somewhat better performance by changing the level shifters in your circuit. The junction of R11 and R12, whose output drives the base of Q1/Q3 should be 12 volts instead of 5. There is another such section not visible to the right which drives Q2/Q4, and this needs to be changed similarly. This will only help a little, though. Look a the current path for a high output level:


simulate this circuit – Schematic created using CircuitLab

With all 3 resistors equal, the highest possible voltage at R2 is about 6.3 volts, set by R1/R3. Let's say the motor is considered to be a 100 ohm resistor, pulling about 100 mA at 12 volts. The base current at Q3 will obviously be much greater than at Q1, so an estimate of 4-5 volts is probably more like it. And the thing that gives you this much is that fact that, since there is at least 6 volts across Q1 it operates in linear mode rather than saturation, with the large current gain which this allows, so the base current of Q1 is small. All of this assumes that your motor needs less than about 100 mA from 12 volts.

With about 5 volts across the motor, you won't get nearly full speed.

You can get better performance by reducing R12 and its matching opposite to 100 ohms, but you also need to increase the wattage of both resistors to about 1 watt. Look at what happens when the level is low.


Not the answer you're looking for? Browse other questions tagged or ask your own question.