Electrical – Why Arduino does not suit the to trigger a Spark plug but 555 timer can

555arduinomosfetsparktransformer

To trigger a spark plug and to control it using an Arduino, I tried following this really well-written guide.

Basically, a MOSFET(IRF540N in my case) controls the closing and opening of the primary winding of the ignition coil(which basically is a transformer), while an Arduino triggers the MOSFET.

But this never worked.

The sparks were small and low in repetition; MOSFET was heating up; Arduino's Tx and Rx light kept flickering; etc. etc. It was never as shown in the blog linked above.

But once the Arduino was replaced by the 555 timers, all was well. Except the mild heating of MOSFET, everything was sorted out.

What could be modified with the Arduino circuit to get it up and running as shown in the guide linked above? Why is Arduino suffering which 555 timer is able to handle?

Best Answer

The original link shows an NDP5060L was used, you made a substitution without understanding the required ratings. The web site also shows a (now 404) link to driving a FET, so clearly there is more to the schematic than shown.

The original circuit was a very marginal design, since a 60V FET (the NDP5060) was used in an application that requires perhaps 300V VDS capability. I would imagine it would be likely to fail often.

Your selection of an IRF540 is just as likely to fail since it is only 100V rating. It's also very difficult to drive high capacitance gates directly from an Arduino (or any other MCU).

To drive a power FET and get low turn off times (the turn on time is almost irrelevant in this application) you need to be able to discharge the FET gate very rapidly.

You could drive the gate with an H-Bridge driver such as the SN754410 or the L293 (you only need one channel) and these would give adequate results (though you should have a series resistor to the gate being driven).

A more modern device with excellent performance is the ON Semi FAN3268 this provides FET outputs (no series resistor required) rather than BJT and works for 3 -5V MCU direct drive (you would only use the low side driver).

schematic

simulate this circuit – Schematic created using CircuitLab