アナログとデジタルの記事でpHメーターに必要なAD変換を学ぶ上で最低限のアナログ-デジタルに触れた。
早速、pHメーターを使ってみようと思ったが、肝心のAD変換器がまだ届いていない。
そういえば前にBCC Micro:bitで取得した温度を表示したことがあったなとことを思い出し、仕様を調べてみたら、
※画像:入出力端子 — BBC micro:bit MicroPython 1.0.1 ドキュメントより引用後改変
※画像:入出力端子 — BBC micro:bit MicroPython 1.0.1 ドキュメントより引用後改変
P0やP1でアナログ値を読み込む機能があった。
これはAD変換に該当するらしい。
というわけで早速BBC Micro:bitにpHメーターを繋いでみることにした。
はじめに回路図をFritzingで作成しようと思ったが、pHメーターに5Vの供給の為の拡張ボードや電池の配置方法がわからなかったので、写真ベースで進める。
Liquid PH Value Detection Detect Sensor Module – diymore
BBC Micro:bitを5Vの電圧の供給ができるT字拡張ボードに接続して、
pHメーターのV+を5V、GをGND、PoをP0に繋いで、MakeCodeで
※BBC Micro:bitと繋げるGNDはV+の横のピン
※POはphの測定値の出力(output)の略
Aボタンを押したら、P0端子でアナログ値を読み込むようにした。
※最初だけのアイコンを表示はBBC Micro:bitに無事にコードがフラッシングされたか?の指標の為に設けた
水道水に電極を指してAボタンを押してみたところ、BBC Micro:bitのディスプレイに748という数字が表示された。
続いて、ちょうど重曹の粉があったので、水道水に溶かして電極を指してAボタンを押してみたところ、916という数字が表示された。
重曹は炭酸水素ナトリウム(NaHCO3)でpHはアルカリ性(pHが8以上)を示し、水道水は中性(pH 7)付近になるので、得られた結果は100倍の値だと推測して、
上記のコードに書き直してみた。
コード変更後に重曹水のpH測定の実行結果は下記の動画のようになった。
pHメーターのPH4502Cから得られたアナログ値が100倍した値であるか?
BBC Micro:bitの方のAD変換器がどのように値を読み込むか?
といったことを調べる必要はあるが、とりあえずアナログ値を読み込むところまではできた。
pHメーターとサーボモータをつなぎ、サーボモータをバルブのようにして、pHを測定して値が低ければ、自動でバルブを開いてアルカリ性の溶液で点滴してpHを上げるといった自動化の夢が広がった。
Micro:bitで二種類のサーボモータの動作を比較してみる
関連記事