Servo Powered Peristaltic Pump Controlled by Arduino

Introduction: Servo Powered Peristaltic Pump Controlled by Arduino

About: Hello - I am the scientist formerly known as Naegeli and of course I was inspired by the artist formerly known as Prince. But in contrast to his royal badness I do not want be become the king of pop but the ...

This instructable shows you how to make a pump using a servo motor and an Arduino Uno to transfer small amounts of liquids.

The pump is a peristaltic pump which consists mainly of a motor, flexible tubing and a circular pump casing. Two rollers attached to a turning rotor press the flexible tube to the circular pump casing wall. As the rotor turns, the part of the tube under compression is pinched closed thus forcing the fluid to be pumped to move through the tube (from Wikipedia modified).

Step 1: Advantage

Beside the fact that it is quite easy to make, without a seal and not noisy the peristaltic pump principle has the advantage not to contaminate any part of the installation. Because the only part of the pump in contact with the fluid being pumped is the interior of the tube. An aseptic application can be achieved when sterilizing agent is pumped through the tubing first e.g. Ethanol. Moreover the pump design prevents backflow without check valves.

Step 2: Design

The tricky part about the construction is to find tubing which can be compressed. Most tubing's are quite rigid and therefore the servo motor has not enough power anymore to start rotating. This was solved by the use of soft tubing from a drip system to water plants and a circular pump casing which is pressed against the tube by the use of rubber bands. The pump was built to water a Bonsai tree in the Office.

Step 3: Modifying a Standard Servo Into a Continuous Rotating Servo

I had a standard servo left from a RC plane and therefore had to modify it into a continuous rotating model. Since this modification is widely spread in the Internet I do not describe it here. I was successful with the procedure given in the book "Make: Arduino Bots and Gadgets", page 207.

Step 4: The Rotor

Among the accessories that come along with a servo you will find a disk that can be used perfectly as rotor. The disk should be bigger in diameter than the diameter of the circular pump casing. The rollers (combination of screw, pipe and heat shrink tubing) will be mounted on the rotor. Make two holes in the rotor so the rollers fit into the circular pump casing leaving also some space for the tubing. The pipe should be free to move when put over the screw. A piece of heat shrink tubing is put over the pipe for protection.

Step 5: The Circular Pump Casing

The circular pump casing is a piece that can be bought in the local do-it-yourself/hardware store. In addition you need screws with a head where you can fix one part of the rubber band. The heat shrink tubing is used as a spacer.

Step 6: The Platform

The platform is made of wood. The pieces of wood to fix the servo are just glued onto the platform.

The clothes-peg has the function of holding the flexible tubing. Due to the constant rotating movement of the rotor the flexible tubing would "walk away" if the tubing is not secured. Be aware that the hole in the clothes-peg where the flexible tubing is put, needs to be that big that inside the liquid can run through.

Two drive-in nuts are used to make the screws adjustable in height. In this way the pressure of the circular casing onto the tubing can be adjusted.

Step 7: Software

The sketch to control the servo is simple since you can reference to the library for the servo object. The code is given in the attached file and print screen.

Step 8: Hardware

Upload the sketch and then connect the servo motor's black wire to the Arduino's GND pin and the red wire to the +5V pin. Connect the signal wire to digital pin 2 to control the motor.

Step 9: Putting It All Together

Install the tubing in the circular pump casing and put both ends of the tubing into the water tank. Connect the Arduino to your Laptop or your battery pack.

If you think that the flow rate is too low for your application you can start playing with the rotation speed of the servo, include a gearbox, use two tubings in the casing zone, increase the diameter of the rotor etc.

Hope you like this instructable.

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Metalworking Contest

      Metalworking Contest
    • Maps Challenge

      Maps Challenge

    7 Discussions


    4 years ago

    and u can made flow more whit stepper motor. but my proplem have how made menu system, 4 pump and pump DC motor liguid 1-100 milliliter each pump different bolus size. i no understand menu system how made. have somebody code 1 or 4 pump menu and liguid size 1-100ml can adding menu whit buttons and then run pump.please help.


    Reply 4 years ago

    Sorry - at the moment I do not use a menu type user interphase. As an alternative I recommend the data entry via the IDE (see lesson number 6). I will also try to develop a user interphase with arduino and the u8glib library. Within that library are examples for menus.


    5 years ago on Introduction

    Looks like there is a Kickstarter campaign for a similar device.


    6 years ago on Introduction

    The uses an Arduino can be put to never seem to cease rolling in! Nice work!!


    Reply 6 years ago on Introduction

    Thanks! I'm a big fan of creative re-use and and resource sharing.