● 実験テーマ132
「NTCサーミスタを譲って頂いたので簡単な実験をしてみた」
(P板配布の部屋の初の希望者Itoさんから譲って頂いたサーミスタ使用の簡易温度計の実験記です。)
■ 2022.6.4
・P板配布の部屋をアップ後、約2.5ヶ月経ったが、初の希望者から発注があった。
■ 2022.6.7
・16:00頃、Itoさんから、SASE封筒届く。(長型3号+長型7号)
何やら、それとは別に「ガラス封入タイプのサーミスタ」3組が同封されていた。
「宝工業株式会社」製のようだ。
「実験にお使いください」のコメントがあった。
・希望のP板の方は早速準備し送付した。
■ 2022.6.8
・Itoさんから頂いた、ガラス封入型NTC(負温度係数)サーミスタは以下の2種4個
@ No.136-2:計測用タカラサーミスタ SB型
・宝工業株式会社製
・昭和47年9月20日 (製造日と思われる)
・サイズ:2Φ x 7mm
・0℃ = 5.591kΩ
100℃= 0.2036kΩ
・サーミスタ定数:B= 3377°K
A No.15-2:計測用タカラサーミスタ SB型
・宝工業株式会社製
・昭和50年11月20日 (製造日と思われる)
・サイズ:2Φ x 7mm
・0℃ = 5.614kΩ
100℃= 0.2040kΩ
・サーミスタ定数:B= 3379°K
B 型番不明 少し大型サイズ:6Φ x 20mm 2個
NOTE1:°K ケルビンという単位
・水によらず、熱による分子の運動が完全に無くなる温度を「絶対零度」としたのが「ケルビン温度」で「絶対温度」とも言われます。
温度(0.01℃)を273.16Kとし、これが基準になる。
0℃:273.15K
100℃:373.15K
NOTE2:サーミスタ温度計・サーミスタ測温体がセンサ:トラ技 2003年12月号より
・サーミスタは、マンガン、ニッケル、コバルトなどを主原料とする酸化物粉末を混合、成型し、高温
で焼いたファインセラミックスです。
・サーミスタは温度に対して抵抗値が大きく変化するので温度センサとして使用され
これを「サーミスタ測温体」と言います。
・サーミスタ測温体は電気抵抗が、数kΩ〜数10kΩあり、白金測温抵抗体に比較して大きいので
銅線の影響を無視して、2導線で使用できます。
----------------------------------------------------------------------------------------------------
(1) 測温用はNTCサーミスタ
・温度上昇に応じて抵抗値が減少するタイプ。
・温度係数は、約-3〜-5%/℃ と白金測温抵抗より1桁大きく、抵抗素子は小型化できるので
高感度で応答性が良い特徴がある。
(2) 温度特性
・温度と抵抗値の関係は、次式で与えられます。
R= R0・expB(1/T - 1/T0) --------------- @
ただし、R:温度T K のサーミスタ抵抗値[Ω]
R0:基準温度T0 K のサーミスタ抵抗値[Ω]
B:サーミスタ定数[K]
※ サーミスタの抵抗値は、定数Bによって決まる温度の指数関数として変化する。
※ サーミスタ定数Bは、サーミスタを製造する時の成分の組成や熱処理方法によって決まる。
一般に、2000〜 6000Kの範囲のものが使用される。
NOTE3:秋月でも、NTCサーミスタ販売していた。
・NTCサーミスタ(温度検知・温度補償用)10kΩ(5個入)
[NXFT15XH103FA2B050] "村田製作所"
■ 2022.6.30
・そろそろ実験環境を整えたい。
@ 実験基板は使い慣れている「PIC24FJ64GP002トレーニング基板」にする。
A とりあえず、AD1入力にポテンショから、0〜VCC=3.3Vを入力した時、2行16文字の液晶に、*.***[V]
と表示させる実験を行う。(トレーニング基板の動作確認とベースプログラム確認の為)
この時のソースは、以前作成した「pic24f_adc_test.c」を使用。(ライブラリは未使用で、これ一本で動く)
→ これは上手く行く。
液晶に小数点以下3桁で表示しているが、float型を一旦int型変換し、bainary to pacdecで対応している。
■ 2022.7.1
・宝サーミスタ:No.136-2サンプル品を使って実験開始。
まずこれに直列接続する抵抗:R1の値を決めないといけない。
この値は、使用サーミスタの常温:25℃に於ける抵抗値にするのが一般的である。
VCCの分圧電圧が、AD1入力に印加されるので、常温時は、Vadin= VCC/2≒ 1.5Vになる。
・使用サーミスタの常温:25℃に於ける抵抗値:Rを次式によるexcel計算で求めてみた。
R= R0*EXP(B*(1/(T+273)-1/(T0+273))) ---- @
但し
R0:T0=0℃に於ける抵抗値= 5591Ω
B :サーミスタ定数:B= 3377K
T :求めたい抵抗値の時の温度:T= 25℃
これらを、@式に代入すると、R= 1980.619Ω になったので、直列抵抗値:R1= 2kΩとした。
・最初昨日使ったソース「pic24f_adc_test.c」を元に「ThermistorThermometerPIC24F.c」
を作成したが、何故か「25.0[℃]」としか表示しないので、以下のように修正して試すが
それでも症状は変わらないまま??
<修正箇所>
・大昔作成したソフトを元にしているので液晶に小数点以下3桁で表示する際、float型を一旦int型変換し、
bainary to pacdecで対応しているが、これでは不自然で無理があるし解り難いので
sprintf文を使うことにした。
・また液晶ライブラリも初期に作成した自前のライブラリ化されてない古いものを
使ってるので、これは後で常用している後閑氏ライブラリにするつもり。
ただ、サーミスタの頭部分を手で摘まむと、Vadin=1.4V -> 1.35Vと変化するので
そこまではOKのようだ。
■ 2022.7.2
・宝サーミスタ:No.136-2サンプル品を使って実験続行
ちょっと朝一で閃いたことがあったので試行してみる。
<現ソースで修正すべき点>
@ TEMP = 1/(log(THR/R1)/B+1/(T0+273.0))-273.0; //温度計算
の計算で、標準C算術関数ライブラリの「log:倍精度浮動小数の自然対数の計算」を使っているが、
#include "math.h"が必要。これが抜けていた。
(#include "stdio.h"は、標準C関数ライブラリと呼ばれ、sprintf関数を利用する時に必要)
A timer.hはインクルードの必要はないと思われる。
OpenTimer()等の関数マクロを使用する時に必要。
今回は未使用なのでインクルードの必要なし。
※ 現ソースは、液晶ライブラリ変更してないが、とりあえず上記を修正してみる。
→ これで見事動いた!!
・さらに液晶ライブラリを後閑式にしソースを整理し完成とする。
→ これも上手く行く。
・参考サイト
「みのや電子工作所」さん
「日立ハイテク」さん
<回路図>
・こちらからどうぞ→ 「PIC24_サーミスタ温度計実験回路図」
<最終ソース>
/// メインソース
ThermistorThermometerPIC24F.c
/// LCDライブラリ
LCD_Lib3.c
LCD_Lib3.h