Arduino refuse to switch PNP Transistor.

Hi Oaks,

Playing with 2N3904 and 2N3906 pairs.

The 2N3904 works perfectly.

With the 2N3906 I am at my wits end. I have now battled for hours and hours trying to get the pnp transistor to switch from the Arduino output and by now there are so many in the bin - some of them probably in working order I guess.

I have a 12V supply line that needs to be switched and I have double checked a thousand times that I do it according to the Sparkfun example below. Really how complex can it be?

No matter how I have it, if I either touch ground or 5V, the load switch on which means on a PWM signal it is on all the time. Only when the base wire is hanging in thin air, the load is switched off.

I understand that it is a high side switch

The 12V is entered at the emitter, the load is at the collector.

But with the above not working, I tried the example below as it made sense to pull the base to ground and the same story. It does not work. This time I do get a pwm signal on the base of the pnp, but with still does not switch the load.

With the base on the middle pin, there are only two ways to turn the transistor if you are not sure which one is base and collector, but the datasheets leaves no doubt.

The simplest way to ensure that an NPN or PNP transistor is turned OFF, is to set the base voltage equal to the emitter voltage.

Think about this for a bit and it should become clear why your first circuit cannot possibly turn off the PNP transistor.

Of course is is also possible to ensure that the transistor is off, by preventing current flow into (NPN) or out of (PNP) the base, which the latter circuit should do.

Your second circuit should work fine - but the BC327 has pinout EBC rather than BCE => have you wired it correctly?

regards

Allan.

In the second circuit I would put a resistor from base to emitter in the PNP. Use about 22K. I think that the collector leakage from the NPN when it is off is keeping the PNP on.

As mentioned the first circuit is never going to work.

You show a motor load, so I think R3 is a bit high for good saturation. I would suggest:
R1 = 1K
R2 = 10K
R3 = 270Ω - 330Ω, 1W
R4 = 10K - 22K (base to emitter) to ensure turn off as suggested by Grumpy_Mike

EDIT:

Note that 270Ω will make IB about -40mA, from the datasheet:
VCEsat =-0.7V when Ic = -500mA, IB = -50mA

Agreed , Grumpy_Mike... good practice.....

but I doubt unless at high temperatures or damp conditions it would be noticable.

Bet he's got the pinout wrong! If he swapped B and C he'd just have a reverse biased avalanche diode........

regards

Allan

ps why not just put the motor on the high side, and switch with an NPN or logic level N-MOSFET?

Hi All,

Thanks for some valuable input.

Instead of the motor I have used a resistor.

Right now I do not really care what I switch, I just need a pnp to switch.

In all the circuits I have used the 3904 and 3906 transistors. These are just copies form the net.

So, the second circuit should work according to you guys, and I though it would. Only thing I can do more is to install a resistor to pullup the base to 12V.

Let me try that quickly.

Thanks a lot oaks.

Second circuit works without a pullup resistor. I tried it, with and without but no go.

So I though lets try another one and so it was. The first 3904 was dead. I think I have a bad batch as I thought the one I used was brand new. Maybe I lost track...