How to power a 12v motor

I have a project for school where I need to power a 12v vacuum pump (current draw was unspecified but it gave a power rating of 7.5W). I'm limited by only being able to run my arduino from battery (I was thinking of just using a 9v). My question is how to power this larger voltage motor since the most the arduino can output is 5v. So I don't really know how to go from here. Do I use an op amp to go from 5v to 12v? Or do I use 8 AAs in series to get 12v and use that to power the motor seperatly? My concern with using an op amp is that the current would still be rather low. Weight is also a constraint in the project so I don't really want to have to use 8AA. I also am unfamiliar with H-bridges.

The Arduino can't power motors directly. You don't want to use an opamp.

Some sort of FET type transistor could be use. A relay is another option. H-bridges are very useful and it would probably be a good idea to learn to use one.

A h-bridge like the L298N would probabaly work with your 12V motor.

This inexpensive L298N board includes a 5V regulator which could be used to power the Arduino.

I made a tutorial about using these cheap boards with a microcontroller. Here's a link to the tutorial.

The battery pack you need will depend on how much current the vacuum pump draws. I think ten AA NiMH cells would probably be a good option or three LiPo cells.

The L298N h-bridge is nice and cheap but there are lots of better options which would allow more of the voltage from the battery to reach the motor.

If you don't need the motor to reverse, you don't really need a full h-bridge. Some sort of FET would probably work fine but I don't have a suggestion on what part to use.

What you need is a logic level gate mosfet. The gate needs to be fully on or the resistance of the drain/source is not at its least so causes heat.
My favourite small mosfet is NTD5867NL. It works with 5v on the gate and handles a few amps with ease. They are cheap. I bought mine from RS Components.
There are others but make sure they are fully on at 5v on the gate.


The pump consumes 12/7.5 = 1.6A, much more than the Arduino. You better use a 12V battery, that you can use to drive the motor. A step-up converter might be used as well, but it will drain the battery more quickly. Or you check whether the pump will work sufficiently well with a lower voltage (9V).

You’ll need some circuitry to turn the pump on and off. This may be a FET, a relay or motor driver shield, whatever fits your electrical skills best.

Or you check whether the pump will work sufficiently well with a lower voltage (9V).

If the 9V battery is the type used in smoke detectors, it will not be able to provide enough current to drive the pump.

In case bhackbob isn’t aware, 9V batteries are intended for low current devices.

The pump consumes 12/7.5 = 1.6A

Umm - P = I * V...

Thus, I = P / V -> I = 7.5 / 12 = 0.63A

Obviously still greater than what the Arduino can handle...


Thus, I = P / V -> I = 7.5 / 12 = 0.63A

Correct, I flipped P and V :frowning: