What to use to power a Water Pump

Yes, I have searched, and I'm close, just need someone to wrap this up for me. Taking it step by step as I learn. I'm a programmer but I know jack about low level electronics.

I have:

Arduino Mega 2560
12V Water Pump

I think it's pretty clear what I'm trying to do here.

Now, as I understand it so far, I need to use a MOSFET.

Because a MOSFET will take a 12V input (source) and a 5V input (gate). And when the 5V input (the Arduino pin) is set off, it will pass the 12V from the source to the destination (water pump).

Right? Close? Completely off?

Assuming you want the Arduino to turn the pump on and off, then yes it is reasonably clear. You are on the right track; however, the selection of the MOSFET is important, not all (or even most) will work. You need a MOSFET that will respond to a logic level (5V) signal on its gate. Some/most need more than 5V to fully switch on. You will also need to decide whether to use an N-channel or P-channel. Either will work, depending upon how you desire to wire the circuit. N-channel is probably more frequently used.

Thanks!

So I need a "logic level" mosfet that will take a 5v signal.

  • Does "logic level" just mean low voltage, ie 5v?
  • More general question, is this the best way to do what I am trying to accomplish?

I'll look up N and P channel before I ask another stupid question.

Also here's the pump. 6.5l 12v CPU Cooling Car HHO DC Submersible Water Pump for sale online | eBay

You can also use a relay.

That was my first thought as I knew what a relay was but not a mosfet.

I keep hearing though that relays are louder. Any advantage that would be relevant in this particular case?

Also I have another question. Would it be possible for me to control the level at which the water pump operates if I use this method? Ie full power, low power, etc.

tk26:
Would it be possible for me to control the level at which the water pump operates if I use this method? Ie full power, low power, etc.

I'm not sure what you mean by "level." I think you mean motor speed, see

If you mean water level to determine when to run the pump, see
http://arduino.cc/playground/Main/Waterlevel

Yes logic level, means that the gate will respond when at 5V.

Yes, I believe a MOSFET is the most effective method, I do not like relays and if the motor for the pump is DC, you can use a MOSFET with PWM to adjust the power of the motor (but it is not a linear relationship), which you can't do with a relay.

Husker:
I'm not sure what you mean by "level." I think you mean motor speed, see
http://arduino.cc/en/Main/ArduinoMotorShieldR3

Yes that's what I meant. I was assuming I could drive this by setting the power level (writeAnalog in Arduino).

The shield isn't a necessity is it?

wanderson:
Yes logic level, means that the gate will respond when at 5V.

Yes, I believe a MOSFET is the most effective method, I do not like relays and if the motor for the pump is DC, you can use a MOSFET with PWM to adjust the power of the motor (but it is not a linear relationship), which you can't do with a relay.

I had decided on using a MOSFET over a relay, I was trying to be even more general than that. Keep in mind I'm clueless about most of this stuff.

So do I have to specifically get a MOSFET that supports PWM right? Any model suggestions?

Also what do you mean by it is not a linear relationship? How accurate do you think I can get? How could I improve this?

Sorry for so many questions, I just need to be pointed in the right direction here and I can take it from there.

There Might be an issue here as 'most' water pumps are BIG 50 or 60 Hz devices that really don't like to be turned off and on at a high rate or speed. Variable flow pumps have a VFD controller (variable Frequency Drive) controller that controls the rate of speed of an induction motor. Switching an induction motor off and on at PWM speeds is likely to have a lot of Magic Blue Smoke associated with it's use...
Not really a great Idea... A relay controlled by a mosfet is called for here and this relay controls the pump control relay which is typically controlled by a 24VAC contactor or controller relay. There are Very high voltages and Currents associated with pumps....Even 110VAC is Extremely dangerous to associate directly with an Arduino... Always use an intermediate 24 VAC control link. I've commercially make 50 HP pump controllers that operate from 3 Phase 440V AC Mains sources. All work well and safely with the intermediate control link.

Doc

Also I was reading something about motors, that when shut off the motor (due to something with magnetism) would shoot back a high voltage that could damage the other components.

Anyone know what this is about?

Docedison:
There Might be an issue here as 'most' water pumps are BIG 50 or 60 Hz devices that really don't like to be turned off and on at a high rate or speed. Variable flow pumps have a VFD controller (variable Frequency Drive) controller that controls the rate of speed of an induction motor. Switching an induction motor off and on at PWM speeds is likely to have a lot of Magic Blue Smoke associated with it's use...
Not really a great Idea... A relay controlled by a mosfet is called for here and this relay controls the pump control relay which is typically controlled by a 24VAC contactor or controller relay. There are Very high voltages and Currents associated with pumps....Even 110VAC is Extremely dangerous to associate directly with an Arduino... Always use an intermediate 24 VAC control link. I've commercially make 50 HP pump controllers that operate from 3 Phase 440V AC Mains sources. All work well and safely with the intermediate control link.

Doc

This is a small 12V pump though. Not sure if that will still apply or how much in this case but please do let me know what you think!

tk26:
This is a small 12V pump though. Not sure if that will still apply or how much in this case but please do let me know what you think!

6.5l 12v CPU Cooling Car HHO DC Submersible Water Pump for sale online | eBay

You can certainly use a mosfet (or even a bipolar transistor, if you choose it carefully) to turn that pump on and off. You can try using PWM to vary the speed, however it uses a brushless motor, so it may not work very well with PWM. You will have to try it and see.

dc42:
You can certainly use a mosfet (or even a bipolar transistor, if you choose it carefully) to turn that pump on and off. You can try using PWM to vary the speed, however it uses a brushless motor, so it may not work very well with PWM. You will have to try it and see.

Oh okay. Anything else I can do? Maybe something that will read the PWM signal and use it to supply steady power (the level of which would be based on the level indicated by the PWM pulses) to the motor?

I'm looking at motor drivers now, but not sure if there's much benefit over just a mosfet.

tk26:

dc42:
You can certainly use a mosfet (or even a bipolar transistor, if you choose it carefully) to turn that pump on and off. You can try using PWM to vary the speed, however it uses a brushless motor, so it may not work very well with PWM. You will have to try it and see.

Oh okay. Anything else I can do? Maybe something that will read the PWM signal and use it to supply steady power (the level of which would be based on the level indicated by the PWM pulses) to the motor?

You can use and inductor and capacitor to smooth the power to the motor. If you go this route, it's best to increase the PWM frequency, so that you can use a smaller inductor and capacitor.

tk26:
I'm looking at motor drivers now, but not sure if there's much benefit over just a mosfet.

The benefit of a motor driver is that is can reverse the direction of the motor - if it is a standard brushed type.

dc42:
You can use and inductor and capacitor to smooth the power to the motor. If you go this route, it's best to increase the PWM frequency, so that you can use a smaller inductor and capacitor.

Yeah, but I'm thinking though, if I do that, why use PWM in the first place. It was suggested here, I actually hadn't though of it, I planned to do analog straight to the mosfet then to the motor.

dc42:
The benefit of a motor driver is that is can reverse the direction of the motor - if it is a standard brushed type.

Oh okay, yeah I don't care about that.

The pump in question can possibly be affected by the pwm rate and may exhibit some strange behavior if the PWM signal is a multiple of the motor control frequency. In a brushless motor the drive to the motor is ac. I noticed that the flow rate is variable and I don't think the motor controller would "Like" to see chopped dc at a rate close to the drive signal to the motor. Other than that one minor point I see no reason why you couldn't use a PWM control for motor speed. Computers CPU fans do it quite well. I do think however that the PWM rate needs to be higher than the motor drive rate or period to avoid interactions. Try it and see... I have little experience with small brushless motors used in CPU fans beyond changing them out when they fail. Most failures are due to poor quality material used for the bearings (bushings) in the motor... But some go dead and a few I have used failed repeatedly. PWM Control or bad luck...? I never figured out which but that question has always bothered me... IMO
I don't in theory see any reason why not but I haven't tried it to see with anything I have ever built.

Doc

tk26:

wanderson:
Yes logic level, means that the gate will respond when at 5V.

Yes, I believe a MOSFET is the most effective method, I do not like relays and if the motor for the pump is DC, you can use a MOSFET with PWM to adjust the power of the motor (but it is not a linear relationship), which you can't do with a relay.

I had decided on using a MOSFET over a relay, I was trying to be even more general than that. Keep in mind I'm clueless about most of this stuff.

So do I have to specifically get a MOSFET that supports PWM right? Any model suggestions?

Also what do you mean by it is not a linear relationship? How accurate do you think I can get? How could I improve this?

Sorry for so many questions, I just need to be pointed in the right direction here and I can take it from there.

No, any MOSFET will work with a PWM technique, but the motor itself might not. By linear, I was referencing the fact that at 50% (AnalogWrite(2.5) the there might not be enough voltage for the motor to work at all. The range of control may be much less.

Here is an Application Note, that may help you for this project; the note itself is for PIC's, but the techniques should be the same

wanderson:
No, any MOSFET will work with a PWM technique, but the motor itself might not. By linear, I was referencing the fact that at 50% (AnalogWrite(2.5) the there might not be enough voltage for the motor to work at all. The range of control may be much less.

Okay I see. So this would be just a motor issue, some motors won't run at 25%, they'll only run at 50% if I understand correctly. But if I made the proper adjustments in my code, I could start at a different value, that value being whatever I determine to be the minimum to run my motor at all. I only need 4 levels.

wanderson:
Here is an Application Note, that may help you for this project; the note itself is for PIC's, but the techniques should be the same

http://ww1.microchip.com/downloads/en/appnotes/00857a.pdf

I'll check it out, thanks!

Also, quick capacitor question, I can get a 100v capacitor right? I'm assuming the voltage rating is just a maximum.

Yeah, but I'm thinking though, if I do that, why use PWM in the first place. It was suggested here, I actually hadn't though of it, I planned to do analog straight to the mosfet then to the motor.

the reason for using PWM instead of DC control (a variable linear regulator) is that a linear regulator or variable voltage power supply dissipates the "Unwanted" power as heat. So at low flow rates the DC power wasted will make the control element quite hot. A PWM power supply only has two states off and on, power is controlled by the period of the on signal as it gets narrower in relation to the off period the lower it's "Average voltage" is and the lower the speed the motor runs at.

Doc

Docedison:
the reason for using PWM instead of DC control (a variable linear regulator) is that a linear regulator or variable voltage power supply dissipates the "Unwanted" power as heat. So at low flow rates the DC power wasted will make the control element quite hot. A PWM power supply only has two states off and on, power is controlled by the period of the on signal as it gets narrower in relation to the off period the lower it's "Average voltage" is and the lower the speed the motor runs at.

I think I'm missing something here. Can't I put out a low voltage directly from the Arduino with an analog pin? Nothing should be wasted in that case.

Or does the mosfet only do on/off? That would make sense, if it does that it'd work with PWM but not a lower incoming voltage.

So I'm thinking PWM -> mosfet -> capacitor (smooth it out) -> motor.