SparkFun Forums 

Where electronics enthusiasts find answers.

User avatar
By ors012
#203360
Hi all,

I will soon start a project which would be really important for my PhD thesis. As written in the subject area I would like to do an automatic water dispenser using arduino and a peristaltic pump. I found a similar project which used a solenoid valve instead of a pump. The reason I am not using a solenoid valve is that I would need to keep the water level constant in the water reservoir. Also I would like to add a bit of networking to the project so I can controll my microcontroller from home or office.

So let me describe you what I wish to do. I am doing experiment where I need to keep adding water to a closed system and sometimes I would need to come in during the night time just to add 50 uL of water. I can tell when I need to add water since I can remotely connect to the university computer and see how my measurement is going. I could connect the arduino to the university computer and with an arduino script I could program the controller to send a current to the peristaltic pump for a short amount of time, this time will be chosen from a calibration curve I make.

Components:
Arduino
Peristaltic pump : 1528-1404-ND PERISTALTIC PUMP W/SILICON TUBE 12V
1x IRF540N IRF540PBF N Channel Power MOSFET transistor
Resistors (Don't know yet what impedance they need to be since I didn't calculate yet)

Do you think I would need anything else?
How much time do you think this project would be needed for a beginner like me? I have some programing knowledge in MATLAB and really basic knowledge in electronics.

If I missed any important information that could help you answer me please le me know.

Best wishes,
Örs
User avatar
By TS-Chris
#203373
Hello, and thanks for your forum post!

OK, you're going to need several things to make this work, and I don't think the pump you've chosen is going to work very well for your particular situation.

You need:
  1. A microcontroller with internet capability, or a way to add Ethernet / WiFi to an Arduino.
  2. A pump that has the resolution you require.
  3. A way to connect the pump to the Arduino.
  4. Code to drive everything.
For a microcontroller, I'd go with something like a ESP8266 Thing Dev. That is programmable in the Arduino IDE and has WiFi built in. If you wanted to use a Arduino board, a Arduino Uno combined with a WiFi or Ethernet shield would do the trick.

The Adafruit pump you've chosen works great at moving liquids from point A to point B, but you won't have precise control over how much liquid you've moved unless you build a custom controller for it. If you don't need to worry too much about how much fluid you're pumping, running the pump motor for a given number of seconds will do the trick, but it looks like you need to move a very tiny amount of fluid. A pump with a stepper motor would be preferred over a pump with a DC motor since you have precise control over how far and how fast the pump rotates. We don't have a peristaltic pump with a stepper motor, but our EZO-PMP kit does include a programmable controller that can be calibrated and would be the most accurate pump we carry.

The Adafruit pump could be connected to an Arduino with a DC motor controller, or a simple MOSFET. I don't have a drawing that shows how to use a MOSFET, but our MOSFET Power Control Kit would be the easiest way to go if you wanted to go that route. The TB6612FNG might be a little easier to use than a regular MOSFET. It would also allow you to control the direction of the pump and allow for braking. If you are able to find a stepper motor driven pump that has a bipolar stepper motor, something like the Big EasyDriver should be able to drive that.
(DC motor driven pumps usually don't have any kind of feedback to let you know how far the pump has turned. If you can find a pump with an encoder attached, the encoder can let you calculate how much fluid has been pumped to allow you to more precisely determine how much has been pumped. A stepper motor driven pump also allows for more precise control since you can rotate the motor in very small steps.)


Lastly, you need some code to make this all work. Depending on your abilities, this might be difficult to do. We can't offer code advice, but other forum users or users on the Arduino forum might be able to help with that. Essentially, your code needs to do two things: 1- communicate over the Internet, and 2- control how far the pump motor drives the pump.

This is definitely doable, but I can't really tell you how long it's going to take. You're probably looking at learning a bit of C / Arduino programming and some basic electronics. I'd break this up into smaller pieces where you learn to do simple tasks like make the pump move or view status online and then once you've mastered each part start combining them one by one.