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?

  • \$\begingroup\$ Don't know the numbers so I could be wrong, but this sounds like the arduino can't charge that FET's gate as fast as the 555 timer, and as a result you get a less sharp rise and because of it lower spark size. \$\endgroup\$ – Joren Vaes Jul 17 '18 at 17:24
  • \$\begingroup\$ Do you mean the MOSFET number? It was IRF560N \$\endgroup\$ – karthikeyan Jul 17 '18 at 17:27
  • 1
    \$\begingroup\$ I meant "I don't have the time nor the expertise in this filed to do the math for you, but if I were you this is where I would start looking" \$\endgroup\$ – Joren Vaes Jul 17 '18 at 17:28
  • \$\begingroup\$ @JorenVaes will such a sharp rise of (what?) make the Tx and Rx lights to blink? \$\endgroup\$ – karthikeyan Jul 17 '18 at 17:29
  • 2
    \$\begingroup\$ @Maple I think you just looked at the IRF540N data sheet. I don't think there is an IRF560N device but I may be mistaken. \$\endgroup\$ – Andy aka Jul 17 '18 at 17:43

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 resitor to the gate being driven).

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


simulate this circuit – Schematic created using CircuitLab


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.