ガンマの水温計のセンサーは、温度が上がると抵抗値が減少するというNTCサーミスタを使っている。
NTCサーミスタというのはWikipediaから引用すると以下の通り。
サーミスタ(英: thermistor)とは、温度変化に対して電気抵抗の変化の大きい抵抗体のことである。この現象を利用し、温度を測定するセンサとしても利用される。センサとしてはふつう-50℃から150℃程度までの測定に用いられる。
これをマイコンで測定する時はこんな回路を組む。
sen01
R1は固定抵抗。これが無いとショートした時に電装が行かれるので、ある意味制限抵抗の様な役割も果たす。
R2はサーミスタで、温度が上昇すると抵抗値が下がっていく。
ここでR1をどういったものを選択すれば良いのか検討する。

マイコンによる測定は、上記回路を10ビットADコンバータ(最小0〜最大1024)で測定する。
以下に複数種類のR1を接続し、0℃〜150℃までシミュレーションしたグラフを示す。
抵抗R1は51Ω、100Ω、330Ω、510Ω、1000Ω、3300Ω。
これは気軽に入手できる高精度表面実装抵抗の種類から選択している。
シミュレーションは実際にガンマについていたサーモセンサーを熱して実測し、NTCサーミスタの公式に当てはめて線画している。

sen02
縦軸はマイコンが測定する数値(0~1023)、横軸は水温(0〜140)である。
ピンクの網掛けは、2ストローク車の水温で特に精度を高めたい部分である50℃〜90℃である。

マイコンで精度良く測定する為には、ダイナミックレンジが大きいことが必要となる。
上図ではR1=51Ω、100Ωの時、全体のダイナミックレンジが小さい事が分かる。
水温0〜140℃をまんべんなく測定するにはグラフからは330Ωが適切な様に思える。

ところが、より精度良く測定したいエリアだけに注目すると、もっともダイナミックレンジが大きいのは1R=51Ωや100Ωの時である。
以下のグラフは縦軸の数値から+10℃に至るまでの変化量(Δ)を表現したものになる。
sen03
変化量は大きければ大きいほどより詳細な分解能がある事になる。
変化量が10を切ったエリアは、測定精度が1℃を切る事になる。つまり100℃の次は102℃になる様な連続しない飛び飛びの測定値が表示されることになる。
精度を高める為には最低10、可能であれば20以上あれば安定した表示ができると考える。

指定した範囲でよりよい精度を持つものはR=100Ωである為、今回接続したサーモセンサーR2に接続するR1は100Ωとした。
それ以上の抵抗値R1を選択すると、90℃〜100℃の付近で変化量が10を切る。

またこの時、センサー部分を誤ってショートさせたとしても、5V/100Ω=50mAしか流れないので、回路に負担が掛かる事も無い。
それ以下の抵抗値R1では、ショート時の電流値が心配になってくる。

・・・まぁ最初は何も考えずに1KΩ入れたんだけど、上手く行かなかったのでちゃんと考えた、って話なんだけど。
ADコンバータの精度が10ビット(1024段階)しかないんで、どの部分の精度を選択するかは考えないといけませんな、という話でした。

つづく