IoT何をいまさら(28) サーミスタで温度を測る その3

『訂正』本文中のタイミング間違っています。こちらをご参照ください。

サーミスタもそろそろおしまいにして、そこからCDSのお勉強へ進もうと思いつつ、1点引っかかっていたのがサーミスタへの電流供給のOn/Off制御です。センサはOnにしておくと常時電流が流れるものが多く、使わないときにセンサへの電流の供給を止めておく、というのは、電池で駆動されるような装置では必須のことだと思います。過去見た装置の中には、

センサのデータシートの規定よりもOn時間を削り込んでいる

ような装置もありました。削り込める量は、装置を作っている側が(リスクを負って)測定して決めているのだと思いますが、電池寿命を延ばすための努力の一環でしょう。

※「IoT何をいまさら」投稿順Indexはこちら

まずは、現状の測定に、どのくらい時間が掛かっているのか実測しておきたいと思います。毎秒1回、アナログマルチプレクサを切り替えながら3か所の電位差を測定しています。

    1. サーミスタの両端電圧
    2. 参照抵抗の両端電圧
    3. 回路的には電圧差0である筈のサーミスタと抵抗間の同じ端子の電圧差

16ビットのADCで、

毎秒500サンプル

程度(変換用のクロック周波数は130kHz弱)で動作させているので、1点の測定に2msくらいかかっている筈。さらに、マルチプレクサを切り替えたりするAPIも呼び出しているので、それらを含めると最初のマルチプレクサ設定から、測定完了までは2*3=6ms以上かかっている筈。

実測するにあたっては、内部の測定区間を外部で見えるようにしないとならないので、1本デジタルの出力端子を用意しました。

出力を測定開始でONにして、測定完了でOFFにすることで、内部処理時間を外のオシロで見えるようにするもの。結構、組み込み開発ではよくやる手じゃないかと思います。

グラフでは、青色のC2が測定区間を示す出力、黄色のC1がサーミスタへの供給電圧(ここでは固定)。実測してみました。X2Δ1のところ

6.484ms

こんなもんですかね。少なくともこの期間は、サーミスタにかける電圧は一定にしておきたい。今回、このシステムで頼れるタイミングは、

1ms毎

のシステムタイマチックです。方針としては、毎秒1回の測定の1ms前にサーミスタへの電圧をONにし、測定終了後は速やかにOFFとする、と。手段としては、VDACに与える電圧設定値を0にすれば0V出力となるので、この設定値をいじってやるだけです。

操作してみた後のグラフがこちら。

黄色がサーミスタにかかかる電圧で、青が測定期間を示すデジタル出力です。測定期間の1ms前に、電圧が約1Vまで上昇し、測定期間終了後「すみやかに」0Vになっていることが分かります。ON期間は、7.5msくらい。

デューティ0.75%

なので、前回に比べればサーミスタに電流が流れている期間は激減した筈。一応、ボルテージフォロワからサーミスタに供給している電圧の立ち上がり波形も観察しておくと以下のような感じ。

低消費電力設定にしているのですが、駆動する対象も軽いので、流石に、かなり急峻に立ち上がっています。

わざわざシステムタイマチックでタイミングとってやらなくても良いような気もしましたが、ここはコンサバめにそのままといたしました。

IoT何をいまさら(28) サーミスタで温度を測る その3 へ戻る

『訂正』本文中のタイミング間違っています。こちらをご参照ください。

IoT何をいまさら(30) トホホな失敗の詳細 へ進む