ロートロのPIC12F675にI2C接続のEEPROMを付けてデータ・ロガー化するというのをやっている。
新しいチップを使えばそんな苦労はしなくてもいいのにという部分もあるが、不便だからこそ取り組む羽目になって、それゆえに初めて分かることもある。
今回はそういう内容ではなく、初めてAD変換を2チャンネル使った際に生じたごたごたを書く。
そういえば、今までは試しに1チャンネルのAD変換をやって喜んでいたが、複数のチャンネルを使ってみたことは無かったのだった。
結論を先に書くと、チャンネルを変更した後には、待ち時間が必要だということ。
LM61BIZで温度、NJL7502Lで照度を測定する。
回路を組んで、両方の測定結果をI2C接続のEEPROMに記録するようにしておき、LEDライトの光をNJL7502Lに当てたり当てなかったりして、動作を確認してみた。
無関係の温度の値まで一緒に変動する。
ハンディー・オシロスコープで変化を眺めると、温度の方に不信な変化は生じていないので、プログラム上のミスが原因の可能性が高まって、もう一度データ・シートを読み返すと、
と書いてあって、計算式も載っているが、その例では約20μsとなっている。
計算するのも面倒なので、適当に50μsの待ちをチャンネル変更後に入れてからもう一度試すと、
オレンジの値が変化しても青の線はまったく影響を受けないようになった。