DC Motor connected to Arduino via irf510 MOSFET doesn't work under load

I have a 3V DC motor connected to my Arduino pretty much as described here. I am using an IRF510 MOSFET instead of an IRF520 as that's what Radio Shack had available. Also, as it is a 3V motor I am using a 3V power source for the motor instead of 9V.

I'm able to turn on the motor via the Arduino if the motor isn't driving anything. If I connect it to its gearbox however, it won't move when I try to turn it on via the Arduino (it will make a slight buzzing sound). If I connect the 3V power source directly to the motor, it will turn on and drive the gearbox.

What can I do to get the motor to work via the Arduino when connected to its gearbox? Are the increased power demands of the gearbox requiring more current than the MOSFET will allow?

For reference, this is the motor and gearbox I'm using: Tamiya 70103

Thanks,
Daniel

Perhaps your MOSFET needs a higher gate-voltage to become completely open. You could look for a logic-level MOSFET. They can be driven with a arduino digital output.

Elektrix

3V at the drain, but 5V at the gate will probably kill the FET.

It's like Elektrix posted, that FET requires around 10V at the Gate to turn it on good.

You could try using an NPN.
Look for an example using one to switch a relay coil, with the motor in place of the coil.

You need to consider the voltage that the circuit will apply to the motor, when it is "on". If the drain-source voltage of the transistor is, say, one volt, when it is on, then you need a 4 V power supply, in order to have 3 volts applied to the motor.

The other thing to check, with your setup, is to make sure that you are reading the potentiometer correctly. Try bypassing that part of your arduino code, and just running the other part of your arduino code to drive the FET as if you wanted full speed.