別のサイトでこんな記事を見つけた。
ラズパイでアナログ電圧を扱う (7) MCP3208のプログラム③
Raspberry Pi 4にてMCP3208を使用して測距センサーの値を得る
アナロググラウンドとデジタルグラウンドをショートさせる策は既にやっているので、Vddの入力側に0.1μFのコンデンサを入れるのと、ADCの疑似差動入力を試してみる。
ふむふむ。
さらに、測定対象を単3乾電池にしてやってみた。これは化学反応による電圧なので、ノイズがほぼないらしい。
疑似差動のほうが精度が悪いように見えるが、これは集計上の誤差と思われる。(0点を出すときにINT関数で桁落ちさせているため)
+2とかの差では、わずかに疑似差動がまさっている。しかし、シングルエンドも十分使える性能だな。シングルエンド入力は、ADCのピンが倍使えるので、メリットは十分にあるな。
同じく単3乾電池使用で、Vrefとしてシャントレギュレータではなくラズパイから出力される3.3V電源を使ってみた場合がこれ。
ここから学んだのは次の点。
- ラズパイから出力される3.3V電圧は結構変動する ロングテール。Vrefとして使わないほうが良い。
- 乾電池の電圧安定性は高い。但し、長期間の電圧低下・内部抵抗変化はどうなるか分からないので要注意。
- ADCの疑似差動入力が効果を出すようなコモンモードノイズは、今回組んだ回路ではもともと少ない(今回1分程度の計測ではあるが)
ということなので、シングルエンド入力を使うことに決めた。
それにしてもこの一連の実験はなかなか勉強になった。分電盤アプリとは関係ないが今後も実験してみたい。他にも気になることもある。
- MCP3208のDoutから出ているデジタル出力電圧は実際何Vなのか?
- Doutを何Vまで下げると、ラズパイSPI入力はデジタル信号を読めなくなるのか?


