Hello,
I have a small water pump (5V/160mA) that I want to connect to one of the digital pins on an Arduino Uno.
The pins can supply me with the correct voltage, but only with about 20mA of current, which is an eighth of what I need.
Is there any way I can make the current higher? I thought about using a relay, but it will raise the voltage and the current to 3V and 10A (way more than I need), and I found no way to get both of them down to where I need them.
Transistor (BJT or MOSFET) will do the job with the right circuit. The motor in the pump
is an inductive load so you'll need a diode - checkout the circuits for driving relays and motors
from Arduino.
BTW You should never drive an inductive load, no matter how little current, directly from
a logic output due to inductive kickback.
Is there any way I can make the current higher? I thought about using a relay, but it will raise the voltage and the current to 3V and 10A (way more than I need), and I found no way to get both of them down to where I need them.
A relay is just an electrically-operated and electrically-isolated switch. It won't raise the voltage. If you are powering the Arduino from a higher voltage and you don't have 5V available you can use an external voltage regulator.
The current depends on the voltage and load resistance ([u]Ohm's Law[/u]) so **a 10A power supply won't "force" 10A through the pump. **
The power in your house works the same way - If you live here in the U.S. you have 120VAC constantly at the power outlet. No current flows until you plug something in and turn it on. A light bulb takes less current than a hair dryer and if you plug-in two hair dryers you get excess current and blow a circuit breaker.
To flesh out what MarkT said, here is a circuit which should do what you want. [Note: groundFungus posted a diagram as I was preparing this; the one here is the bipolar transistor version]
Q is an NPN transistor, which needs to be large enough to handle the load current. In your case a 2N4401 should be fine. A MOSFET could also be used here, but they are a bit more fragile with respect to handling.
R is a resistor which serves to limit current to the transistor's base. In your case, 1k should work. If not, try 470 ohms.
D is a diode which protects the transistor from destructive inductive spikes produced by the motor. 1N4001 should be fine.
The two connected grounds is a reminder that the Arduino ground must be common with the transistor ground.
Verstehen?
S.
I see that a number of posters are showing you how to best drive your pump, so I won't repeat that. Instead I'll try to help you understand why current doesn't work like you explained.
Is there any way I can make the current higher? I thought about using a relay, but it will raise the voltage and the current to 3V and 10A (way more than I need), and I found no way to get both of them down to where I need them.
Perhaps it would help to better understand how loads become what they are. For the most part, most components (with LEDs an exception) are designed to operate at a specific voltage.
If given that voltage the current will be determined by the design of the device. Maybe to make it clearer an example will help.
Say you have a 12V light, when connected to 12V it will "draw" a current of 1 amp. If you connect it to a plug in supply capable of only 1 amp the light will draw 1A. However if you connect this light to an automotive battery capable of 200A. The light will still only draw 1 Amp.
So in your example, you do not have to control the current, "to get it to where you need" The current will be controlled by your load.
The pins can supply me with the correct voltage, but only with about 20mA of current, which is an eighth of what I need.
The key in the above statement is the specification of 20mA is the MAX any pin is capable of. If I had a 10 mA LED and connected it to an output pin. The current will be 10mA.
For good or bad, specifications are written for engineers. Nearly every specification has qualifiers. In this case, the output of one pin can supply 20mA but the voltage will drop below the 5V you might have been expecting. There is likely a chart showing the output voltage as a function of the current you expect from it.
AND there is another specification that tells you the max current the whole device can supply. At a 20mA max for each pin and say you had 20 pins as outputs the expectation is you could power something requiring 400mA. NOT SO, the package has a max total current limitation. And its even more complex when you consider the heat that will be generated in the device at the "Absolute max current" allowed.
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.