logo elektroda
logo elektroda
X
logo elektroda

Wiring and control for H Bridge using 4 TIP3055 NPN transistors at 12V supply

438 13
ADVERTISEMENT
  • #1 21661898
    Von Wong
    Anonymous  
  • ADVERTISEMENT
  • #2 21661899
    Calinoaia Valentin
    Anonymous  
  • ADVERTISEMENT
  • #3 21661900
    Von Wong
    Anonymous  
  • ADVERTISEMENT
  • #4 21661901
    Calinoaia Valentin
    Anonymous  
  • #5 21661902
    Von Wong
    Anonymous  
  • #6 21661903
    Calinoaia Valentin
    Anonymous  
  • #7 21661904
    Earl Albin
    Anonymous  
  • #8 21661905
    Von Wong
    Anonymous  
  • #9 21661906
    Steve Lawson
    Anonymous  
  • #10 21661907
    Earl Albin
    Anonymous  
  • #11 21661908
    Steve Lawson
    Anonymous  
  • #12 21661909
    Yun Siong Leong
    Anonymous  
  • ADVERTISEMENT
  • #13 21661910
    Subtain Ali
    Anonymous  

Topic summary

✨ The discussion addresses building an H-bridge circuit using four TIP3055 NPN transistors powered by a 12V supply to drive a 12V motor. Key issues include insufficient base drive current from a 3.3V Arduino output through 1kΩ resistors, resulting in only about 3V at the transistor emitters instead of the full 12V. The use of NPN transistors for both high and low sides requires higher base voltages for the upper transistors, exceeding the Arduino's 3.3V output capability. Suggestions include lowering base resistor values to increase base current, adding a driver stage (e.g., BC337 transistors) to amplify the base current, or using Darlington transistors to handle higher currents. Proper flyback diodes are essential to protect transistors from voltage spikes generated by the motor coil. Alternative recommendations include using MOSFETs like the 50N06 for higher current and voltage handling. References to commercial H-bridge driver ICs such as the L293D are provided for more efficient motor control solutions.
Generated by the language model.

FAQ

TL;DR: Driving a TIP3055 H-bridge from 3.3 V gives only ~3 V on high-side emitters; “use PNP devices for the upper transistors.” You’ll also need far more base current (≈200 mA for 4 A load). [Elektroda, Steve Lawson, post #21661906]

Why it matters: This FAQ shows how to fix low-output and burnt-transistor issues when wiring a 12 V H-bridge from a 3.3 V MCU, fast.

Quick Facts

Why do I only measure about 3 V at the emitter with a 12 V battery connected?

You’re driving the high-side NPNs as emitter followers. The emitter ≈ base − Vbe, so a 3.3 V drive yields about 2.6–3.0 V at the motor. Use PNP (or P-channel MOSFET) on the high side, or add a proper high-side driver that raises the base above 12 V. “You would be much better off using PNP transistors for the upper transistors.” [Elektroda, Steve Lawson, post #21661906]

Can I drive four TIP3055 bases directly from a 3.3 V Arduino through 1 kΩ?

No. A 1 kΩ from 3.3 V gives about 3 mA base current. A TIP3055 switching 4 A needs roughly 200 mA base drive. Arduino GPIO cannot supply that. Use a driver transistor stage or a Darlington pair per leg, and recalculate resistors from the required base current. [Elektroda, Steve Lawson, post #21661906]

How do I choose base resistors for the TIP3055 in this H-bridge?

Estimate motor current and BJT gain at that current. For 4 A and hFE ≈20, base ≈200 mA. Use Rb ≈ (Vdriver − Vbe)/Ibase. With 3.3 V drive and Vbe ≈1.5 V at high base current, Rb ≈ 9 Ω. Insert a small-signal BJT or Darlington so the MCU only sources tens of milliamps. [Elektroda, Steve Lawson, post #21661906]

Do I need flyback diodes on a BJT H-bridge for a DC motor?

Yes. Place fast diodes across the motor terminals (or across each transistor path) to clamp inductive kickback when switching. Without them, voltage spikes can punch through TIP3055 junctions and destroy devices during braking or reversal. [Elektroda, Calinoaia Valentin, post #21661899]

PWM at 3.3 V isn’t moving the motor—what’s wrong?

The PWM amplitude limits base current through 1 kΩ to only a few milliamps. That barely drives the lower TIP3055 and cannot drive the high-side emitter follower to 12 V. Reduce base resistors via a driver stage or use PNP/MOSFET high-side devices designed for logic-level control. [Elektroda, Calinoaia Valentin, post #21661903]

What’s the recommended transistor arrangement for a 12 V BJT H-bridge?

Use PNP power transistors on the high side and NPN power transistors on the low side. Drive their bases through appropriate resistors and pre-driver BJTs from the MCU. This avoids the emitter-follower voltage loss inherent to NPN high-side stages. [Elektroda, Calinoaia Valentin, post #21661899]

How-to: basic wiring steps to fix the 3.3 V control issue?

  1. Replace high-side NPNs with PNP power BJTs; keep NPNs on the low side.
  2. Add NPN/PNP small-signal driver transistors between MCU pins and power BJTs.
  3. Add flyback diodes across the motor; verify no simultaneous high/low drive on one side. [Elektroda, Calinoaia Valentin, post #21661899]

Can I use logic-level MOSFETs like 50N06 instead of TIP3055?

Yes, N-channel MOSFETs can reduce conduction loss. You still need a proper high-side gate driver for 12 V operation, because 3.3 V gate drive on a high-side N-MOSFET is insufficient. Choose devices specified for low Rds(on) at your actual gate voltage. [Elektroda, Subtain Ali, post #21661910]

My BC337 pre-drivers won’t saturate—how can I check?

Probe the BC337 collector with a scope. When on, it should drop to about 250–300 mV. If not, increase base drive at least fivefold by reducing the input resistor or re-biasing. Insufficient saturation limits current to the TIP3055 base. [Elektroda, Earl Albin, post #21661907]

What motor current can I expect if each TIP3055 base gets only ~24 mA?

With ~24 mA base drive and optimistic hFE=100, you might estimate ~2.4 A. Real hFE at high current is lower, so expect less. Also consider VCE(sat) can be ≈1.1 V at 4 A, reducing motor voltage under load. [Elektroda, Earl Albin, post #21661907]

What causes the 12 V motor to see only 6 V or less in my tests?

Two drops add up: emitter-follower loss on the high side and VCE(sat) on the low side under load. With high-side NPN, the motor can never reach supply voltage, and low-side saturation adds another ≈1 V at several amps. [Elektroda, Steve Lawson, post #21661906]

What is an H-bridge in simple terms?

An H-bridge is a four-switch arrangement that drives a DC motor forward or reverse by swapping polarity. Two transistors conduct for one direction, the other pair for the reverse. Proper interlock prevents shoot-through and device failure. [Elektroda, Steve Lawson, post #21661906]

What is an Arduino in this context?

Arduino is a microcontroller board that outputs digital pins, here at 3.3 V, used to switch driver stages. Its pins source tens of milliamps, so they cannot directly drive power BJTs like TIP3055 without intermediate transistors. [Elektroda, Steve Lawson, post #21661906]

Any quick diagnostic to confirm high-side drive is the blocker?

Drive the high-side base from a bench supply above 13.8 V temporarily (with limits). If the motor reaches near 12 V, your issue is insufficient high-side base drive from 3.3 V logic. Replace with PNP or add a high-side driver. [Elektroda, Steve Lawson, post #21661906]

What’s a common failure edge case I should avoid?

Avoid non-saturated pre-drivers. Earl showed only ~5.7 mA sink when BC337 bases were underdriven, preventing TIP3055 turn-on and causing heat without torque. Verify each stage saturates under load. [Elektroda, Earl Albin, post #21661907]
Generated by the language model.
ADVERTISEMENT