Hi Ytai, thanks for the reply,
Based from your suggestion,
PulseInput flowMeter = ioio_.openPulseInput(FLOW_METER_PIN,
PulseInput.PulseMode.FREQ_SCALE_16); //using frequency measurement with 16x
scaling
int totalPulse = 0; //set initial value of totalPulse
(this is inside the loop)
{
duration = flowMeter.getDurationBuffered(); //the loop will wait here for
16 pulse then continue to next line
totalPulse += 16; //add total pulse by 16 because we use FREQ_SCALE_16
....
....
Thread.sleep(100);
}
Do you mean like this?
And also, do I still need the Thread.sleep(100)? As the
getDurationBuffered() will do pause the loop while waiting for 16 pulse to
come.
Thanks
do I still need to use Thread.sleep(100) when using this implementation?
Since getDurationBuffered will do pausing the loop waiting for 16 pulse to
come.
On Monday, August 28, 2017 at 11:15:05 AM UTC+7, Ytai wrote:
>
> You can use getDurationBuffered() and apply scaling (to reduce the pulse
> rate). This will ensure you don't miss any pulses. You can even ignore the
> actual value returned, since you don't seem to care about the rate, but
> rather about the count. Each time getDurationBuffered() returns, it would
> mean that 16 pulses (or whatever your scaling is) were observed. So you'll
> end up with a somewhat cumbersome, yet accurate way to count your pulses.
>
> On Wed, Aug 23, 2017 at 7:39 PM, Maximillian <[email protected]
> <javascript:>> wrote:
>
>> Fyi, I use this sensor.
>> https://www.seeedstudio.com/Water-Flow-Sensor-YF-B1-p-2878.html
>>
>>
>> On Thursday, August 24, 2017 at 9:38:08 AM UTC+7, Maximillian wrote:
>>>
>>> I think I could get around ~40 pulse per each call of flowMeter.
>>> getFrequencySync() in a Thread.sleep(100) loop.
>>>
>>> Is it still unsafe to just use the getFrequencySync() method for that
>>> amount of pulse?
>>>
>>> Or maybe I can just lower the sleep time to maybe Thread.sleep(50) for
>>> better accuracy?
>>>
>>> Thanks for the hint, I'll try to look into that.
>>>
>>>
>>> On Thursday, August 24, 2017 at 6:18:52 AM UTC+7, Ytai wrote:
>>>>
>>>> What's the maximum pulse rate for your application?
>>>>
>>>> On Wed, Aug 23, 2017 at 3:36 PM, Maximillian <[email protected]>
>>>> wrote:
>>>>
>>>>> Can you give more hint about how to count?
>>>>>
>>>>> I'm not really sure how to do it.
>>>>>
>>>>> Big thanks
>>>>>
>>>>> On Wednesday, August 23, 2017 at 11:56:20 PM UTC+7, Ytai wrote:
>>>>>>
>>>>>> Sampling the frequency and integrating will give you an estimate of
>>>>>> the total. If it's not accurate enough, you'll need to count.
>>>>>>
>>>>>> On Aug 22, 2017 2:51 PM, "Maximillian" <[email protected]> wrote:
>>>>>>
>>>>>>> Hi Ytai,
>>>>>>>
>>>>>>> This is my current code (trimmed for this post)
>>>>>>>
>>>>>>>
>>>>>>> int FLOW_METER_PIN = 14;
>>>>>>>
>>>>>>> volatile float pulseFreq, totalPulse;
>>>>>>>
>>>>>>> PulseInput flowMeter = ioio_.openPulseInput(FLOW_METER_PIN,
>>>>>>> PulseInput.PulseMode.FREQ);
>>>>>>>
>>>>>>>
>>>>>>> totalPulse = 0;
>>>>>>>
>>>>>>> public void loop() throws ConnectionLostException, InterruptedException
>>>>>>> {
>>>>>>>
>>>>>>> pulseFreq = flowMeter.getFrequencySync();
>>>>>>> totalPulse += pulseFreq;
>>>>>>> //display totalPulse value to a textView;
>>>>>>>
>>>>>>> Thread.sleep(100);
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> Current behavior is already as I expected, the totalPulse textView will
>>>>>>> updated only when the hall sensor is spinning (flow detected)
>>>>>>>
>>>>>>> If I use the getFrequencySync() method, I think the loop is paused,
>>>>>>> waiting the flowMeter to receive input.
>>>>>>>
>>>>>>> If it received input, the totalPulse will increase by the amount of
>>>>>>> pulseFreq from getFrequencySync().
>>>>>>>
>>>>>>> I haven't tested with real water yet (I just blow the flow sensor to
>>>>>>> make the hall spin for early development test)
>>>>>>>
>>>>>>> My question, is it correct to use this approach with the
>>>>>>> getFrequencySync() method?
>>>>>>> Or I still need to hack the DigitalInputImpl to count the pulses?
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> On Wednesday, August 23, 2017 at 4:18:28 AM UTC+7, Ytai wrote:
>>>>>>>>
>>>>>>>> It is known, but there isn't currently a plan to add it. If anyone
>>>>>>>> wants to contribute a patch, I will happily consider adopting it.
>>>>>>>>
>>>>>>>> On Aug 13, 2017 8:21 PM, "Maximillian" <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Is this still a known missing feature? As this post is from 2013..
>>>>>>>>> I need to use flow sensor as well..
>>>>>>>>>
>>>>>>>>> On Monday, September 9, 2013 at 10:31:46 AM UTC+7, Ytai wrote:
>>>>>>>>>>
>>>>>>>>>> This is known missing feature. You can work around this by
>>>>>>>>>> hacking DigitalInputImpl to count the pulses: its setValue() method
>>>>>>>>>> will
>>>>>>>>>> get called on every edge.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Fri, Sep 6, 2013 at 11:21 AM, jorge sb <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi. I want to connect a hall sensor flow meter to ioio.
>>>>>>>>>>> Perhaps, I could use "PulseInput" but after reading ioio-wiki, I
>>>>>>>>>>> see that I can't do it with it.
>>>>>>>>>>> Really, I need a simple pulse counter but without loosing any
>>>>>>>>>>> pulse.
>>>>>>>>>>> With flow meter I will like to get:
>>>>>>>>>>> - Total liquid flow (accumulated countered pulses)
>>>>>>>>>>> - Instant flow (reading difference between two counts in a
>>>>>>>>>>> measured time).
>>>>>>>>>>>
>>>>>>>>>>> With this sensor I could get a pulse every 50 msec or less at
>>>>>>>>>>> max rate.
>>>>>>>>>>> I think I could loose pulses doing periodic read of digital
>>>>>>>>>>> input.
>>>>>>>>>>>
>>>>>>>>>>> Some suggestion.
>>>>>>>>>>> Thanks.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "ioio-users" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>>>> Visit this group at http://groups.google.com/group/ioio-users.
>>>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "ioio-users" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>> Visit this group at https://groups.google.com/group/ioio-users.
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "ioio-users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> Visit this group at https://groups.google.com/group/ioio-users.
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "ioio-users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at https://groups.google.com/group/ioio-users.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>> You received this message because you are subscribed to the Google Groups
>> "ioio-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/ioio-users.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"ioio-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/ioio-users.
For more options, visit https://groups.google.com/d/optout.