I am using the following h-bridge setup using optocouplers, a DC motor and bipolar junction transistors (2N3904 for the NPN and 2N3906 for the PNP)

enter image description here

Everything works as expected, but my question has to do with the voltage readings.

S1 is on

9v Battery = 9.5V (it is brand new, measured directly across anode and cathode)

9v Battery when motor is running = 8.8V (measured on the positive and ground rails)

Voltage across motor (disconnected) = 8.8V (measured with motor directly connected to the battery, disconnected from the h-bridge)

Voltage across motor (connected and running) = 6.4V (measured at the connection points between D4-D3 and D5-D6)

Vce Q2 = 0.8V (measured directly on the pins)

Vce Q6 = 0.3V (measured directly on the pins)

Vce Q1 = 0.02V (measured directly on the pins)

Voltage across R3 = 4.45V (measured directly on the leads)

From what I understand, with this setup (using BJTs) there is going to be a voltage drop. But there seems to be a discrepancy from the transistor readings and the motor voltage. Do these readings represent an inefficiency in the circuit or could there be an underlying issue?

If it has to do with the inefficiency of the circuit, are there better options? (I can't use an integrated circuit due to design restrictions)

  • 1
    \$\begingroup\$ Well BJT are very different from each other with no feedback, just look at how beta can range from 50 to 300.... \$\endgroup\$
    – MathieuL
    Commented Jun 1, 2016 at 14:10
  • \$\begingroup\$ How much base current are you pushing and what's the beta of your BJTs? \$\endgroup\$
    – winny
    Commented Jun 1, 2016 at 14:19
  • 1
    \$\begingroup\$ 9V batteries are typically only able to supply low continuous currents, on the order of 300 mA according to the datasheet for an Energizer 9V battery. Try using a Li-Ion battery instead. \$\endgroup\$ Commented Jun 1, 2016 at 14:36
  • 1
    \$\begingroup\$ Or a power supply for tests. \$\endgroup\$
    – JRE
    Commented Jun 1, 2016 at 14:40
  • 1
    \$\begingroup\$ How are you making voltage measurements? \$\endgroup\$ Commented Jun 1, 2016 at 15:07

1 Answer 1


R3 is 1000Ω and has 4.45V across it, so it must be passing 4.45/1000 = 4.45mA. The Base of Q2 is getting this same current, while Q6 is getting a bit more (we don't know exactly how much, perhaps 5~8mA?) from the optocoupler, via Q1's Base.

The 2N3906 has a maximum saturation voltage of 0.4V with 5mA Base current and 50mA Collector current. Most units are much better than this though, so I suspect your motor is drawing significantly more than 50mA. The 2N3904 is specified to drop a maximum of 0.3V (which it is) under the same conditions, but it is probably benefiting from the extra Base current supplied by the optocoupler.

The upper transistors (Q2, Q5) are not getting enough Base current to switch on fully. You should decrease the value of R3 and R6 to increase the Base drive. 220Ω should get you about 20mA, which is enough to keep the transistors saturated up to 200mA.

Adding up the voltage drops when the motor is running, 0.8 + 6.4 + 0.3 = 7.5V. But the battery measured 8.8V! (not at exactly the same time though, right?). A good Alkaline PP9 should hold over 8V at 100mA when fresh. So either you have a weak battery that drops its voltage rapidly under load, or there is a poor connection somewhere (built on a breadboard? using clip leads? bad solder joint?).

Measure the battery voltage before and after measuring the other places. To check the wiring and connectors, try measuring the voltages between components - you might get a surprise!

  • \$\begingroup\$ are you using Ic = Hfe * Ib for these calculations? and are you assuming worst case Hfe is 10? \$\endgroup\$ Commented Jun 2, 2016 at 14:34
  • \$\begingroup\$ I am using Ic=10*Ib because that is the value used in the data sheet. Hfe decreases dramatically in saturation, so you cannot use the specified 'worst case' Hfe measured at 1V. The 10x ratio is commonly used to guarantee that saturation will be achieved. In practice you should be able to reduce Base current and stay in saturation, but how much it can be reduced is not specified. \$\endgroup\$ Commented Jun 2, 2016 at 20:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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