upm  0.5.1
Sensor/Actuator repository for libmraa (v0.9.1)
 All Data Structures Files Functions Variables Enumerations Enumerator Macros Groups Pages
Public Member Functions
GroveWFS Class Reference

API for the Grove Water Flow Sensor. More...

Detailed Description

This sensor is used to measure water flow in liters per minute (LPM). It incorporates a Hall Effect sensor. The UPM module defines an interrupt routine to be triggered on each low pulse, keeping count. This device requires a 10K pull-up resistor for the signal line (yellow wire). There is a schematic diagram on the SeeedStudio site (3/2015): http://www.seeedstudio.com/wiki/index.php?title=G1/2_Water_Flow_sensor

However, be careful when wiring this up - the schematic appears to have a bug in it: the lower left connection of the signal line (yellow) to Vcc (red) should not be there. The sensor can work with this connection, but probably not for very long.

grovewfs.jpg
// Instantiate a Grove Water Flow Sensor on digital pin D2
upm::GroveWFS* flow = new upm::GroveWFS(2);
// set the flow counter to 0 and start counting
while (shouldRun)
{
// we grab these (,illis and flowCount) just for display
// purposes in this example
uint32_t millis = flow->getMillis();
uint32_t flowCount = flow->flowCounter();
float fr = flow->flowRate();
// output milliseconds passed, flow count, and computed flow rate
cout << "Millis: " << millis << " Flow Count: " << flowCount;
cout << " Flow Rate: " << fr << " LPM" << endl;
// best to gather data for at least one second for reasonable
// results.
sleep(2);
}
flow->stopFlowCounter();

Public Member Functions

 GroveWFS (int pin)
 
 ~GroveWFS ()
 
uint32_t getMillis ()
 
void initClock ()
 
void clearFlowCounter ()
 
void startFlowCounter ()
 
void stopFlowCounter ()
 
uint32_t flowCounter ()
 
float flowRate ()
 

Constructor & Destructor Documentation

GroveWFS ( int  pin)

Grove Water Flow sensor constructor

Parameters
pinDigital pin to use
~GroveWFS ( )

GroveWFS destructor

Member Function Documentation

uint32_t getMillis ( )

Returns the number of milliseconds elapsed since initClock() was last called.

Returns
Elapsed milliseconds
void initClock ( )

Resets the clock

void clearFlowCounter ( )
inline

Resets the flow counter to 0. The flow counter should be stopped via stopFlowCounter() prior to calling this function.

void startFlowCounter ( )

Starts the flow counter

void stopFlowCounter ( )

Stops the flow counter

uint32_t flowCounter ( )
inline

Gets the flow counter

Returns
Flow counter
float flowRate ( )

Computes the flow rate in liters per minute (LPM)

Returns
Computed flow rate

The documentation for this class was generated from the following files: