I'm trying to build a high side switch using a PNP and NPN transistor together to run (7) 10W LED's off of a LED Driver. It's part of a multiplexing circuit and I do not have the option to make it a low side switch. I also need to be able to switch it quickly. I found the schematic below and have tried to recreate it with no success. I'm using a 2N3906 PNP with a 2N2222a NPN. The image below shows a 12V power supply but I'm actually using a LED driver that is 9V and 900mA. My load is 7 LED flood lights connected in parallel. schematic


Here is a picture of my breadboard connection. The LED driver is blue + and yellow -. The black wire goes to + on my LED's and the white wire is the - on the LED's. Red is +5V on the Arduino and Brown is GND on the Arduino.My understanding is that when I connect and disconnect the red +5V wire the lights should turn on and off. My issue is that the lights are always on.

Please help!! Thanks

  • \$\begingroup\$ give link for datasheets on LEDs, heatsink powersupply \$\endgroup\$ Commented Oct 29, 2016 at 1:13
  • \$\begingroup\$ Are you certain your transistors both have EBC pinouts? Suggest you do a simple "diode check" just to make sure. \$\endgroup\$
    – brhans
    Commented Oct 29, 2016 at 1:15
  • 1
    \$\begingroup\$ P-Channel MOSFET would be better choice. One xistor, not two. Save a few resistors too. More like 2016 than 1976, too. \$\endgroup\$
    – FiddyOhm
    Commented Oct 29, 2016 at 2:51
  • \$\begingroup\$ @tdubya don't you have any info on the LED and power source? \$\endgroup\$ Commented Oct 29, 2016 at 4:37
  • \$\begingroup\$ amazon.com/Silver-Aluminium-Heatsink-30x30x25mm-Power/dp/… \$\endgroup\$
    – Tdubya
    Commented Oct 29, 2016 at 11:36

3 Answers 3


If you want to keep using BJTs (and there are arguments either way), then your main problem (aside from the current limit of your PNP) is \$R_3\$ that you used. It simply couldn't supply enough base current drive for your PNP.

The following circuits assume that you have a \$+5\:\textrm{V}\$ Arduino supply and that your I/O comes from it. (I'll assume you can get about \$4.8\:\textrm{V}\$ out of a pin that is sourcing or sinking \$3\:\textrm{mA}\$.) I'm providing you with two ways to go. Either is probably fine. The right hand side uses one less resistor and requires less drive current compliance from your Arduino, as well. I think both will work fine.


simulate this circuit – Schematic created using CircuitLab

You can see some of the differences. The left circuit requires one more resistor and one of the resistors needs to be \$\tfrac{1}{2}\:\textrm{W}\$ capable. Your I/O pin will also have to source up to \$3\:\textrm{mA}\$, as well. That's not a difficult issue for most I/O pins. (But it is more than is required in the right schematic.) The right schematic uses one less resistor and it doesn't need to be \$\tfrac{1}{2}\:\textrm{W}\$, but instead just \$\tfrac{1}{4}\:\textrm{W}\$. That's because \$Q_1\$ is picking up the remaining \$\tfrac{1}{4}\:\textrm{W}\$ (there is no free lunch.)

So the right side circuit will heat up \$Q_1\$ more. But it should be okay, regardless. Both circuits use a TIP32, which comes in various ratings (A, B, and so on.) You don't care which of them you get, though. The main thing is the TO-220 packaging, which allows it to dissipate a half watt (more than enough.)

Now, just as a test before you go out and spend money and time on a nice TIP32 BJT, you can try out your existing circuit using the left side schematic. Looking at your own schematic, not mine, you can keep the \$R_1=1\:\textrm{k}\Omega\$ and keep \$R_2=4.7\:\textrm{k}\Omega\$, but change things so \$R_3=150\:\Omega\$ (and make sure it is at least \$\tfrac{1}{2}\:\textrm{W}\$ or more in capability, or else use it only for a very short time just to test out the idea.) If you do try this out, be aware that the PNP BJT will be getting hot, fast. So don't do this for long -- perhaps a second or so. Just long enough to see if it works. If it does work for you, then you probably can go buy that TIP32 and get things going just fine.

If you want a small education on just how to compute your own resistor values and why these two different circuits can both achieve the same results, let me know. I can write a little more for you. This is something I think you need to learn how to do on your own, since it is a very common desire and it isn't hard to figure out and learn well.

Your current schematic looks like this?


simulate this circuit

A really cheap ebay transistor testor (placed in a box I designed and 3D printed) would be like this. I am showing first a low gain TO-220 NPN BJT and second a superbeta TO-92 NPN. You can see how it nicely labels the pins, etc.

enter image description heresuperbeta PNP TO-92

  • \$\begingroup\$ Comments are not for extended discussion; this conversation has been moved to chat. \$\endgroup\$
    – Dave Tweed
    Commented Oct 30, 2016 at 0:23

The 2n3906 is not going to work for you. Its absolute maximum current is 200mA.

Pick another transistor that will do an amp or more. Make sure you have take into account the beta. The beta of the 3906 is only 30 at high currents. Your drive circuit is only putting in about 2mA of base current so you might get 60mA out.

  • \$\begingroup\$ Thanks for the input. I should've seen that. I'll look into some different transistors. Any recommendations for this circuit? Would a MOSFET work better? \$\endgroup\$
    – Tdubya
    Commented Oct 29, 2016 at 1:24
  • \$\begingroup\$ I think a mosfet would make your life a lot easier. You can do this with either. A big part will be how fast is fast. Estimate 0.2V saturation for the PNP you could do a search for 1.5Amp 300mW transistors. A p channel mosfet will need an on resistance of 0.2 Ohms or less. \$\endgroup\$
    – owg60
    Commented Oct 29, 2016 at 2:01
  • \$\begingroup\$ To answer your question about how fast is fast. I'm using it as part of a LED multiplex. I have 7 rows and I plan to turn a row on for 1ms and then cycle through the rows. So on for 1ms off for 6ms and then repeat. So I guess my cycle speed would need to be 1000hz. I'm no sure if I necessarily need it to be that fast or what the limitations are for switching speed on transistors or mofsets \$\endgroup\$
    – Tdubya
    Commented Oct 29, 2016 at 12:06

Comment 1) P = V x I = (9V) x (0.9A) = 8.1 W, which is less power than the 10W that's required by the LEDs.

Comment 2) There are different types of "LED Driver" circuits. For the discussion Comment 3 I'm assuming you have a regulated "constant voltage" power source and not (for example) a constant current power source.

Comment 3) I have no idea what voltage the LEDs you're using require, since you don't mention it. You say you bought a 9V power supply, so I'll just guess the LED array requires 9 Volts. Given this presumption, the amount of current that's flowing through the LED array when the array is ON is,

$$ I_{LED} \approx \frac{10\,W}{9\,V} \approx 1.11\,A $$

This is also the current that must flow through transistor T2's emitter-collector path. You want to operate T2 in saturation (SWITCH ON) mode, not forward active (small signal amplifier) mode. So choose a value of 10 for T2's beta value. (You can also look in your transistor's data sheet to see what value of beta the manufacturer uses for saturation testing purposes, and use that beta value instead of just choosing a value of 10.) When T2's saturation beta is 10, the current that must flow out of T2's base lead (to ensure T2 is operating in saturation mode) should be

$$ I_{B,T2} = \frac{I_{C,T2}}{\beta_{sat,T2}} = \frac{1.11\,A}{10} = 111\,mA $$

Next, eliminate resistor R2 (get rid of it completely) and redesign transistor T1 and the "current limiting" resistor R3 so that R3 limits the current flowing into T1's collector at 111 mA when T2 and T1 are both saturated (ON).

$$ R3 \approx \frac{V_{CC}-V_{BE(sat),T2}-V_{CE(sat),T1}}{111\,mA} $$

Hint: Look in the data sheets for transistors T1 and T2 to determine values for \$V_{BE(sat),T2}\$ when \$I_{C,T2}=1.11\,A\$ and for \$V_{CE(sat),T1}\$ when \$I_{C(sat),T1}=111\,mA\$.

As before, choose T1's saturation beta to be 10. Therefore, T1's base current must be

$$ I_{B,T1} = \frac{I_{C,T1}}{\beta_{sat,T1}} = \frac{111\,mA}{10} = 11.1\,mA $$

Verify that your microcontroller's DIO pin can source a current of 11.1 mA when the DIO pin is in its logic HIGH output state.

Change the value of resistor R1 so that when the microcontroller's DIO pin outputs a voltage of VOH (the minimum voltage for a logic HIGH output), resistor R3 limits the current flowing out of the DIO pin and into T1's base at 11.1 ma.

$$ R1 \approx \frac{V_{OH}-V_{BE(sat),T1}}{11.1\,mA} $$

Some final hints. As a starting point, select/purchase components that can handle at least double the voltage, current, and power that will nominally be present in the circuit. For example, assuming the presumptions I made about your LEDs are correct, then transistor T2 will nominally have about 1.11 Amps flowing through its emitter-collector path when T2 is saturated (ON). So choose a transistor part for T2 that can continuously handle at least double this amount of current. The power that is nominally dissipated by resistor R3 will be \$P_{R3}=R3 \cdot I_{R3}^{2}\$, so choose a component for resistor R3 whose power rating is at least double this value. You might also need to do some heat dissipation calculations to determine whether a heat sink is required for T1, or T2, or both. And so on.


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.