Electrical – Arduino high side driver with up to 30V

mosfetswitches

I am experimenting with the circuit for an Arduino high side driver from Nick Gammon:
from Nick Gammon's site: https://gammon.com.au/motors

I need the circuit to work with a voltage range from 22V up to 30V and ideally stay cold.
Everything else is fine, the MOSFET handles high currents without problem, but my problem is with the npn-transistor – it just gets extreme hot, especially at 30V. I am using 2N2222.

Can the circuit be adjusted in such a way that there will be no need of heat sinks or more powerful elements?

EDIT: After the suggestions of @Nick and @Edgar I changed R1 with 1.2K and R2 with 4.7k. Now the circuit is running for ~45 min without a problem, and is much cooler, I can even touch the transistor 🙂

I maybe had to better explain what I meant by 'extreme hot' – after a couple of minutes the thermal shutdown kicked in. That hot.

I am also considering switching to MOSFET-only solution, based on Figure 3 site 2 in this application note from Vishay:
enter image description here

Setting the divider to 4.7k/15k should give me less than 2mA through the N-MOSFET (according to TINA I made it and it works like a charm!) so this should be even more cooler. It also should be able to handle even higher voltages without the zener, but I suppose it doesn't hurt to leave it as a surge protection.

Best Answer

The current through the transistor is controlled by R1 so I would suggest increasing that somewhat in this case. Perhaps to 1k or 2k. If D2 conducts then you will have a (roughly) 30V drop over 330Ω which would be 90 mA, and therefore 2.7W of power dissipation, which is more than the transistor is rated for.