だいぶ以前に購入した温度センサーS-8100Bがパーツボックスにありました。
この温度センサーは、-8.0mV/℃の負特性を持ち、その出力は、
-20℃で1.908V
+30℃で1.508V
+80℃で1.095Vです。
リニアリティは、±1.0% (-20℃~+80℃)とマイナスの温度も計測可能です。
上の特性からこの温度センサーの出力Eと温度(℃)との関係は次の式で表すことができます。
E = 1.748 - 0.008 t
PIC16F88のVref+=4.096VとするとA/Dコンバータの変換結果ADresは
-20℃の時 ADres = 1.908/4.096 * 1024 = 477
+30℃の時 ADres = 1.508/4.096 * 1024 = 377
+80℃の時 ADres = 1.095/4.096 * 1024 = 273
となり、温度の50℃の変化に対して100デジット変化します。
また、0℃の時は、ADres = 1.748/4.096 * 1024 = 437 ですから
求める温度t(℃)は
t = (437 - ADres) / 2 で計算できます。
プログラムは、前の記事とほぼ同じですので、省略します。
回路図です。S-8100Bの出力は、1MΩでプルアップしています。
この温度計の精度は1℃です。