- 液体の濁度とは何ですか?
- Arduinoを使用して濁度を測定する方法は?
- 濁度計の作成に必要な部品
- 濁度センサーの概要
- 濁度モジュールの主な機能
- 濁度センサーとArduinoのインターフェース–回路図
- 水中の濁度を測定するためのArduinoのプログラミング
液体に関しては、濁度は重要な用語です。液体のダイナミクスにおいて重要な役割を果たし、水質の測定に も使用されるためです。したがって、このチュートリアルでは、濁度とは何か、Arduinoを使用して液体の濁度を測定する方法について説明しましょう。このプロジェクトをさらに進めたい場合は、pHメーターをArduinoに接続することを検討し、水のpH値を読み取って、水質をより適切に評価することもできます。以前は、ESP8266を使用してIoTベースの水質監視デバイスも構築しました。興味があればチェックすることもできます。そうは言っても、始めましょう
液体の濁度とは何ですか?
濁度は、液体の濁りや濁りの程度またはレベルです。これは、空気中の白い煙に似た(肉眼で)多数の目に見えない粒子が存在するために発生します。光が液体を通過すると、これらの小さな粒子の存在により光波が散乱します。液体の濁度は、自由に浮遊している粒子に正比例します。つまり、粒子の数が増えると、濁度も上がります。
Arduinoを使用して濁度を測定する方法は?
先に述べたように、濁りは光波の散乱によって起こります。濁度を測定するには、光の散乱を測定する必要があります。濁度は通常、測定に使用する方法に応じて、比濁濁度単位(NTU)またはジャクソン濁度単位(JTLJ)で測定されます。2つの単位はほぼ同じです。
次に、濁度センサーがどのように機能するかを見てみましょう。濁度センサーには、送信機と受信機の2つの部分が あります。送信機は、通常、LEDとドライバー回路の光源で構成されています。受信側には、フォトダイオードやLDRなどの光検出器があります。ソリューションを送信機と受信機の間に配置します。
送信機は単に光を送信し、その光波は溶液を通過し、受信機は光を受け取ります。通常(溶液が存在しない場合)、透過光は受信側で完全に受信されます。しかし、濁った溶液が存在する場合、透過光の量は非常に少なくなります。つまり、受信側では、低強度の光しか得られず、この強度は濁度に反比例します。したがって、光強度が高く、溶液の濁度が低く、光強度が非常に低い場合、つまり溶液の濁度が高い場合は、光強度を測定することで濁度を測定できます。
濁度計の作成に必要な部品
- 濁度モジュール
- Arduino
- 16 * 2 I2C LCD
- 共通カソードRGBLED
- ブレッドボード
- ジャンパー線
濁度センサーの概要
このプロジェクトで使用した濁度センサーを以下に示します。
ご覧のとおり、この濁度センサーモジュールには3つの部品があります。防水リード、ドライバ回路、接続線。テストプローブは、送信機と受信機の両方で構成されています。
上の画像は、このタイプのモジュールが光源としてIRダイオードを使用し、検出器としてIRレシーバーを使用していることを示しています。ただし、動作原理は以前と同じです。ドライバー部分(以下に表示)は、検出された光信号を増幅するオペアンプといくつかのコンポーネントで構成されています。
実際のセンサーは、JSTXHコネクタを使用してこのモジュールに接続できます。VCC、グランド、出力の3つのピンがあります。Vccは5vに接続し、アースからアースに接続します。このモジュールの出力はアナログ値であり、光の強度に応じて変化します。
濁度モジュールの主な機能
- 動作電圧:5VDC。
- 電流:30mA(MAX)。
- 動作温度:-30°Cから80°C。
- Arduino、Raspberry Pi、AVR、PICなどと互換性があります。
濁度センサーとArduinoのインターフェース–回路図
濁度センサーをArduinoに接続するための完全な回路図を以下に示します。回路はEasyEDAを使用して設計されました。
これは非常に単純な回路図です。濁度センサーの出力はアナログであるため、ArduinoのA0ピンに接続され、I2C LCDはArduinoのI2Cピン(SCLからA5、SDAからA4)に接続されます。次に、RGB LEDをデジタルピンD2、D3、およびD4に接続します。接続が完了すると、ハードウェアのセットアップは次のようになります。
センサーのVCCをArduino5vに接続してから、アースをアースに接続します。Arduinoのアナログ0へのセンサーの出力ピン。次に、VCCとLCDモジュールのアースをArduinoの5vとアースに接続します。次に、SDAからA4、SCLからA5、これら2つのピンはArduinoのI2Cピンです。最後に、RGB LEDのアースをArduinoのアースに接続し、緑をD3に、青をD4に、赤をD5に接続します。
水中の濁度を測定するためのArduinoのプログラミング
計画では、0から100までの濁度値を表示します。つまり、メーターは、純粋な液体の場合は0を表示し、濁度の高い液体の場合は100を表示する必要があります。このArduinoコードも非常にシンプルで、完全なコードはこのページの下部にあります。
まず、接続を最小限に抑えるためにI2C LCDを使用しているため、I2C液晶ライブラリを含めました。
# 含める
次に、センサー入力に整数を設定します。
int sensorPin = A0;
セットアップセクションでは、ピンを定義しました。
pinMode(3、OUTPUT); pinMode(4、OUTPUT); pinMode(5、OUTPUT);
ループセクションでは、前述したように、センサーの出力はアナログ値です。したがって、これらの値を読み取る必要があります。Arduino AnalogRead 関数を使用すると、ループセクションで出力値を読み取ることができます。
int sensorValue = analogRead(sensorPin);
まず、センサーの動作を理解する必要があります。つまり、濁度センサーの最小値と最大値を読み取る必要があります。 serial.println 関数を使用して、シリアルモニターでその値を読み取ることができます。
これらの値を取得するには、まず、解決策のないセンサーを自由に読み取ります。640前後の値を取得し、その後、送信機と受信機の間に黒い物質を配置すると、最小値である値が取得されます。通常、その値はゼロです。したがって、最大値は640、最小値はゼロになります。次に、これらの値を0〜100に変換する必要があります
そのために、Arduinoのマップ機能を使用しました 。
int turbidity = map(sensorValue、0,640、100、0);
次に、その値をLCDディスプレイに表示しました。
lcd.setCursor(0、0); lcd.print( "濁度:"); lcd.print( ""); lcd.setCursor(10、0); lcd.print(濁度);
その後、 if 条件の助けを借りて、私はさまざまな条件を与えました。
if(濁度<20) { digitalWrite(2、HIGH); digitalWrite(3、LOW); digitalWrite(4、LOW); lcd.setCursor(0、1); lcd.print( "そのクリア"); }
濁度の値が20未満の場合、これは緑色のLEDをアクティブにし、LCDに「クリア」と表示します。
if((turbidity> 20)&&(turbidity <50)) { digitalWrite(2、LOW); digitalWrite(3、HIGH); digitalWrite(4、LOW); lcd.setCursor(0、1); lcd.print( "そのCLOUDY"); }
これにより、濁度の値が20〜50の場合、青色LEDがアクティブになり、LCDに「曇り」と表示されます。
if((turbidity> 50) { digitalWrite(2、LOW); digitalWrite(3、HIGH); digitalWrite(4、LOW); lcd.setCursor(0、1); lcd.print( "its DIRTY"); }
以下に示すように、濁度の値が50より大きい場合、これは赤色LEDをアクティブにし、LCDに「汚れています」と表示します。
回路図に従ってコードをアップロードするだけで、すべてがうまくいけば、水の濁度を測定でき、LCDに上記のように水質が表示されます。
この濁度計は濁度のパーセンテージを表示し、正確な工業的値ではない可能性があることに注意してください。ただし、2つの水の水質を比較するために使用できます。このプロジェクトの完全な動作は、以下のビデオで見つけることができます。チュートリアルを楽しんで、質問がある場合に役立つことを学んでいただければ幸いです。下のコメントセクションに残すか、CircuitDigestフォーラムを使用して技術的な質問を投稿したり、関連するディスカッションを開始したりできます。