水流传感器提供读数而没有任何水通过

问题描述

水流传感器与esp8266接口。我只想知道流过的水量。但是当我将传感器与esp8266连接时,它才开始读取。它不会打扰水流。我不知道为什么会这样...

这是我的代码

'''

  #define SENSOR D2

  long currentMillis = 0;
  long prevIoUsMillis = 0;
  int interval = 1000;
  boolean ledState = LOW;
  float calibrationFactor =4.5;
  volatile byte pulseCount;
  byte pulse1Sec = 0;
  float flowRate;
  unsigned int flowMilliLitres;
  unsigned long totalMilliLitres;

  void IRAM_ATTR pulseCounter()
  {
     pulseCount++;
  }

  void setup()
  {
   Serial.begin(115200);

pinMode(LED_BUILTIN,OUTPUT);
pinMode(SENSOR,INPUT_PULLUP);

pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
prevIoUsMillis = 0;

    attachInterrupt(digitalPinToInterrupt(SENSOR),pulseCounter,FALLING);
  }

void loop()
{
currentMillis = millis();
if (currentMillis - prevIoUsMillis > interval) {

pulse1Sec = pulseCount;
pulseCount = 0;


Serial.println(pulse1Sec);
Serial.println(prevIoUsMillis);
Serial.println(millis());
flowRate = ((1000.0 / (millis() - prevIoUsMillis)) * pulse1Sec)  
calibrationFactor;
prevIoUsMillis = millis();

flowMilliLitres = (flowRate / 60) * 1000;


totalMilliLitres += flowMilliLitres;

Serial.print("Flow rate: ");
Serial.print(int(flowRate));  
Serial.print("L/min");
Serial.print("\t");       

Serial.print("Output Liquid Quantity: ");
Serial.print(totalMilliLitres);
Serial.print("mL / ");
Serial.print(totalMilliLitres / 1000);
Serial.println("L");
 }
}

'''

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)