- 必要なコンポーネント
- pH値とは何ですか?
- 重力アナログpHセンサーはどのように機能しますか?
- ArduinopHメーターの回路図
- pHメーター用のArduinoのプログラミング
- pH電極の校正
- ArduinopHテスターのテスト
pHスケールは、液体の酸性度と塩基性度を測定するために使用されます。1〜14の範囲の読み取り値があり、1は最も酸性の液体を示し、14は最も塩基性の液体を示します。7 pHは、酸性でも塩基性でもない中性物質用です。現在、pHは私たちの生活の中で非常に重要な役割を果たしており、さまざまな用途で使用されています。たとえば、プールで水質をチェックするために使用できます。同様に、pH測定は、農業、廃水処理、産業、環境モニタリングなどのさまざまなアプリケーションで使用されます。
このプロジェクトでは、Arduino pHメーターを作成し、重力pHセンサーとArduinoを使用して溶液のpHを測定する方法を学習します。16x2 LCDを使用して、画面にpH値を表示します。また、センサーの精度を決定するためにpHセンサーを校正する方法も学習します。それでは始めましょう!
必要なコンポーネント
- Arduino Uno
- 16 * 2英数字LCD
- LCD用I2Cモジュール
- 重力アナログpHセンサー
- 接続線
- ブレッドボード
pH値とは何ですか?
物質の酸性度を測定するために使用する単位は、pHと呼ばれます。「H」という用語は、水素イオン濃度の負の対数として定義されます。pHの範囲は0〜14の値です。純水のpH値は正確に7であるため、pH値7は中性です。7未満の値は酸性で、7より大きい値は塩基性またはアルカリ性です。
重力アナログpHセンサーはどのように機能しますか?
アナログpHセンサーは、溶液のpH値を測定し、物質の酸性またはアルカリ性を示すように設計されています。農業、廃水処理、産業、環境モニタリングなどのさまざまなアプリケーションで一般的に使用されます。モジュールには、5Vおよび5Vと互換性のある3.3〜5.5VDCの広い電圧供給をサポートするオンボード電圧レギュレータチップがあります。 Arduinoのような任意の制御ボードの3.3V。出力信号は、ハードウェアの低ジッタによってフィルタリングされています。
技術的特徴:
信号変換モジュール:
- 供給電圧:3.3〜5.5V
- BNCプローブコネクタ
- 高精度:±0.1@25°C
- 検出範囲:0〜14
PH電極:
- 動作温度範囲:5〜60°C
- ゼロ(ニュートラル)ポイント:7±0.5
- 簡単な校正
- 内部抵抗:<250MΩ
pH信号変換ボード:
ピンの説明:
V +: 5VDC入力
G:アースピン
Po: pHアナログ出力
実施: 3.3VDC出力
宛先:温度出力
pH電極構造:
pHセンサーの構造は上に示されています。pH値センサーは通常、「ガラス膜」と呼ばれる先端部を有するガラス材料からなるロッドのように見えます。この膜は、既知のpH(通常はpH = 7)の緩衝液で満たされています。この電極設計により、ガラス膜の内側にH +イオンが常に結合する環境が確保されます。プローブを試験する溶液に浸すと、試験溶液中の水素イオンがガラス膜上の他の正に帯電したイオンと交換を開始します。これにより、膜全体に電気化学ポテンシャルが生成され、電位を測定する電子増幅器モジュールに供給されます。両方の電極間でpH単位に変換します。これらの電位の差は、ネルンストの式に基づいてpH値を決定します。
ネルンストの式:
ネルンストの式は、電気化学セルのセル電位、温度、反応商、および標準セル電位の間の関係を示します。非標準状態では、ネルンストの式を使用して電気化学セルのセル電位を計算します。ネルンストの式を使用して、完全な電気化学セルの総起電力(EMF)を計算することもできます。この方程式は、溶液のPH値の計算にも使用されます。ガラス電極の応答はネルンストの式によって支配され、次のように与えられます。
E = E 0 - 2.3(RT / NF)Q LN 電極E0 =ゼロからQ =反応係数E = MV出力はºKFにおける電極R =理想気体定数= 8.314 J /モル・K T =温度に対してオフセット=ファラデー定数= 95,484.56 C / mol N =イオン電荷
ArduinopHメーターの回路図
このArduinopHメータープロジェクトの回路図を以下に示します。
pH信号変換ボードとArduinoの接続:
ArduinoとPH信号変換ボードの接続を下表に示します。
Arduino |
PHセンサーボード |
5V |
V + |
GND |
G |
A0 |
ポー |
pHメーター用のArduinoのプログラミング
ハードウェア接続が成功したら、Arduinoをプログラミングする時が来ました。Arduinoを使用したこのpHメーターの完全なコードは、このチュートリアルの下部に記載されています。プロジェクトの段階的な説明を以下に示します。
プログラムで最初に行うことは、必要なすべてのライブラリを含めることです。私の場合、LCDディスプレイのI2Cインターフェースを使用するための「 LiquidCrystal_I2C.h」 ライブラリと、ArduinoでI2C機能を使用するための「 Wire.h 」を 含め ました。
#include
次に、校正値が定義されます。これは、溶液の正確なpH値を取得するために必要に応じて変更できます。(これについては、この記事の後半で説明します)
フロートキャリブレーション値= 21.34;
セットアップ() 内には 、 LCDにウェルカムメッセージを表示するためのLCDコマンドが記述されています。
lcd.init(); lcd.begin(16、2); lcd.backlight(); lcd.setCursor(0、0); lcd.print( "ようこそ"); lcd.setCursor(0、1); lcd.print( "サーキットダイジェスト"); delay(2000); lcd.clear();
loop() 内で 、 10個のサンプルアナログ値を読み取り 、 それらを配列に格納します。これは、出力値を平滑化するために必要です。
for(int i = 0; i <10; i ++){buffer_arr = analogRead(A0); delay(30); }
次に、受信したアナログ値を昇順で並べ替えます。これは、後の段階でサンプルの移動平均を計算する必要があるために必要です。
for(int i = 0; i <9; i ++){for(int j = i + 1; j <10; j ++){if(buffer_arr> buffer_arr){temp = buffer_arr; buffer_arr = buffer_arr; buffer_arr = temp; }}}
最後に、6つの中央サンプルのアナログ値の平均を計算します。次に、この平均値が実際のpH値に変換され、LCDディスプレイに印刷されます。
for(int i = 2; i <8; i ++)avgval + = buffer_arr; float volt =(float)avgval * 5.0 / 1024/6; float ph_act = -5.70 *ボルト+キャリブレーション値; lcd.setCursor(0、0); lcd.print( "pH Val:"); lcd.setCursor(8、0); lcd.print(ph_act); delay(1000); }
pH電極の校正
このプロジェクトでは、PH電極の校正が非常に重要です。このためには、価値がわかっているソリューションが必要です。これは、センサーのキャリブレーションの参照ソリューションとして使用できます。
PH値が7(蒸留水)の溶液があるとします。これで、電極が参照溶液に浸され、LCDに表示されるPH値が6.5になります。次に、それを調整するには、コードの調整変数「 calibration_value」 に 7-6.5 = 0.5 を追加するだけです。つまり、値を 21.34 + 0.5 = 21.84にし ます。これらの変更を行った後、コードをArduinoに再度アップロードし、電極を参照溶液に浸してpHを再確認します。これで、LCDは正しいpH値、つまり7を表示するはずです(わずかな変動がかなりあります)。同様に、この変数を調整してセンサーを校正します。次に、他のすべてのソリューションをチェックして、正確な出力を取得します。
ArduinopHテスターのテスト
このArduinopHメーターを純水とレモン水に浸して試してみました。結果は次のとおりです。
純水:
レモン水:
これが、Arduinoを使用してpHセンサーを構築し、それを使用してさまざまな液体のpHレベルをチェックする方法です。
完全なコードとデモンストレーションビデオ を以下に示します。