I want to control a 9 volt pump with my arduino, and my arduino is giving around 2V as output through its gio pins ( I don't know exactly the reason why, maybe cause I have lots of other sensors attached to it), my pump is not working.

For it, I thought of multiplexing the 9 volt battery, if the input to IC is 01 on select channels, then 9 volt should be the output of the multiplexer, else it should be zero.

But I am not sure if this is possible or if the multiplexer can direct 9 volts of power supply to the pump.

And also, please suggest if there is a better way to control my pump (there is no power supply attached to the pump, so I can't use relay).

  • \$\begingroup\$ I don't know exactly the reason why ... you should review the Arduino specifications .... there is no reason why you should not know what the output voltages are \$\endgroup\$ – jsotola Sep 19 '18 at 5:19

The 4051 is ulikely to be able to pass enough current to run a pump (but some specs on the pump would be nice...)

The usual solution to control anything drawing significant current with a microcontroller is to use a transistor or fet, like so:


simulate this circuit – Schematic created using CircuitLab

The transistor should be something suiatble to carry the pump current (2N3904 is the default type in CircuitLab)

If the pump current is fairly low, the transistor can probably drive it directly. Otherwise you may need to have the transistor drive a relay, and use the relay contacts to provide power to the pump.

  • \$\begingroup\$ By the way, don't forget to add a freewheeling diode across your motor or you will destroy your transistor. \$\endgroup\$ – Blup1980 Sep 19 '18 at 9:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.