前回のBBC Micro:bitでpHメーターから得られるアナログ値を読み込んでみたの記事でアナログ値としてpHを測定するものとAD変換器が内蔵されているBBC Micro:bitを繋いで、pHメーターを試した内容を記載した。
前回の記事では、水道水の測定値が700台だったので単純に100で割った値にしていたが、実際にはそんな単純なわけではない。
AD変換器やpHメーターから出力される値の理解を深めなければ先に進めないので、諸々の用語を見ていく事にする。
AD変換器を見ていく。
Tjwikcom - 投稿者自身による作品, パブリック・ドメイン, リンクによる
AD変換器(ADC)は左のINPUTでアナログ値を入力して、右のOUTPUTでデジタル値として出力する。
AD変換器を選ぶ際、12bit 8ch ADコンバータ MCP3208-CI/Pのようにビット数の記述があり、ビット数が高い程、OUTPUTのデジタル値の精度が高くなる。
※ビットは分解能
12bit 8ch ADコンバータ MCP3208-CI/P: 半導体(モジュール) 秋月電子通商-電子部品・ネット通販
上のパーツでは12ビットになっていて、データの扱える範囲は212になるので212 = 4096になるが、コンピュータは0の値からカウントするので、OUTPUTの値は0〜4095の範囲になる。
例えば、抵抗を自由に変更できるもの(半固定抵抗)があって、0〜3.3Vのアナログ値が生成されるものをAD変換する場合、
0V → 0
1.65V → 2048
3.3V → 4095
がOUTPUTで出力される値となる。
BBC Micro:bitやRaspberry Piでこれらの値を受け取った後、必要に応じた計算方法で計算して測定値の判断を行う。
BBC Micro:bitのAD変換器のビット分解能は10ビットであるらしいので、210 = 1024で値の範囲は0〜1023になる。
半固定抵抗の例からだと、pHメーターの中間値であるpH7は512になるけれども、先日の水道水の値は700台だった。
PH4052Cの方の測定値の仕様も確認していく必要がありそうだ。
Liquid PH Value Detection Detect Sensor Module – diymore