I'm an Arduino beginner. I've got 2 x 12V DC water pumps


plus 12V, 2A AC/DC adapter to feed them.

I would like to regulate the speed (flow) of the pumps programmatically by Arduino. My first idea was to use 2 channel Relay, however, it only supports two states - on/off. Then I discovered this DC Stepper Motor Driver:


That seems to be a good fit in terms of specifications, but I'm not sure whether it will work with the pumps? It makes me think of whether the DC Stepper Motor Driver may work with only specific motors?

Thanks for any advice!

  • 1
    Even though they call that a "stepper motor driver" it's nothing more than a basic H-bridge that can drive any brushed DC motors (two per driver).
    – Majenko
    Jun 4, 2021 at 11:46
  • 1
    I would add that the L298N is a relatively inefficient driver--I might aim for a different driver, like a 6612 etc. Jun 4, 2021 at 13:14

2 Answers 2


Yes, it will work.

You can control the speed of the water pumps with a PWM signal by using:

analogWrite(PWM_pin, value)

Or you can use a cheap transistor like a P2N2222A; here is a full tutorial.


Unfortunately after trying it does not work as expected. It has been mentioned that it must be a BRUSHED motor and most of these pumps on eBay are Brushless.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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