Speed control of a 24V with Arduino

I agree with johnwasser in principle, but with a few changes:

  1. Use a 100 ohm gate series resistor, not 1K. When switching 300W, you need to achieve a fast switching time to keep power dissipation in the mosfet low. Using a resistor as high as 1K makes the switching time higher.

  2. It is absolutely essential to connect a flyback diode in parallel with the motor. Look for a Schottky diode that can handle 30V and at least 16A.

  3. Also connect a 10K resistor between the Arduino output pin and ground. This is to ensure the mosfet is held off when the Arduino is powered up but the pinMode has not yet been set.

  4. 2SK4043LS has Rds(on) of 21 milliohms, so when passing 16A the power dissipation will be 2W and the mosfet will run hot unless you heatsink it. There are better mosfets available for this task, such as IRLB8743PbF (4.3 millohms Rds(on)).

  5. If the power source is a lead acid battery, then the voltage on charge will be around 27V. In this case, I suggest you look for a mosfet with a Vds rating of at least 40V rather than 30V.