Switching high power outputs quickly


I am making an emergency hazard light controller and need to control 30 outputs individually which isn't a problem.

The problem is that these outputs are on average 12v @ 20w and in some cases some PWM (i.e. fast switching will take place).

Now at the moment the light sources are a common -ve which would lead me to switching the high side with PNP Fets. But can I do this directly or would I need an NPN fet as a driver? (With this many outputs it may be easier to rewire the light modules if so!)

I am a bit of a beginner (in case you couldn't tell!)


To turn off a PNP high-side switch you need to raise the Base of the transistor to the Emitter voltage. In your case that would be 12V. Since you can't get 12V from an Arduino pin you will need some way to switch the 12V. The usual way is to connect the Base to +12V with a pull-up resistor and use an NPN transistor to pull the Base to Ground to turn the PNP transistor on.

Here is a nice tutorial about using transistors as switches: http://www.electronics-tutorials.ws/transistor/tran_4.html

Thanks for the reply and link - I'll have a good read through that.

I think I understand, you'd think some manufacturer would have seen the need for a high current high side switch to be operated by logic level outputs and make in one package!

I'm not relishing the thought of an extra 30 NPN transistors + resistors to make it work :(

I don't know if it makes it easier, but the PNP fets are in banks of 8, is there an 8 channel FET driver in a DIP format that I could use to keep the component count down?

Cheers again! :)

I found this quad mosfet driver: http://www.farnell.com/datasheets/1605112.pdf. It's not cheap, although it allows you to use N-channel mosfets (which are cheaper than similar P-channel mosfets) even though you are doing high-side switching.

You could use a ULN2803A with 8 pullup resistors as an octal mosfet driver You can buy a resistor network containing 8 resistors with a common connection if you want to keep it small (but check the package power dissipation will be within limits when all 8 circuits are turned on).

PS - if you were thinking of using shift registers to provide the 30 outputs (instead of using a Mega), then if you use TPIC6B595 shift registers with pullup resistors, you won't need separate drivers.

Incidentally, PNP/NPN and FET are mutually exclusive terms. NPN and PNP are bipolar junction transistor (BJT) topologies, while FETs use N-channel and P-channel for similar functionality.

You could do it with some creativity, If you bypass the arduino 5V regulator and connect the arduino 5V to your 12 V high side, you could switch P - mosfets (logic level) by setting the outputs to ground. Setting them to "High" would turn them off.

To provide proper power for the arduino you would need a negative supply voltage regulator like a LM7905 which would connect to arduino ground.

It's sounds a bit complicated, and I really can't explain it any better.

Also, FET does not mean MOSFET. Historically, FET is shorthand for "J-FET", not MOSFET.

You really need to be specific and accurate in electronics.