Water Flow Gauge using Arduino

Measuring the consumption of a resource that has units by volume can be more tricky than it sounds. Use of resources such as water, gas, and even electricity is typically measured by gauges that determine either instantaneous flow rate or cumulative volume over time. Both techniques have problems: measuring flow rate at frequent intervals allows you to do time-based reporting and generate a graph of how the flow rate varied over time, but to determine the total consumption by volume across a specific time period you then have to integrate the data and there is the danger of under-reporting usage if your sample rate is slow and usage rapidly fluctuates or spikes.

Water Flow Gauge

Measuring cumulative volume makes it easy to determine total consumption across a period and is accurate in terms of total usage but to generate a flow rate graph you then need to calculate the difference between each sample, and if your recording interval isn’t brief enough any short-term spikes in usage will be averaged out across the recording interval and may not show clearly on the graph.

Flow gauges typically output a series of pulses proportional to the instantaneous flow rate which means that to interpret them it’s necessary to implement a simple frequency counter. This is actually the same way many car speedometers work: a wheel sensor outputs a pulse for each rotation of a wheel which means the pulse frequency varies proportionally to the vehicle speed. The speedo then displays a scaled version of the current pulse frequency to show instantaneous speed while the odometer displays a scaled cumulative pulse count to show distance traveled – both pieces of information are based on the same underlying data but they are recorded and displayed in different ways.

Water Flow Gauge Schematic

This project uses a flow rate gauge containing a Hall-effect sensor that outputs a pulse rate proportional to flow rate, so not only is it a useful project in its own right but it also demonstrates a very useful technique that you can use in a wide range of projects that need to measure the rate at which something happens. We’ve also included an LCD module so that the unit can report flow rate and volume both via the serial connection to a connected host and also directly via the LCD.

The example program calculates and displays current flow rate, and also maintains two cumulative counters of the volume that has flowed through the sensor. Two pushbuttons allow you to reset the counters independently so you can leave one counter running as a long-term accumulator and reset the other one occasionally prior to measure short-term events, such as the water consumed by filling a bath, running an irrigation system, or running a washing machine.

For more detail: Water Flow Gauge using Arduino

This Post / Project can also be found using search terms:

  • arduino measure water flow
  • arduino project flow
  • control water flow arduino
  • design and development of a waterflow measuring instrument using arduino
Clip to Evernote

Leave a Comment

(Spamcheck Enabled)

Read previous post:
Arduino RGB LED Clock
Modern RGB LED Clock using Arduino

As hard as it might be to believe, I had never built an electronic clock of any kind. I've always...

Scroll to top