« 熱電対素線(タイプK、クロメル=アルメル)をハンダ付けしてみた | トップページ | pn接合順方向電圧(VBE)の温度係数を測ってみた(高精度版) »

2015年5月11日 (月)

PICで作る温度計のセンサー比較(I2C/SPI温度センサ、サーミスタ、熱電対、白金測温抵抗体、pn接合など)

これまでの“経験”とこれからの“構想”をもとに温度計に使うセンサーの特長やメリット・デメリットをまとめてみました。“PICで作る...”と書きましたがPICにしかない機能を使うというような意味ではないのでAuduinoでもなんでもおんなじでしょう。

なお私が書いたものでは信用できないという方もいらっしゃると思います。
専門家が書かれた論文などへのリンクは

  「記事一覧(測定、電子工作、天文計算

の表の中にありますのでそういうのをご覧いただけばいいのですが、メーカの資料にわかりやすいものがあるので紹介しておきます。

  「KOA株式会社 - 温度センサの基礎とアプリケーション

======

基本的には“人間が棲息できる温度範囲”での温度測定を目的としていますが、ハンダゴテの温度を測るとかドライアイスの温度を測るくらいは考えています。

今回は概要です。細かいことは最後にリンクをつけておきました。さらに詳細な内容は個別に記事にする予定です。

例えば温度センサーを買ってきて校正なしでどの程度の誤差があるかをグラフにしたものが
  「温度センサ(サーミスタ・熱電対・(白金)測温抵抗体)の誤差
にあります。

温度センサー いろいろあります。配線は4本(I2C)あるいは5本(SPI)で済み作るのは簡単であとはプログラムをちょっと書けば使えます。
記事も何度か書いていたのですが最近興味を失いました。一言で言えばブラックボックスになっていてどういう特性なのかまったくわからないからです。精度を上げるために補正値を求めようとすると全温度範囲で校正する必要があります。面倒くさくてやってられません。その前に測定の再現性(経時変化がないか)も調べなければいけませんし測定条件(例えば電圧)が変わったら結果にどう影響するかいちいち確認する必要があります。
例えば「温度センサー3種の精度比較(摂氏0度~40度編)」をご覧になって(サーミスタは別として)誤差がなぜこういう曲線になるのか説明できる方はいらっしゃらないと思います。
でも、だいたいの温度を知りたい、ということであれば問題はないでしょう。
上のリンクにもありますが例えばAM2321は精度的にも健闘していますし、どうやら湿度もちゃんとした数値を示すようです。
I2C温湿度センサーAM2321の湿度を通風(熱電対)乾湿球湿度計とくらべてみた
サーミスタ

だいたいの温度を手軽に知るデバイスというイメージですが、じつは意外と精度がいいです。
例えばNTCサーミスタの場合25℃での基準抵抗の許容誤差は1%です。1%というと大きいように思えますが、この温度帯ではサーミスタは1℃で4%近く抵抗値が変化します。つまり25℃においては温度の許容誤差は0.25℃ということになります(B定数はふつう25℃を一方の基準にするので25℃あたりではB定数の誤差はほとんど影響を与えません)
またこれだけ抵抗値が変化するということは測定に使う抵抗計(あるいは電流計と電圧計)もそんなに分解能の高いものが必要ないということを意味します。流している電流が1%変化したとかあっても結果に対する影響は0.25度くらいです。
高めの温度に比較的強いのですが0℃でもそれなりの温度が得られます。
MCP3425なんて持ち出す必要はなく12bitのMCP3805で十分です。分解能を要求しないのであればPICの10bitADコンバータでさえ使えます。
体温計と魔法瓶で校正する白金測温抵抗体 - 36.5度編」に書いた“奇跡の精度を持つ体温計”もサーミスタを使っています(サーミスタをRとしたCR発振器の発振周波数と精密抵抗を使った発振周波数とを比較することにより温度を求めているようです)
確度は求めないが高い分解能が必要なときも便利です。氷点を作るときは必ずサーミスタで温度変化がないことを確かめています。
サーミスタの温度と抵抗の関係式というのは近似式でしかないのですが近似式にしてはよくあっています。また近似式を実際に近づける補正方法もあります。
サーミスタで正確な温度を求める方法 - 抵抗値-温度変換計算の精度と誤差
なお使い方によっては自己発熱の影響が大きくなるので注意します。
また校正にはちょっとやっかいなところがあります。例えば基準抵抗の誤差を調べるためには25℃での抵抗値を測る必要があります。これは言葉で言うのは簡単ですが実際にやろうとするととたんに行き詰まります。

サーミスタで温度を測る - 温度と抵抗値の相互変換 - B定数について
サーミスタによる温度測定の精度 - 2 - B定数の温度特性
サーミスタ温度測定の精度と誤差 - 熱放散定数と自己加熱
サーミスタで正確な温度を求める方法 - 抵抗値-温度変換計算の精度と誤差
サーミスタ温度測定の精度と誤差 - 製品のばらつきによる不確かさ
PICで作るお手軽サーミスタ温度計 (2) - ソース付き

目で見るサーミスタの自己発熱 - 熱放散係数を求める
サーミスタ/測温抵抗体の自己発熱(熱放散係数)の測り方
サーミスタの自己発熱・熱放散係数を測ってみた
(アルミ管入り)サーミスタの自己発熱・熱放散係数を測ってみた
(水中の)サーミスタの自己発熱・熱放散係数を測ってみた

白金測温抵抗体
(RTD、Pt100)

温度測定の王道です。私みたいに温度測定が趣味と言う方は一つ作っておいた方がいいと思います。精度を追求するのであればこれ以外の選択肢はないでしょう。熱電対やサーミスタの校正に使えます。あんまり高いあるいは低い温度はムリですが秋月で売っているものでも-200℃から600℃まで使えます。
抵抗値の許容誤差から計算すると温度の誤差は(Class Bで)±0.4℃となりサーミスタより悪いです。さらにこの精度を出すためには(私みたいな素人は持っているはずがない)誤差が小さく分解能の高い抵抗計が必要です。
でもこれは0℃(「氷点 - 摂氏0度の作り方」)で校正すれば簡単に解決します。分解能の高い電圧計と温度係数の小さい比較用の抵抗さえあれば25℃での誤差は0.1℃程度になります。
より許容誤差の小さいClass AとかClass B/3というのもあります。
温度と抵抗値の関係は定式化されており校正は楽です。
電圧計としてはI2Cの16bitADコンバータMCP3425がおすすめです。
基準電圧源と精密抵抗があれば手間が省けます。さらにこれらを使って定電流源を作っておけば測定結果の処理が楽になります。
1mAの電流を流したとき400μV/K程度です。熱電対の40μV/Kに比べれば楽勝な感じですが、これは100mVの中の400μVですから分解能に対する要求はきびしいです。
これもサーミスタ同様使い方によっては自己発熱の影響が大きくなるので注意します。
それから100mVの中の40μVというのは0.4%です。流す電流が1%変化したら温度の測定値に2.5度の誤差が発生することになります。
正しい温度を知るためにはいろいろと工夫が必要ですが、趣味としてはそれも楽しみでしょう (^^;;
(白金)測温抵抗体(白金薄膜抵抗)の使い方 - 基礎編というか入門編というか....
(趣味の)白金抵抗温度計の製作 - 準備編

熱電対 正確な温度を知るのはなかなかたいへんそうです。冷接点の温度を正確に知る必要があるということもあるのですが、熱電対というのは校正をちゃんとしないと正しい温度を知ることができないようです。
温度係数(ゼーベック係数)の温度変化は(特にタイプKは)かなりクセがあり、さらに個体差も大きいようです。だから冷接点の温度を正確に知った(例えば冷接点を氷点においた)からと言って格段に精度が上がるわけでもなく本質的にあんまり精度はよくないと思った方がいいと思います。
熱電対の起電力の近似式 - 起電力と温度の相互変換
K型熱電対プローブ(秋月電子通商)による温度測定

ただ複数の場所の温度を同時測る、特に二箇所の温度差を知るということだったら威力を発揮します。これについてはいろいろやってみたいことがあります(「通風乾湿球湿度計をありあわせの材料で作ってみた」)
タイプKで40μV/K程度です。プリアンプが必要になりますので測るのはけっこうたいへんですが高い分解能が必要なわけではありません。
でも今は増幅率57.1のプリアンプでも電圧が低すぎるので16bitの分解能があるMCP3425でやってます。
電圧計の確度は他の方法では工夫すればクリアできますが熱電対では(少なくとも安定性・再現性は)必須です。
これまでサーミスタや測温抵抗体でやってきてADコンバータの温度係数はキャリブレーションで吸収できるのであんまり気にしなかったのですが、これから熱電対や下にあるpn接合で温度を知ろうとするとそうも言ってられないようです。

ところで熱起電力はどんな金属同士でも発生します。そのあたりを実験するのもおもしろいと思っています。熱電対の記事はそういうのばっかりになるかも (^^)

熱電対の起電力の近似式 - 起電力と温度の相互変換
熱電対の起電力の近似式 - 起電力と温度の相互変換 (250℃~1300℃編)
K型熱電対プローブ(秋月電子通商)による温度測定
K型熱電対 ステンレス管タイプ(秋月電子通商)による温度測定
熱電対起電力を直接測定できる22bit(20.6bit)ADコンバータMCP3553
ADコンバータMCP3425と計装アンプLT1167で作るK熱電対温度計 - オフセットの自動補正
PICとMCP3425で作るK熱電対温度計 - OPA277PAでプリアンプを作る
あんまり違いがないK型熱電対とT型熱電対の熱起電力
pn接合の順方向電圧 順方向電圧の温度係数が-2mV/Kくらいであることを利用して温度を知ろうという構想です。順方向電圧とその温度係数は測定電流や個体によって変わりますので校正が必須ですが直線性はいいというか理論値(?)とよく一致するようなので数点で校正すれば使えてしまうかもしれません。
だいたい0.6Vに対しての2mV/Kですので白金測温抵抗体と同程度の分解能が要求されます。つまりMCP3425あたりが必要です。
この方法には大きなメリットがあると思います。0.6Vに対して2mV/Kということは0.3%強の変化です。こういう場合ただの抵抗なら測定するための電流が0.3%変化すると温度には1℃の誤差が出るわけですが、この方法は0.04℃くらいの誤差にしかならないはずです。pn接合の順方向電圧はおおまかに書くと電流の対数に比例するため電流の変化に対する感度が低いためです。
そのかわり(熱電対と同じく)再現性・安定性のある電圧計が必要です。
pn接合順方向電圧(VBE)の温度係数を測ってみた(高精度版)
放射温度計 市販のセンサーを使うのではなく一から手作りというのを目論んでいます。
熱力学温度計 要するに絶対温度を測ろうということです。
そのうちシャレで作ってみようと思っています (^^;;

関連

“温度”について
  「正確な温度を求めて (1)

“素人”でもできる校正について
  「氷点 - 摂氏0度の作り方
  「体温計と魔法瓶で校正する白金測温抵抗体 - 36.5度編

恒温槽について
  「恒温槽 - 温度を一定に保つアルゴリズム - 1

自己発熱について
  「サーミスタや白金抵抗温度計の自己発熱の影響を補正する方法

“測定装置”について
  「PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計+周波数カウンタ(技術要素一覧)
  「PIC+SPI+I2C 自記温湿度計+気圧計+8ch電圧計のソース - main()

電圧の測定について
  「PICでI2C - ADコンバーター・MCP3425の使い方
  「PIC18F26K22でSPI - 8ch/ADコンバータ MCP3208の使い方(ソース付き)

抵抗比を測定するための抵抗器について
  「精密抵抗のお値段 - 抵抗器の精度と価格の関係
  「金属皮膜抵抗と炭素皮膜抵抗の温度係数を測ってみた - まとめ

定電流回路(電圧電流変換回路)について
  「思わぬところで見つけた負性抵抗 - 定電流回路(バイラテラル回路)

測定した結果を表示することについて(いずれもI2Cデバイスです)
  「I2Cのソース - PIC12F1822/16F1705/16F1938/18F26K22 - LCD(ACM1602)を例にして
  「I2C薄型液晶ディスプレイ(LCD)・AQM1602XAの使い方

測定した結果を保存することについて
  「PICでSPI SDカードを読み書きする

pn接合について

  電流-電圧の関係について
    「ログアンプ - ベース電流(IB)とベース電圧(VBE)の関係
    「pn接合の理想係数を測る

  温度係数
    今必死で書いてます!
    「pn接合順方向電圧(VBE)の温度係数を測ってみた(高精度版)

    よく考えたら以前も書いていました。
    「
pn接合の順方向電圧(VBE)と温度の関係 -1
     「pn接合の順方向電圧(VBE)と温度の関係 -2 測定方法

放射温度計
熱力学温度計
    「記事一覧(測定、電子工作、天文計算」の表に参考となる資料へのリンクがあります。

« 熱電対素線(タイプK、クロメル=アルメル)をハンダ付けしてみた | トップページ | pn接合順方向電圧(VBE)の温度係数を測ってみた(高精度版) »

趣味の電子工作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1994983/59920269

この記事へのトラックバック一覧です: PICで作る温度計のセンサー比較(I2C/SPI温度センサ、サーミスタ、熱電対、白金測温抵抗体、pn接合など):

« 熱電対素線(タイプK、クロメル=アルメル)をハンダ付けしてみた | トップページ | pn接合順方向電圧(VBE)の温度係数を測ってみた(高精度版) »

フォト

サイト内検索

  • 記事を探されるんでしたらこれがいちばん早くて確実です。私も使ってます (^^;; 検索窓が表示されるのにちょっと時間がかかるのはどうにかしてほしいです。

新着記事

リンク元別アクセス数

  • (アクセス元≒リンク元、原則PCのみ・ドメイン別、サイト内等除く)

人気記事ランキング

  • (原則PCのみ、直近2週間)
無料ブログはココログ