Controlling a peristaltic Pump

Hey everybody,
I am quite new to the topic of using Arduino so I will try to be as precise as possible. I am questioning the approach to my current Project and wanted to check if it is feasible. I am Investigating Environmental stress cracking of polymers. For this, I need a constant level of medium in which the polymer will be submerged. This is important because of our optical approach to analyze the specimen. If the Medium evaporates past a certain point during the night, the test will be rendered useless.
I was planning on using a peristaltic pump such as the one linked below:

As continuous pumping over weeks will probably be a little too much for the pump, I was planning on using an Arduino to set a timer to activate for example for 5 ml every hour or so.
What kind of equipment should I acquire? Is the normal Arduino Uno sufficient? Is it possible to combine it with Matlab? For example, if Matlab detects a significant decrease in medium level --> activate the pump for 5ml?

I would be grateful for any help and am already pumped for my first little project :smiley:


I would be much more concerned with the use of a toy pump as a critical component in your experiment.

It's one thing -- and easy -- to periodically activate a pump for a period of time.

It's not quite as straightforward to activate a pump for a specific volume of fluid unless you have accurate flow feedback to the control and/or know the characteristics of the pump and experimental setup so you can map run time to volume pumped.

Keep measuring/checking the water level. When needed add som water using a pump, preasuraised water and a valve....
Adding a constant flow will never give a presize water level.

Those pumps have served me well. Reasonably accurate pumping volume vs. time (maybe 10% variation).

For the experiment, however, my focus would be on stopping the evaporation itself rather than trying to top up the volume.

An Arduino cannot, directly, drive a pump (motor). Since a pump does not need to be reversible, a simple transistor driver will suffice. Here is a MOSFET motor driver. Choose the transistor (MOSFET) based on the stall current of the motor. The stall current can be several times the running current. To estimate the stall current, measure the motor winding resistance. Take several measurements rotating the motor a bit between readings. Use the lowest reading in the calculation. The estimated stall current is the motor supply voltage divided by the measured resistance.

I have to agree that some sort of sensor to know when to pump would be a smart thing,

but there are many projects were sorta-kinda in the ball-park or parking lot is close enough.

for a test, fill the tank to the desired level. note the time.
24 hours later, re-fill by using an accurate measuring cup.

now you know the loss per 24 hour period.

step 2
set up the pump with an Arduino NANO and screw terminal board
make the circuit shown in post #5

run the pump till you get the same volume.
divide running time by 24 and that is how long per hour for your first 24 hour test.

run the pump for 24 hours and see how close it is.

assuming you would check the experiment daily, this should be good enough.
if you think that a failure would result is a ruined experiment, then measure the level and pump to level.

lots of ways to measure level of fluid.
float sensor
non-contact sensor on outside of glass
laser sensor looking at top of fluid, etc

is you want to step it up , get a WiFi unit with sensors
and you can txt yourself when the fluid reaches a low point.

lots of ways to measure level of fluid.
float sensor
non-contact sensor on outside of glass
laser sensor looking at top of fluid, etc

OP is talking about 5 ml/hr to top up the level. If 5 ml is a significant change in level, that's a very small surface area to work with. A laser is probably the only option for such a small thing.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.