Hello all,
First time poster, long time reader. I am relatively new to the Arduino game, and am having trouble solving a PWM-DC pump conundrum. I currently have a 12V brushless DC pump hooked up to be controlled using PWM attained from the analog input of a pot. I'm using a transistor to control the higher voltage, a 1k ohm resistor for isolation (I think that's the correct term), and a diode for inductance surge protection - a pretty typical set up from what I have read.
The problem: The pump only runs while analogWrite is set to 255. For all values except fully on, it does not turn. Furthermore, the pump turns at a slower rate when plugged into a 5 V rail, but again, only when the pot is fully turned -when analogWrite is set to 255. I am confident with the coding and hardware because I have swapped out the pump for cooling fans which turn at varying speeds in accordance to the pot. So the pump works, the pump speed can be varied by connecting to different voltages, and the circuit works perfectly when fans are used. It seems PWM does not work with the pump... which is just a brushless DC motor... so it should, right?
I looked for a datasheet for the pump, but it's a cheap (but awesomely quiet and nicely built) motor from China and have had trouble finding anything helpful. Could it be that the pulse width is too short for the motor to get started? This seems to contradict everything I've read on DC motors. Is this common for DC motors? Seems to me that it should work. Any advice would be greatly appreciated. Go easy on a chemical engineer trying to learn to do cool things using this 'lectricity thing.
COMPONENTS
Pump:
model: DC30A-1230
max voltage: 12V;
power: 4.8W (~400 mA assuming 12V)
Transistor:
model: TIP31AG
max collector/emitter voltage: 40V
max base voltage: 5V
max current: 3A
Power source: 12VDC @ 5A
