An API for interacting with the Adafruit flow meter.
Diff: FlowMeter.cpp
- Revision:
- 0:195a3c58c944
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FlowMeter.cpp Thu Apr 28 19:53:59 2016 +0000 @@ -0,0 +1,44 @@ +#include "FlowMeter.h" + +void FlowMeter::handle_pulse_irq(void) +{ + _pulses++; +} + +FlowMeter::FlowMeter(PinName out) : _pin(out) +{ + _pulses = 0; + _pin.rise(this, &FlowMeter::handle_pulse_irq); + +} + +long FlowMeter::get_pulse_count(void) +{ + return _pulses; +} + +float FlowMeter::get_fl_oz(void) +{ + return pulses_to_fl_oz(_pulses); +} + +float FlowMeter::get_ml(void) +{ + return pulses_to_ml(_pulses); +} + +float FlowMeter::pulses_to_ml(int pulses) +{ + return ((float)pulses) / 2.2222222f; // pulses per mL. +} + +float FlowMeter::pulses_to_fl_oz(int pulses) +{ + return ((float)pulses) / 13.308294f; // pulses per fl oz. +} + + +void FlowMeter::reset(void) +{ + _pulses = 0; +}