Arduino – My MOSFET Operated Solenoid Circuit Destroys My Arduino Inputs

arduinomosfetpower supplysolenoid

I made a series of PCBs to power some solenoid valves that use an external power supply. I switch them with BS170 MOSFETs using an Arduino as gate signal.
I based it a solution by Jason S.

This is an illustration of what my circuit looks like:
MOSFET operated valve circuit

On testing the PCBs, I noticed that most of them work fine, but some of them don't. No problem, probably a soldering thing.

However, those faulty ones did manage to destroy two Arduino digital pins!
On one, I get a constant voltage of 5 V, and the other one outputs 0.2 V when I send a HIGH signal to it, and 0.5 V when I send a LOW signal. Strange stuff.

So I guess the faulty circuits somehow caused (some of) the 16 V to flow through the Arduino, destroying them.

How do I protect the Arduino in this scenario from too high current?

I know about zener diodes, but I have no idea how to place them to protect the inputs.

Technical information:

Best Answer

The circuit is fine in theory.
Improvement in practice is required.

Adding a gate-source zener diode of say 12V (> Vgate_drive) is a very good idea indeed in all circuits with inductive load. This stops the gate being driven destructively high by "Miller capacitance" coupling to the drain during unexpected or extreme variations in drain voltage.

Mount the zener close to the MOSFET.
Connect Anode to source and Cathode to gate so that the zener does not usually conduct.

The 10k gate drive resistor (as shown) is large and will cause slow turn off and on and more power dissipation in the MOSFET. This is probably not a problem here.

The chosen MOSFET is very marginal in this application.
Far far far better MOSFETs available ex stock at Digikey include:

For 26c/10 Digikey IRLML6346 SOT23 pkg, 30V, 3.4A, 0.06 Ohm, Vgsth = 1.1V = gate threshold Voltage..

NDT3055 48c/10 TO251 leaded 60V, 12A, 0.1 Ohm, Vgsth = 2V

RFD14N05 71c/10 TO220 50V, 14A, 0.1 Ohm, 2V Vgsth.


ADDED

SUITABLE MOSFETS FOR 3V GATE DRIVE:

System just trashed my longer answer :-(. So - MOSFET MUST have Vth (threshold voltage) of no more than 2V to work properly with 3V3 supply controllers.
None of the suggested FETS meet this requirement.
They may work after a fashion on the present load but are underdriven and overly lossy and the solution does not extend well to larger loads.
It seems that IRF FETS in size range concerned that have Vth (of Vgsth) <= 2 volts ALL have 4 digit numerical codes starting with 7 except IRF3708.

OK FETs include IRFxxxx where xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470

There will be others but all the ones suggested seem to have Vth = 4V or 5V and are marginal or worse in this application.

Vgsth or Vth needs to be at least one Volt less and ideally several volts less than actual gate drive voltage.

Related Topic