Issues activating IRF540 MOSFET with Arduino Digital Pins


I'm working on an electric drum kit project. I'm using 12 V, 0.91 A linear solenoids to do the striking. They are activated as shown in the circuit above.

I am able to get the IRF540 MOSFET to activate by attaching the Arduino Uno's 5 V pin to the G-input of the MOSFET, however the digital pins of the Arduino will not activate the MOSFET. I have verified in the program that the pins are set to OUTPUT mode.

When the 5 V pin is connected to the MOSFET's G-input, my voltmeter reads 4.84 from the 5 V pin to ground.

When an Arduino digital pin is connected to the MOSFET's G-input, my voltmeter reads 2.9 V. The built-in LED also gets slightly dimmer. Placing a 1 kOhm resistor increases the voltage drop to exactly 5 V, however the solenoid does not actuate.

Where did I go wrong? Have I fried my Arduino or MOSFET somehow? Did I buy the wrong MOSFET? Am I missing diodes, etc. in my circuit?


This is not a logic level MOS FET, this device needs a gate turn on voltage of 10-12 volts.

Use an IRL540 or similar.
You need a common GND going to the Arduino.
You need a kickback diode across the the solenoid.

See the Q3 or Q4 circuits.

Outputs.jpg Click on the image for full resolution.

Alright, thank you for the help!!