Hi, I'm trying to speed control a 12V/3A pump using PWM and an IRF540 FET.
The circuit works ok driving a 12V fan, but when I connect the pump the voltmeter only reads about 7V with pwm=255, and pulses every second or so when I reduce the pwm. I also tried with a TIP-122 transistor and the result is the same.
It has a manual dial to set the speed manually, and I set this to maximum. If I set it to minimum the multimeter reads 12V at pwm=255 but there is zero flow.
This is roughly the circuit I'm using, except the power supply is 12V and the input cable is connected to a pwm pin:
The "motor" is a 12V 3A pump, there wasn't a pump object in autodesk circuits to draw it properly.
The problem seems to be with the pump, the circuit works ok with a motor (I tested a 12V fan), I'm wondering if the dial (some sort of potentiometer?) used to control the pump manually is confusing things?
The diode should be in parallel with the motor I think, cathode on live side and anode on earth.
What are you using to supply this 12v? 3a seems like a fair old current
A 12V/5A regulated PSU, the pump runs ok standalone and the speed can be controlled manually via the dial. It just doesn't like being controlled via my circuit.
For example, turn the dial half way and the pump pumps smoothly at half speed, as you'd expect. Do the same via pwm=128 and it pumps slowly for a second, stops for a second, then repeats. It's also not getting full power when pwm=255, I suspect the manual speed controller is sucking up some of the voltage but it's a sealed unit so I can't bypass it unless I cut the wire.
Just had a quick look at the datasheet for your transistor, I'm pretty sure that's your problem! It's apparently designed for low speed switching applications, you need a fast one for pwm. The one that ships with the starter kit will do if you have one
Actually I might be talking rubbish about the starter kit one - double check the data sheet on that first. What you want is an n-channel MOSFET that will operate on 5v gate voltage, and obviously built to handle your v and I requirements, with fast switching
ash73:
A 12V/5A regulated PSU, the pump runs ok standalone and the speed can be controlled manually via the dial. It just doesn't like being controlled via my circuit.
For example, turn the dial half way and the pump pumps smoothly at half speed, as you'd expect. Do the same via pwm=128 and it pumps slowly for a second, stops for a second, then repeats. It's also not getting full power when pwm=255, I suspect the manual speed controller is sucking up some of the voltage but it's a sealed unit so I can't bypass it unless I cut the wire.
The link to the pump you provided says that the motor is brushless (BLDC).
I am not surprised you have problems as these are not designed to run from PWM generally.
I am a little surprised it works at all.
You could try cutting the wire from the control box and using one of these (or similar DYOR) controlled by the arduino servo library.
No guarantees though.
ash73:
So wrong mosfet and wrong pump, off to a good start then
It is an expensive pump.
Suitable drivers for those motors have been around for a long time.
They are commonly used by the RC aircraft (and boats e.t.c.)community though so are cheap to buy these days.
Could be a fairly cheap rescue.
It's a scientific experiment, the pump needs to be speed controlled so I can create an accurate water pressure in a pipe, the Arduino will read from a pressure sensor and adjust the pump speed to correct the pressure.
I have a r/c heli with an esc, didn't even occur to me the pump might work the same way; electronics is new to me.
Just wanted to report back Alka's suggestion works perfectly, I hooked up a MCP4131 digital pot to the existing speed controller and it works just fine.