How can you control the speed of an AC water pump? In particular this one.

My guess is that PWM won't work on an AC motor? I've heard that controlling the voltage will change it's speed...is this true? If so, how can I control the voltage via microcontroller (Arduino probably)?

  • \$\begingroup\$ Use Fan Regulator to control the speed of water pump motor. \$\endgroup\$ – user8666 Mar 15 '12 at 8:22

AC motors are not as easy to speed control as DC motors; their torque is related to both the applied voltage and the applied frequency. This is known as the Volts:Hz ratio. In order to maintain torque at a speed other than its rated speed, you need to adjust the frequency in proportion to the voltage.

If you want to do it right, you rectify the AC into a DC bus and then use IGBTs to chop up the bus (using PWM) to generate an AC waveform at the frequency and average voltage you need. This is not quite as simple as it sounds, and single-phase AC motors have capacitors which are the sworn enemies of active devices such as IGBTs.

All is not lost, though: If you can live with the torque drop-off you can simply phase back the voltage applied to the motor using a triac. Use an optocoupler to detect when the AC wave crosses zero and then use that as a reference point to drive a timer which controls where in the AC wave that you turn on the triac. This is classic phase angle firing or phase angle control and works for general dimmer applications for lighting and heating.

You have something in your favour: most water pumps are a cube-log load; the torque requirements drop off drastically as the speed of the pump drops. If you have a positive-displacement type of water pump (piston pumps) you will not be so lucky, but centrifugal and impeller type pumps are fairly easy to slow down. You should be able to get close to a 2:1 speed reduction and still move water, but no more. Also remember that you may not be able to meet the static head requirements of your system if you slow down too much; the pump simply will not be able to make the head pressure required. You won't break anything, but it may not work as well as you want.

All of this should be VERY doable with an arduino or other small microcontroller. I used to design three phase motor controllers using the PIC microcontrollers available in the late 90s. Just keep in mind that you will be playing with line voltage; use optical isolation both for detecting zero crossings and for driving the thyristor, and work slowly and deliberately when you're testing.

Note that if you just want a knob to turn down the pump you can do it without any microcontroller at all using a diac and a triac. Do some web searches for resistive heater controllers or soldering iron temperature control, or "phase angle" triac controllers. Tons of examples online.

  • \$\begingroup\$ sounds complex... what if I just switched to a dc motor? Can I use a s.s. relay and PWM? What's the best route to control say a 24v DC pump? \$\endgroup\$ – tybro0103 Sep 23 '10 at 13:49
  • 1
    \$\begingroup\$ H-Bridge transistor configuration and PWM is the preferred way to control DC motors. If you don't need it to run both directions you can get away with one big transistor and PWM controlling it. \$\endgroup\$ – AngryEE Sep 23 '10 at 14:55
  • \$\begingroup\$ It's not all that complicated; look up AC light dimmer circuits or soldering iron heat controllers for the basic idea. \$\endgroup\$ – akohlsmith Sep 25 '10 at 20:17
  • 2
    \$\begingroup\$ Andrew Kohlsmith - Resistive loads (e.g. Lights, a soldering iron) are very different from inductive loads (e.g. a motor). There is no real commonality between what is needed to control them. \$\endgroup\$ – Connor Wolf Sep 27 '10 at 10:00
  • 1
    \$\begingroup\$ @FakeName for the type of motor he is describing a simple circuit like the one I suggested isn't going to have much trouble. You're right, inductive loads are more difficult to drive, but the problems of lagging power factor with small motors just are not big enough to worry about in most cases. \$\endgroup\$ – akohlsmith Mar 15 '12 at 12:29

Assuming that the reason for varying the speed of a pump motor is to do flow control, why not just place a valve on the output and regulate the flow by adjusting the valve?


I've used automation direct's GS1 and GS3 drives successfully to control AC motors. They have an easy button interface to manually set speed.

Autmoation Direct GS Drives -

I've also heard good things about Baldor and Yaskawa VFD drives.

  • \$\begingroup\$ It's a single-phase 4A motor. I don't know of many VFDs that can work on single-phase motors. Even with that, I think a VFD would be total overkill for this application. \$\endgroup\$ – akohlsmith Mar 15 '12 at 15:16
  • \$\begingroup\$ @AndrewKohlsmith, I also have only seen a VFD for three phase. \$\endgroup\$ – Kortuk Mar 15 '12 at 15:31

Silicon Chip magazine has just published a circuit using the STGIPS20K60 IGBT as it's core. It will work with both single and three-phase induction motors. It's designed for the 230V RMS we have down under, but should be easily adaptable. http://www.siliconchip.com.au/cms/A_112812/article.html


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.