I am creating a project where I need 16+ (possibly up to 20) servos to open/close liquid flow through tubing, which in turn will be controlled by a peristaltic liquid pump (https://www.adafruit.com/product/1150). Since the adafruit servo shield (https://www.adafruit.com/product/1411) gives you access to 16 servos per shield, it seems like the obvious option. However, this shield wont be able to drive a peristaltic pump. I've been told I can put a adafruit servo shield on top of a adafruit motor shield (https://www.adafruit.com/product/1438), but is this really the most effective way to build this project? I want to have a system that is as compact and cheap as possible, using already-available electronics (although I suppose one option is to build a shield myself, but having not done that before it would take me a very long time).

I am quite new to arduino and its accessories, so I apologise if this is a very simple question.

Best, N

  • 2
    You don't need a shield to run servos. Maybe you should be looking at a more powerful board that can directly connect to many servos without the need for any additional hardware. There's more than just Arduino boards in the whole ecosystem.
    – Majenko
    Mar 1, 2022 at 15:55
  • the pump is just a DC motor, as far as the microcontroller is concerned ... there are many tutorials on the web about controlling a motor with a microcontroller
    – jsotola
    Mar 1, 2022 at 16:58
  • Minimal components for driving a motor like a pump is: MOSFET used as switch (capable of handling the needed current and having a threshold voltage well beloe logic level of the Arduino), a diode used as flyback diode and a resistor to limit the gate current (just to be safe). That enables you to drive the motor in one direction, controlling its speed.
    – chrisl
    Mar 1, 2022 at 23:51

1 Answer 1



Never apologize for asking the simple questions! The only reason I've learned in my life is for asking these kinds of questions. We all have to start somewhere, and should never be embarrassed for what we don't know. The key is being willing to learn and ask for help.

Here's a simple solution to your problem.

The shield is a great idea for you to use. It's very simple to wire (it plugs in :), you have power management system on the shield, and you can control the entire thing with I2C. So I'd definitely stick with that.

In order to drive a DC motor (pump), all you need is a sort of low power MOSFET to power this. You can look up thousands of tutorials on how to power a motor with an Arduino. Here is one for reference.

If you don't want to buy individual components and perfboard to construct your own circuit, you can buy a motor driver from Adafruit just like this one. Remember Adafruit always gives you incredibly good instructions for all their products if you're ever stuck.

enter image description here

This board is perfect for powering low-power motors. Your pump only pulls a maximum of 300mA at 12V, and that shield can do up to 3.6A peak (probably more like 2A continuous). The shield is also a H-bridge, which means you can power the motor forwards & backwards (not sure if this is useful to you).

To hook up the motor driver all you would need is 2 digital pin PWM pins (like 5&6) to control it forward/backwards.

Comment if you have any questions and good luck with the project!

  • 1
    Thank you so much, for your kind words and help! I will read up on what you suggested and I'll comment if I have further questions as I move forward with the project!
    – nn123
    Mar 4, 2022 at 16:17

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.