I have a little problem with controling a DC pump with my Arduino Uno.
I'm powering the pump with an adjustable power adaptor, and I want to control it with a RFP12N10L MOSFET via PWM.
The Arduino is powered via the USB port of my Laptop.
I cannot control the pump. Doesn't matter if I control the Pin11 output with the potentiometer, or if I set it to LOW or HIGH, the power of the pump is not changing.
Now I can control the pump, but somehow the arduino is drawing too much power over the USB port and my Laptop is complaining.
I'm not shure if my second curcuit is any good (although its doing what it should), or maybe bad for the arduino or the other parts, since I'm not very experienced with electronics.
I hope somebody can help, would very much appreciate it!
First: congratulations for using the schematic view!
The second circuit is correct. The Mosfet functions with voltage differences so you need to connect to both sides to make a voltage.
However the power supply must have some other internal connection which is bad for the USB. Can you unplug your laptop and run on battery power while connected to this circuit?
MorganS:
First: congratulations for using the schematic view!
The second circuit is correct. The Mosfet functions with voltage differences so you need to connect to both sides to make a voltage.
However the power supply must have some other internal connection which is bad for the USB. Can you unplug your laptop and run on battery power while connected to this circuit?
I already tried that, unfortunately didn't help...
But I'm planning on powering the arduino with another source when the Project is ready, so that would probably solve the problem?
avr_fred:
What exactly is an “adjustable power adapter”? Please explain/provide details as that is likely to be the source of the problem.
outsider:
How much current does your pump require? What other things is the Arduino powering? Can you post your code?
On full power, with 12V it would draw 2A, but I'm powering it with 9V, so something like 1.2 - 1.5A max.?
The arduino is also powering a LCD Display which I didn't include in the sketch.
The code is pretty simple right now, just reading the value of the potentiometer and writing the value to the pin11 with analogWrite(pin11, potentiometerValue/4)
Plus the code for the Display.
I'm not at home right now, I will post the code in the evening.
The RFP12N10L MOSFET is not suitable, it has a very high on-resistance.
A pump motor drawing 2A at rated speed will require perhaps 20A stall current at turn-on, beyond the
capability of that MOSFET (unless you water-cool it!).
You need a logic level MOSFET rated at <=0.02 ohms on-resistance, on a small heat-sink. Do not try
to get a 100V MOSFET for a 12V circuit, get a 20 or 30V one, on resistances are much smaller for low
voltage devices, and on-resistance is everything.
You must use a free-wheel diode across the motor, this is a hard requirement, otherwise you'll simply
fry the MOSFET and perhaps blow up your Arduino.
The 60W rating of the MOSFET only applies for a millisecond or a microsecond.
You have to decide how much heatsink you give to it and then go through the calculations of degrees per watt. With a SMD device on a regular PCB with no heatsink, you may see 110 degrees per watt. That means that it will burn out if you give it more than 1.5 watts power dissipation continuously.