An API for interacting with the Adafruit flow meter.

Committer:
krbng4180
Date:
Thu Apr 28 19:53:59 2016 +0000
Revision:
0:195a3c58c944
Initial commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
krbng4180 0:195a3c58c944 1 #include "FlowMeter.h"
krbng4180 0:195a3c58c944 2
krbng4180 0:195a3c58c944 3 void FlowMeter::handle_pulse_irq(void)
krbng4180 0:195a3c58c944 4 {
krbng4180 0:195a3c58c944 5 _pulses++;
krbng4180 0:195a3c58c944 6 }
krbng4180 0:195a3c58c944 7
krbng4180 0:195a3c58c944 8 FlowMeter::FlowMeter(PinName out) : _pin(out)
krbng4180 0:195a3c58c944 9 {
krbng4180 0:195a3c58c944 10 _pulses = 0;
krbng4180 0:195a3c58c944 11 _pin.rise(this, &FlowMeter::handle_pulse_irq);
krbng4180 0:195a3c58c944 12
krbng4180 0:195a3c58c944 13 }
krbng4180 0:195a3c58c944 14
krbng4180 0:195a3c58c944 15 long FlowMeter::get_pulse_count(void)
krbng4180 0:195a3c58c944 16 {
krbng4180 0:195a3c58c944 17 return _pulses;
krbng4180 0:195a3c58c944 18 }
krbng4180 0:195a3c58c944 19
krbng4180 0:195a3c58c944 20 float FlowMeter::get_fl_oz(void)
krbng4180 0:195a3c58c944 21 {
krbng4180 0:195a3c58c944 22 return pulses_to_fl_oz(_pulses);
krbng4180 0:195a3c58c944 23 }
krbng4180 0:195a3c58c944 24
krbng4180 0:195a3c58c944 25 float FlowMeter::get_ml(void)
krbng4180 0:195a3c58c944 26 {
krbng4180 0:195a3c58c944 27 return pulses_to_ml(_pulses);
krbng4180 0:195a3c58c944 28 }
krbng4180 0:195a3c58c944 29
krbng4180 0:195a3c58c944 30 float FlowMeter::pulses_to_ml(int pulses)
krbng4180 0:195a3c58c944 31 {
krbng4180 0:195a3c58c944 32 return ((float)pulses) / 2.2222222f; // pulses per mL.
krbng4180 0:195a3c58c944 33 }
krbng4180 0:195a3c58c944 34
krbng4180 0:195a3c58c944 35 float FlowMeter::pulses_to_fl_oz(int pulses)
krbng4180 0:195a3c58c944 36 {
krbng4180 0:195a3c58c944 37 return ((float)pulses) / 13.308294f; // pulses per fl oz.
krbng4180 0:195a3c58c944 38 }
krbng4180 0:195a3c58c944 39
krbng4180 0:195a3c58c944 40
krbng4180 0:195a3c58c944 41 void FlowMeter::reset(void)
krbng4180 0:195a3c58c944 42 {
krbng4180 0:195a3c58c944 43 _pulses = 0;
krbng4180 0:195a3c58c944 44 }