酒と薔薇の日々(その2)

好きなことだけ求めて生きるアスペ気味のINTJ人

水流計(Water Flow Sensor YF-201C)の仕様

2021年04月27日 20時04分59秒 | マイコン(ESP32・Arduino等)

アマゾンで購入し中国から送られてきた水流計 YF-201C を調べてみた。
銘板に豆粒サイズで「YF-201C」と書いてある。WaterFlowSensorが正式名のようで電話番号まで
Arduinoとセットで検索したらソースが見つかった。部品の販売会社のようだ。
ここからデータシートPDFへのリンクがある。

5V/GND とデジタル2ピンへ接続したスケッチ例がある。

パルス*0.00225で流れたリットル数が出るようだ
そのまま引用させてもらった・・・

以下は、1分間の流量を計算するソース
パルス数を7.5で割ればいいようです。

/*
  YF-S201C-Water-Flow-Sensor
  modified on 14 oct 2020
  by Amir Mohammad Shojaee @ Electropeak
  https://electropeak.com/learn/

  based on www.hobbytronics.co.uk examples
*/
double flow; //Water flow L/Min 
int flowsensor = 2; 
unsigned long currentTime;
unsigned long lastTime;
unsigned long pulse_freq;
 
void pulse () // Interrupt function

{
   pulse_freq++;
}

   void setup()
 {
   pinMode(flowsensor, INPUT);
   Serial.begin(9600);
   attachInterrupt(0, pulse, RISING); // Setup Interrupt
   currentTime = millis();
   lastTime = currentTime;
}

   void loop ()
{
   currentTime = millis();
   // Every second, calculate and print L/Min
   if(currentTime >= (lastTime + 1000))
   {
      lastTime = currentTime; 
      // Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
      flow = (pulse_freq / 7.5); 
      pulse_freq = 0; // Reset Counter
      Serial.print(flow, DEC); 
      Serial.println(" L/Min");
      
   }
}

以下は簡単バージョン、パルスが発生するたびに割り込みを発生させ加算している。
起動以降、水量を加算させるのみ。
Arduinoは変数初期化は要らんのだなあ・・・

    /*
  YF-S201C-Water-Flow-Sensor
  made on 14 oct 2020
  by Amir Mohammad Shojaee @ Electropeak
  https://electropeak.com/learn/

*/

double flow; //Liters of passing water volume
unsigned long pulse_freq;

void setup()
{
  pinMode(2, INPUT);
  Serial.begin(9600);
  attachInterrupt(0, pulse, RISING); // Setup Interrupt
  
}

void loop ()
{
    flow = .00225 * pulse_freq;
    Serial.print(flow, DEC);
    Serial.println("L");
    delay(500);
  
}
void pulse () // Interrupt function

{
  pulse_freq++;
}
この記事についてブログを書く
« 中華商品最終便が等ちゃこ ... | トップ | ポンコツ・コーナークランプ... »