Skip to main content

水流センサー

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove-Doppler-Radar'' OUTCOME

水流センサーは、銅製の本体、水ローター、ホール効果センサーで構成されています。水がローターを通過すると、ローターが回転し、その速度は流量に応じて変化します。そして、ホール効果センサーが対応するパルス信号を出力します。このセンサーは、ウォーターディスペンサーやコーヒーマシンでの流量検出に適しています。さらに重要なのは、銅製のセンサーはプラスチック製のものよりも寿命が長いことです。

特徴

  • コンパクトで取り付けが簡単
  • 高い密封性能
  • 高品質のホール効果センサー
  • RoHS準拠

仕様

パラメータ
寸法0mm x 0mm x 0mm
重量G.W 79g
バッテリー含まない
最小動作電圧DC 4.5V
最大動作電流15mA (DC 5V)
動作電圧DC 5V~15V
インターフェース寸法G1/2インチ
流量範囲1~25L/min
周波数F=(11*Q)Q=L/MIN±3%
誤差範囲(1~30L\MIN) ±3%
負荷容量≤10mA (DC 5V)
動作温度0 ~ 80℃
液体温度≤120℃
動作湿度35%~90%RH
水圧≤1.75MPa
材料説明H57銅+POM
保管温度-25~+ 80℃
保管湿度25%~95%RH
出力パルス高レベル>DC 4.7V (入力電圧 DC5V)
出力パルス低レベル<DC 0.5V (入力電圧 DC5V)
出力パルスデューティサイクル50%±10%

水流センサー(水流計)とは

水流センサーは、水の流量を測定するために使用されます。水流量とは、単位時間あたりに通過する液体の体積を指します。水流センサーは、よく自動給湯器の制御、DIYコーヒーマシン、水の自動販売機などに使用されます。さまざまな原理に基づく流量センサーがありますが、ArduinoやRaspberry Piを使用するメーカーにとって、最も一般的な流量センサーはホールデバイスに基づいています。たとえば、最もクラシックな水流センサーであるYF-S402YF-S201は、ホールセンサーに依存しています。

水流センサーの仕組み

Grove-Doppler-Radar'' OUTCOME
図1. YF-402のすべてのコンポーネント
Grove-Doppler-Radar'' OUTCOME
図2. 水流センサーの動作原理

内部構造は非常にシンプルです。主なコンポーネントは、ホール効果センサー、タービンホイール、磁石です。水は入口から流入し、出口から流出します。水流がホイールを回転させ、ホイール上の磁石も一緒に回転します。磁場の回転がホールセンサーをトリガーし、高レベルと低レベルの矩形波(パルス)を出力します。

Grove-Doppler-Radar'' OUTCOME
図3. 水流センサーの動作原理

ホイールが1回転するごとに、流れる水の体積は一定量であり、出力される矩形波の数も一定です。したがって、矩形波(パルス)の数を数えることで、水の流量を計算することができます。

対応プラットフォーム

ArduinoRaspberry Pi

はじめに

必要な材料

Seeeduino ボードGrove ベースシールド水流センサー
enter image description hereenter image description hereenter image description here
今すぐ購入今すぐ購入今すぐ購入

ハードウェア接続

YF シリーズの場合、3本のワイヤがあります:

  • 赤は Vcc 用
  • 黒は GND 用
  • 黄色はパルス出力用

Atmega 328 ベースのボード(例:Seeeduino V4.2)では、割り込みとして使用できるデジタルピンが2つあります。デジタルピン 2 は 割り込み 0、デジタルピン 3 は *割り込み 1 に対応します。このブログでは、水流センサーのパルス出力を検出するために D2 ピンを使用します。Seeeduino + Grove ベースシールド を使用している場合は、水流センサーを D2 コネクタに差し込むだけです。他の Arduino ボードを使用している場合は、ジャンパーケーブルを使用して正しいピンに接続してください。

Grove-Doppler-Radar'' OUTCOME
図 4. Arduino に接続された水流センサー
tip
USB ケーブルや水流センサーインターフェースを Seeeduino ボードのインターフェースに慎重に差し込んでください。そうしないと、ポートが損傷する可能性があります。

ソフトウェア

もちろん、LOOP 関数内で digitalRead() を使用して水流センサーの出力を読み取ることができます。高レベルが読み取られるたびにカウントを1つ増やします。しかし、この方法はリアルタイムではなく、プログラムの実行には一定の待機時間が必要で、その間に新しいパルスが検出されません。このようなリアルタイム性が求められるアプリケーションでは、通常、割り込みを使用します。パルスの立ち上がりエッジが検出されるたびに割り込みがトリガーされ、カウントが1つ増えます。

Water-Flow-Sensor'' OUTCOME

割り込みの詳細については、attachInterrupt を参照してください。

caution

Arduino を初めて使用する場合は、開始前に Arduino の使い方 をご覧になることを強くお勧めします。

  • ステップ 1. Grove ベースボードと水流センサーを Seeeduino ボードに接続し、USB ケーブルを介して Seeeduino ボードを PC に接続します。

  • ステップ 2. 次に Arduino IDE を開き、以下のコードをコピーします。最後に、コードを Arduino にダウンロードします。

note

ここにあるコードは、Seeed の最もクラシックな YF – S201、YF - S402 およびその他の水流センサーに 対応 しており、水流センサーの動作原理も同様です。

ソフトウェアコード

/*
YF‐ S201 水流センサー
水流センサーの出力を処理してリットル/時を読み取る
適応提供元: www.hobbytronics.co.uk
*/

volatile int flow_frequency; // フローセンサーのパルスを測定する

int l_hour; // 計算されたリットル/時
unsigned char flowsensor = 2; // センサー入力
unsigned long currentTime;
unsigned long cloopTime;

void flow () // 割り込み関数

{
flow_frequency++;
}

void setup()
{
pinMode(flowsensor, INPUT);
digitalWrite(flowsensor, HIGH); // オプションの内部プルアップ
Serial.begin(9600);
attachInterrupt(0, flow, RISING); // 割り込みを設定
sei(); // 割り込みを有効化
currentTime = millis();
cloopTime = currentTime;
}

void loop ()
{
currentTime = millis(); // 毎秒、リットル/時を計算して出力
if(currentTime >= (cloopTime + 1000))
{
cloopTime = currentTime; // cloopTime を更新
// パルス周波数 (Hz) = 7.5Q, Q は流量 (L/min)
l_hour = (flow_frequency * 60 / 7.5); // (パルス周波数 x 60 分) / 7.5Q = 流量 (L/hour)
flow_frequency = 0; // カウンタをリセット
Serial.print(l_hour, DEC); // リットル/時を出力
Serial.println(" L/hour");
}
}
success

すべてが正常に動作すれば、シリアルモニタツールを開き、ボーレートを 9600 に設定してください。水が流れると、流量の値が適切なウィンドウに表示されます。

水流センサーの計算式

コードセクションでは以下の式を使用しましたが、この式はどのように導き出されたのでしょうか?

l_hour = (flow_frequency * 60 / 7.5)

以前述べたように、ホイールが1回転するごとに流れる液体の量は一定です。同時に、ホイールが1回転するごとに生成されるパルスの数も一定です。したがって、パルス数と水流量の間に方程式を確立することができます。

YF-S201の場合、1リットルの水が流れるごとにホールセンサーは450パルスを出力します。ここで少し計算してみましょう。1リットルあたり450パルスなので、1パルスは1/450リットルの水が流れることを意味します。一定時間 t(単位:秒)における水流センサーを通過する液体の総量を V_total(単位:リットル)、検出されたパルスの総数を N とすると、以下の式が得られます:

V_total(L) = N * 1/450(L)

また、水流センサーを通過する液体の総量は、水流量(Q - 単位:L/s) に時間 t(単位:秒)を掛けたものに等しいです。

V_total(L) = Q(L/s) * t(s)

これにより以下の式が得られます:

N * 1/450 = Q(L/s) * t(s)
N/t = 450 * Q(L/s)

N/t は周波数 f に相当するため:

f = 450 * Q(L/s)
Q(L/s) = f / 450
Q(L/min) = f * 60 / 450 = f / 7.5
Q(L/hour) = f * 60 * 60 / 450 = f * 60 / 7.5

YF-S402の場合、1リットルの水が流れるごとにホールセンサーは4380パルスを出力します。そのため、式は以下のようになります:

f = 4380 * Q(L/s)
Q(L/s) = f / 4380
Q(L/min) = f * 60 / 4380 = f / 73
Q(L/hour) = f * 60 * 60 / 4380 = f * 60 / 73

Seeedの水流センサー

tip

Seeedでは、YF-402YF-S201 を含む多数の水流センサーを販売しています。また、以下のように異なる寸法、検出範囲、素材などを持つさまざまな水流センサーを提供しています:

タイプ寸法(DN)動作電圧流量範囲長さオス・メスネジの長さ素材
YF-B1DN155V~15V(DC)1~25L/min44mm両端オス10mm
YF-B2DN155V~15V(DC)1~25L/min50mmオス入力メス出力10mm
YF-B3DN155V~15V(DC)1~25L/min66mm両端オス18mm
YF-B4DN155V~15V(DC)1~25L/min66mmオス入力メス出力10mm
YF-B5DN205V~15V(DC)1~30L/min50mm両端オス10mm
YF-B6DN205V~15V(DC)1~30L/min60mm両端オス11mm
YF-B7DN155V~15V(DC)1~25L/min66mm両端オス10mm
G1&2DN155V~24V(DC)1~30L/min-両端オス-プラスチック
G3&4DN205V~24V(DC)1~60L/min-両端オス-プラスチック
G1&2DN155V~24V(DC)1~30L/min60mm両端オス13mmプラスチック
G1&8-5V~24V(DC)0.3~6L/min---プラスチック
M11*1.25-5V~24V(DC)0.3~6L/min---プラスチック

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品をご利用いただく際に、できる限りスムーズな体験を提供するため、さまざまなサポートをご用意しております。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。

Loading Comments...