流体の流れまたは消費量を測定する 場合によっては重要であり、そのためには流量計が必要です。 たとえば、フォーミュラ1に従うと、FIAはチームにエンジンの流量計を使用して各チームの車の消費量を検出するように強制し、より多くのフローを注入してより多くを取得することでトラップの可能性を回避することがわかります時々パワー。またはエンジンを燃やすためにオイルがどのように使用されるか..。
しかし、F1以外では、これらのデバイスのXNUMXつを使用して、システムの水やその他の液体の消費量を把握したり、タンクから引き出されるチューブの流量を決定して消費される時期を決定したりすることができます。自動化された庭の灌漑システムなど。 ザ・ これらの要素のアプリケーションはたくさんあります、自分で制限を設定できます。
流量計または流量計
どのように知っておくべきですか 流れ は、単位時間あたりにパイプまたはスタブを循環する液体または流体の量です。 これは、体積の単位を時間の単位で割った値で測定されます。たとえば、XNUMX分あたりのリットル、XNUMX時間あたりのリットル、XNUMX時間あたりの立方メートル、XNUMX秒あたりの立方メートルなどです。 (l / min、l / h、m³/ h、...)。
流量計とは?
El 流量計または液体メーター パイプを通過する流量を測定できるのが装置です。 Arduinoと簡単に統合できるモデルとメーカーがいくつかあります。 この流量は、パイプのセクションや供給圧力など、いくつかの要因に依存します。
これらのXNUMXつのパラメータを制御し、流量を測定する流量計を使用することで、流体の高度な制御システムを構築できます。 ホームオートメーションやその他の電子プロジェクト、さらには産業プロジェクトに非常に役立ちます。 ホームプロジェクトの場合、メーカーは YF-S201、FS300A、FS400Aなどのよく知られたモデル, etc.
流量計の種類
市場ではあなたが見つけるでしょう さまざまなタイプ あなたがそれを与える用途とあなたが投資したい予算に応じて、流量計または流量計の。 さらに、水、燃料、石油などの流体に固有のものもあれば、精度が多かれ少なかれ、価格が数ユーロから数千ユーロの範囲で、産業レベルで非常に進んだものもあります。
- 機械式流量計:メーターで消費する水を測定するために、誰もが家に持っている非常に典型的なメーターです。 流れは、測定値を蓄積する機械式カウンターに接続されたシャフトを動かすタービンを回転させます。 機械的であるため、この場合、Arduinoと統合することはできません。
- 超音波流量計-業界で広く使用されていますが、家庭での使用には非常に高価です。 超音波が測定対象の流体を通過するのにかかる時間で流量を測定できます。
- 電磁流量計:業界では、40インチまでのパイプや高圧にもよく使用されます。 それらは非常に高価であり、測定に電磁システムを使用します。
- 電子タービン流量計:低コストで非常に正確です。 これらは、Arduinoと簡単に統合できるものであり、家庭環境にも使用されます。 彼らは、流体の流れがタービンを通過するときに回転するブレードを備えたタービンを使用し、ホール効果センサーは、回転中に到達するRPMに従って流れを計算します。 問題は、押し付けがましく、圧力損失が大きく、部品が劣化するため、長持ちしないことです...
私たちがエレクトロニクスに興味を持っていることを考慮して、私たちはこれらを研究し続けるつもりです...
Arduino用の流量計と購入場所
たくさん Arduinoで使用される電子式流量計YF-S201、YF-S401、FS300A、FS400Aと同様に、前述のように、プラスチック製のケーシングとブレード付きのローターがあります。 ホール効果によってローターに固定された磁石とその回転により、常に測定している流量または消費量が決まります。 センサー出力は、通過する流れに比例する周波数の方形波になります。
周波数(Hz)と流量(l / min)の間のいわゆるK変換係数は、メーカーがセンサーに与えたパラメーターに依存するため、すべてで同じというわけではありません。 の中に データシートまたはモデル情報 購入すると、Arduinoコードで使用できるようにこれらの値が設定されます。 精度も同じではありませんが、一般に、Arduinoの精度は、通常、電流の流れに対して10%上または下の間で変化します。
たくさん 推奨モデル 音:
- YF-S201:毎分1〜4リットルの流量を測定するための0.3/6インチチューブ用の接続があります。 許容される最大圧力は0.8MPaで、最大流体温度は最大80ºCです。 その電圧は5-18vの間で動作します。
- YF-S401:この場合、チューブへの接続は1/2インチですが、いつでもコンバーターを使用できます。 測定される流量は1〜30 l / minで、圧力は最大1.75 MPa、流体温度は最大80ºCです。 ただし、その電圧はまだ5〜18vです。
- FS300A:前のものと同じ電圧と同じ最高温度。 この場合、3/4インチのパイプを使用し、最大流量は1〜60 l / min、圧力は1.2MPaです。
- 製品が見つかりません。:また、代替品に関して電圧と最大温度を維持します。また、最大流量と最大圧力はFS300Aの場合と同じです。 唯一異なるのは、チューブが1インチであるということです。
あなたはあなたのプロジェクトのためにあなたに最も興味があるものを選ばなければなりません...
Arduinoとの統合:実用的な例
La 流量計の接続は非常に簡単です。 通常、3本のケーブルがあります。5本はフローのデータ収集用で、他のXNUMX本は電源用です。 データは、最適なArduino入力に接続して、スケッチコードをプログラムすることができます。 そして、XNUMXつはXNUMXVに、もうXNUMXつはGNDに接続されている電源は、動作を開始するのに十分です。
しかし、それが何らかの機能を持つためには、最初に作成する必要があります ArduinoIDEのコード。 このフローセンサーの使用方法はたくさんあり、プログラムする方法もたくさんありますが、ここには 実用的で簡単な例 だからあなたはそれがどのように機能するかを見始めることができます:
const int sensorPin = 2; const int measureInterval = 2500; volatile int pulseConter; // Si vas a usar el YF-S201, como en este caso, es 7.5. //Pero si vas a usar otro como el FS300A debes sustituir el valor por 5.5, o 3.5 en el FS400A, etc. const float factorK = 7.5; void ISRCountPulse() { pulseConter++; } float GetFrequency() { pulseConter = 0; interrupts(); delay(measureInterval); noInterrupts(); return (float)pulseConter * 1000 / measureInterval; } void setup() { Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING); } void loop() { // Con esto se obtiene la frecuencia en Hz float frequency = GetFrequency(); // Y con esto se calcula el caudal en litros por minuto float flow_Lmin = frequency / factorK; Serial.print("Frecuencia obtenida: "); Serial.print(frequency, 0); Serial.print(" (Hz)\tCaudal: "); Serial.print(flow_Lmin, 3); Serial.println(" (l/min)"); }
そしてあなたが望むなら 消費を得る、次に、この他のコードを使用するか、両方を組み合わせて両方を使用できます...消費するには、達成されたフローを時間に関して統合する必要があります。
const int sensorPin = 2; const int measureInterval = 2500; volatile int pulseConter; //Para el YF-S201 es 7.5, pero recuerda que lo debes modificar al factor k de tu modelo const float factorK = 7.5; float volume = 0; long t0 = 0; void ISRCountPulse() { pulseConter++; } float GetFrequency() { pulseConter = 0; interrupts(); delay(measureInterval); noInterrupts(); return (float)pulseConter * 1000 / measureInterval; } void SumVolume(float dV) { volume += dV / 60 * (millis() - t0) / 1000.0; t0 = millis(); } void setup() { Serial.begin(9600); attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING); t0 = millis(); } void loop() { // Obtención del afrecuencia float frequency = GetFrequency(); //Calcular el caudal en litros por minuto float flow_Lmin = frequency / factorK; SumVolume(flow_Lmin); Serial.print(" El caudal es de: "); Serial.print(flow_Lmin, 3); Serial.print(" (l/min)\tConsumo:"); Serial.print(volume, 1); Serial.println(" (L)"); }
必要なものに応じて、このコードを変更する必要があることをすでに知っています。さらに、 Kファクター あなたが購入したモデルの、またはそれは実際の測定を行いません。 忘れてはいけない!