Flowsensorsoftware klopte niet helemaal

Martijn wees mij er op. Mijn algoritme die de flow bepaald voor de COP bepaling klopt niet helemaal. Hoe werkt nu dat geheel bij de ELGA?

Stap 1, Arduino

De Arduino kan heel makkelijk analoge inputs lezen. De input van de Grundfos VFS levert een signaal van 0,35 – 3.5V. 0,35V = geen flow, 3,5volt is 40liter/minuut. En de grafiek is een rechte lijn.

De Arduino levert echter geen getal van 0,35 tot 3,5V maar een getal van 0 tot 1023 waarbij 0 = 0V en 1023 = 5V. De Arduino werkt namelijk op 5V en de Analoog naar Digitaal Converter ( ADC ) maakt er een getal van 0 -1023 van.

Stap 2, Java

Op de Arduino draait een webservertje en ik kan via een URL de 0-1023 waarde ophalen voor de temperatuursensor en de flowsensor. Dit getal lees ik weer in en vertaal ik naar het voltage met de formule:

  • Input/1023*5 = voltage

Dit werkt foutloos. Nu komt het lastige om van dit voltage een flow te maken in liter per minuut.

Mijn formule was: ( 12 2/3 * voltage ) – 4 1/3. Hoe ik op deze formule ben gekomen weet ik niet meer. Ik ben een middag in Excel aan het knoeien geweest om de vertaling goed te krijgen.

Martijn stuurde mij zijn formule die mij een stuk netter lijkt. Namelijk:

( Voltage – 0,375 ) / 0,078215.

Het verschil in de grafieken in beeld gebracht:

Blauw is mijn lijn. Rood is die van Martijn. Ze zitten akelig dicht bij elkaar. Mijn flow lag altijd rond de 10 liter /minuut en dan is de afwijking 2,5% waarbij ik teveel flow aan geef.

Stap 3, Versturen

Voordat ik de data verstuur kijk ik eerst of de data voldoende is “veranderd’ Als de verandering te klein is dan negeer ik de verandering. Zo vang ik fluctuaties op van de ADC. De data wordt naar mijn database verstuurd en daar opgeslagen.

 

Iemand nog een betere suggestie voor de omzetting van voltage naar flow?

 

2 Reacties

  1. Rick

    Hoe is Martijn aan zijn formule gekomen? Ik kom er nog niet achter…

    Ik zie:
    0,35volt is 0 Liter/min
    3,5volt is 40 Liter/min

    3,5 – 0,35 = 3,15 (compenseren dat 0 L/min geen 0 Volt is)
    40 / 3,15 = 12,698 (de lineaire vergrotingsfactor)

    Formule wordt dan Q = (U – 0,35) * 12,698
    Daarmee zit ik vervolgens dichterbij de formule van Martin dan bij die van Martijn.

  2. Martin Kleinman (Auteur bericht)

    Mijn code heb ik intussen ook aangepast. Thanks!

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *