Sensor for air/gas flow

I'm looking for a sensor to read the flow rate of CO2. This is a relatively low flow situation, where it'll take 6 months to flow the gas from a 5 pound tank. The working pressure is generally in the 30 PSI range. The gas is flowing through 3/16" silicon tubing, so hose barbs are convenient, though I can make anything work. I've found a few that can do it, but they are all a bit more than I'm looking to spend on this project. Any ideas?

30 psi = 2 bar
3/16" = 4.7 mm
5 pound tank = (I don't know)

What is the flow rate in ml/min ?
That might even be hard for a soap film flowmeter.

Some electronic flow meters say they can do 0...10 ml/min, but for low values they are inaccurate and the output can be interpreted and adjusted, because the sensor does not output the real flow anymore.
At least CO2 molecules are bigger than H2 molecules, so the molecules are not diffusing through materials.

http://www.coleparmer.com/Product/Flowmeter_volumetric_for_water_0_to_10_mL_min/EW-32908-42

http://www.flowmeterdirectory.com/flowmeter_low_flow/626-mass-flowmeter-4140.html

I see many mass flow meters, and not so many thermal differential flow meters. So I guess that mass flow meters are better. You can buy secondhand mass flow meters for cars on Ebay. Those are for more flow, but perhaps you can do a few tests with them.

Another option is to measure the pressure before and after a small opening. That is something you can build yourself. You measure the differential pressure with a single pressure sensor.

6 months for 5 pounds means less than 1 gram per hour.

you might better use a precision scale to weight it..

Peter,

I don't know the flow rate in anything other than bubbles per second. The application is for a planted freshwater aquarium (this is my tank). The cheap and easy way to measure flow is with a bubble counter. This link is to a picture of my regulator. You can see the glass bubble counter on the front of it. Generally it runs at around 2-3 bubbles per second.

One the back of it is a an MPX5700AP pressure sensor that I'm using to measure the working pressure. What I'm trying to accomplish is to replace the bubble counter with an electronic flow sensor. It probably would have helped to explain this earlier, because the meters you linked to cost way more than I'd spend for this application. The pressure sensor I got was quite cheap (2 for $25), so I was hoping to find something for flow that was also relatively cheap.

Measuring the pressure differential is an interesting idea. I'm not sure how you'd measure "flow" that way, but maybe it would work. The gas is flowing through that hose in the picture into a "reactor" that's under a small amount of pressure (probably about 3-4 PSI). The reactor is basically a whole house omni filter housing that mixes the CO2 gas into the water to make it available to plants. I do have 1 more MPX5700AP, so perhaps I should play with your idea and see what kind of pressure differentials I can measure. I'd really love to find an affordable flow sensor that would work though.

Rob,

I don't know that a precision scale would work. Take a look at the pic above and it'll make more sense. The whole setup is probably close to 20 pounds. It seems like a scale to measure that accurately with 20 pounds sitting on it would be quite cost prohibitive.

Just a little more info on flow rate. I calculated out 5 pounds of CO2 over 6 months with the tank running for 8 hours per day. From this I got about 1.69 grams of CO2 per hour. I then found a formula for how much space 1 kg of CO2 occupies at room temperature and atmospheric pressure, and calculated that I'm flowing about .94L of CO2 per hour, or 15.7 mL/min. That not a very precise estimate, but it should help me figure out if a sensor can detect how much CO2 I'm moving.

Thanks for the photos !
Measuring the differential pressure should be done with a very sensitive differential pressure sensor.
One MPX5700AP before and one MPX5700AP after will not work. That is a pressure sensor up to 700kPa.
It seems that are a few types of differential flow meters: Flow measurement - Wikipedia

I can not verify your calculation, but perhaps some mass flow sensors should be able to measure it.

When reading that, I discovered that automobile MAF sensors (mass flow meters for cars) are actualy thermal differential flow meters. I thought they were two different things.

How much pressure is there after the regulator ? Is that tube going straight into the aquarium ? So the pressure is very very low ?
There are medical devices that measure the blood flow, by just holding it to the skin. Perhaps that is done with ultrasonic, and they are even more expensive.

Sorry, so far I can't find anything cheap. I assume that 50% inaccuracy is not a big problem ?

Ah ha! I've found one that would work. The sensor is an Omron D6F-P0001A1 (datasheet). It will detect flow from 0-100 mL/min outputting 0.5v to 2.5v in a very linear fashion. This should good enough resolution and flow for what I'm doing, and it should work on an Arduino just using analog in. According to that range, it'll be able to detect to within .25 mL/min, which would be pretty good for this. It'd be better if it output 0-5v for twice the resolution, but beggars can't be choosers.

Digikey sells them for just $51.71.

1 Like

That sensor looks indeed quite good,

Verify that the formula is right:

6 months = 183 days * 8 hours = 1464 hours.
5 pounds = 2500 gr / 1464 hours = 1.708 gr/hour
*CO2 ==> 44 g/mol *
```c
*1.708 gr CO2 = 1.708g × (1 mol/44 g) = 0.03881 mol CO2

V=nRT/P,  (gas law)

V=0.03881 * 0.0821 * 293 /1 = 0.9336 L CO2  [20°C ==293K, 1 atm ]

0.9336 L/Hour ==> 15.56mL / minute[/i]

Given that the sensor returns between  0.5V (== 0 ml) and  1.0V (==20 ml) you should set the Arduino to internal reference of 1.1 Volt to have highest accuracy. see also - analogReference() - Arduino Reference

0 ml ~~ analogRead of 465
16ml ~~ analogread of 840

// returns #milliliters per minute
// assumes INTERNAL 
float flowRate(pin)
{
  float voltage = analogRead(pin) * 1.1 / 1023;
  return (voltage - 0.50) * 50;
}

so I expect your readings to be about
0 ml ~ analogRead of 465
16ml ~ analogRead of 760*
```

It seems a good sensor for your application.
It uses a MEMS sensor with differential temperature.
Here is a picture of how it works : http://www.memsic.com/technology/accelerometers.cfm

robtillaart, it looks to me like AnalogReference is global. My project uses other input sensors that have a larger range. One sensor I could swap out (just an ambient light sensor), but the other is a MPX5700AP pressure sensor (spec sheet) that goes from .2 to 4.7 volts.

My first thought was to flip back and forth, but then I saw "After changing the analog reference, the first few readings from analogRead() may not be accurate." Thoughts?

Maybe I just have to settle for less resolution?

Start first with less resolution and see if it is enough.

otherwise the signal could be amplified e.g. factor 4

or you could use oversampling of the ADC (16x samples to get two bit extra)
This only works when the signal is relative stable

where i can buy sensor flow gas ? and how much for 1 sensor ?