Как рассчитать разницу в показаниях двух датчиков расхода

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Sergei K, 20 июл 2016.

  1. Sergei K

    Sergei K Нерд

    Здравствуйте.
    Поясните, пожалуйста, что не так в следующем коде:
    Код (Javascript):
    var flowsensor = require('FuelFlow'); //  модуль датчика расхода с сайта https://github.com/amperka/espruino-modcat/blob/master/modules/%40amperka/water-flow.js
    var flowsensor1= flowsensor.connect (P13);
    var flowsensor2= flowsensor.connect (P9);
    var flowSensorTimer = null;

    flowSensorTimer = setInterval(function(speed1, speed2) {
    speed1 = flowsensor1.speed('l/min');
    speed2 = flowsensor2.speed('l/min');

    var q = speed1 - speed2;
    console.log (speed1.toFixed(2), speed2.toFixed(2), q.toFixed(2));
    }, 200);
    Хочу рассчитать разницу расходов в двух магистралях (прямой и обратной). Но загвоздка в том, что при поступлении сигнала на оба датчика одновременно - показывает только один из них (первый) и разница q равная показаниям первого. Если сигнал поступает со второго датчика, а с первого нет, то показания первого остаются нулевыми, а разница - показаниям второго датчика со знаком минуса. Может все дело в flowSensorTimer?
     
  2. Morgan

    Morgan Гик

    Привет!

    А по отдельности датчики работают?

    вроде бы все правильно (0 - х = -х). Или вы другое хотите получить?

    PS: Почему вы не используете require('@amperka/water-flow'); вместо require('FuelFlow');?
     
  3. Sergei K

    Sergei K Нерд

    По отдельности датчики работают. Когда данные приходят одновременно, и со второго и с первого - показания второго равны нулю. А что касается модуля он один в один, я просто его переименовал. Не могу понять почему игнорируются показания второго датчика?
     
  4. Sergei K

    Sergei K Нерд

    Разобрался. Если у датчиков сильно разнятся характеристики или один из них глючит - получается такая песня. Подсоединил их к одной магистрали - заработали оба, но в показаниях чушь. Видимо надо под каждый датчик заводить свой модуль, где вводить свои калибровочные значения.
    Спасибо.