PWM control for high power motor

I'm hoping to build my own wood turning lathe in a couple of months and am thinking about what I need to get the motor turning. Thinking about pulling the motor out of an old treadmill and using that (hopefully its DC). It'll surely have its own speed control but where's the fun in that?

I'm trying to build everything from the ground up and aim to implement PWM motor control using an Arduino and a homemade encoder (shouldn't need more than 1 count per rev given I only care about speed control). The encoder and programming side should be relatively straight forwards but I'm bit unsure about the physical connection from Arduino to motor.

As the motor only needs to spin in one direction, I'm really not interested in buying a motor controller or H-Bridge to do the job. Can I get away with outputting the PWM pulse from the Arduino into a transistor/MOSFET connected to the motor (which diode and anything else that's needed), powered by how ever many volts is required?

You will probably find a good motor controller in the treadmill. And it will probably have the ability to read a potentiometer for speed control. What will you gain by putting an Arduino in the process other than complexity? and possibly unreliability and safety issues.

The underlying purpose of this project isn't to build a lathe but to validate a lot of what I've learnt in the last 5 years doing an engineering degree. It's a good way to apply the concepts I've learnt about in lectures and also solve any practical issues that are usually glossed over at university.

I could use the motor controller in the treadmill but where's the fun in that? I'd much rather do it myself and learn something in the process. I've studied a lot of control and to build my own controller to regulate the speed of motor will be a lot of fun. The feedback loop (implementing the controller in code, making my own very simple encoder and interfacing that with the Arduino) should be a fairly straight forward but worthwhile pursuit.

What I'm not so confident about is getting the pulses from the Arduino to set the speed of the motor. Hence the question. To me, it looks as simple as outputting a PWM pulse into a MOSFET? Something like this, with a diode across the motor for inductive spikes?

Having built pump controllers from scratch, I'll tell I didn't find much "fun" at all in solving all the naggy little problems of making a high power PWM unit. I'd pay Critical Velocity around $50 for one of their very sophisticated SP-315 series controllers. These can be run from pots, pushbutton pulses, or TTL signals from your Arduino.

In our lab (www.emriver.com) we use them for anything over 8 amps or so, because we could not dream of building anything with that power rating and flexibility for $50.

We use them on pumps up to about 12 amps and they function beautifully, and appear to have some software control to put out a super clean PWM wave. Also they use a high frequency to avoid audible noise. The stock Arduino PWM, at about ~500Hz (?) makes an awful buzz with some motors, though you can mess with timers in it to fix that.

My take, hope it helps :-)

Thanks for the reply.

What's the limiting part of building the controller/driver? I'd have thought the Arduino input into a MOSFET would be less than $10 to build. I can understand the 500Hz frequency being a hindrance but I don't imagine the motor would be running that fast and as you said, it's possible to up the frequency of the PWM.

My main concern is if it is even possible to run a 1kW motor off a single $10 MOSFET. Other than the issues mentioned here, I'm not sure where the difficulty would be. The rest of the control loop would be the same irrespective of motor. I'm happy to use a driver if a MOSFET is unfeasible but still want to handle the feedback part myself.

if it is even possible to run a 1kW motor off a single $10 MOSFET.

Probably not, but you can safely parallel mosfets to increase the capacity. (I'm not sure if there is a limit to the number of mosfets you can parallel. I know 3 is ok, but not sure if 10 would work.)

1kW is a lot of power. If it is a 24 volt system, that's 41 amps. Then you have to factor in the starting and/or stalling current, and all of a sudden, 41 amps is not sufficient. Maybe you'll need a 100amp controller, or maybe 150 amps. That's some serious power, and could generate some serious heat.