PICでI2C - 温度センサーLP331APとAM2321の精度比較
その後いろいろと調べた結果を追記しておきます。
ただし、いずれも私がもっているものの精度です。これが一般的に言えるかどうかは私にはわかりません。
-----
より詳細な精度チェックが
「温度センサー3種の精度比較(摂氏0度~40度編)」
にあります。
(2014.09.23)
-----
AM2321
摂氏20度から40度くらいの範囲はとても正確です。36度近辺での体温計との比較すると違っても0.1度という感じでした(体温計は誤差0.1度以下とカタログに書いてありました)
温度が低くなると表示が低めになっていきます。温度が10度20度を下回ると誤差が目立ちました。ただそれでも摂氏0度で-0.4度くらいです。
LPS331AP
高い温度では高めに、低い温度では低めに出ていました。
40度近くなると+0.6度~0.7度、20度10度を切ると今度は低めになります。
とは言っても摂氏0度~40度では±1度におさまっています(データシート上は±2度でした)
37度付近でこの二つ(とサーミスタと白金低抗体)を比較したものが
「ミニ恒温槽の作成に向けて - 魔法瓶の活用」
にあります。他の温度帯でのものもまとめてみたいと思っています。
-----
前記事
「PICでI2C - 大気圧・温度センサー LPS331の使い方」
の中に五つの“温度計”の“気温”の表示の比較したものがありますが、けっきょくどれが正しいかはっきりわかるわけでもありません。
そこでこんどは摂氏0度がどう表示されるかやってみました。要するに氷水の中にセンサーをつけて温度を測るわけですが、これが一筋縄でも行きません。問題は二つあります。
1. 摂氏0度、つまり氷と水の平衡状態をどうやって作るか?
近いうちこのことをテーマにした記事を書くつもりなので詳細はその中で紹介しますが、0.01度の精度を求めないのなら水道水を凍らせた氷を使ってふつうに注意しやれば十分、みたいなことを書いたものがありましたが、この“ふつうに注意して”がなかなか難しいです。
==> 「氷点 - 摂氏0度の作り方」
2. 仮に氷と水の平衡状態ができたとして、その温度をどうやって測るか?
サーミスタや白金薄膜抵抗の抵抗値を測るときもI2Cのセンサーから信号を受け取る場合も必ず配線しなければならないのですが、この配線を通して外気の熱がセンサーに伝わります。外気温の影響をできるだけ受けないようにするためにはそれなりの配慮が必要になります。
いずれにしても、氷水を作って温度が安定したらそれが“摂氏0.0度”、なんて頭で考えるほど簡単じゃありませんでした。
実験を振り返って見ると摂氏0.3度くらいまではすんなり下がるのですが、そのあと特に摂氏0.2度以下がたいへんでした。
もっとも今私が“摂氏0.0度”と考えている状態はじつは摂氏0.1度であるという可能性もないことはないです。
前置きが長くなりましたが“測定結果”です。
なお今回は棒温度計は不参加です。全侵没タイプだと思うので氷水に入れることができませんし、できても水面にある目盛りを読み取るのも構造的に無理でした。
こうやってみると誤差±2.0度のLPS331がけっこういい線行ってます。AM2321はLPS331APより結果はいいのですが、もともとデータシートじゃ誤差±0.3度と言っているわけですからギリギリです。いくらなんでも、今より0.4度高いところが正しい摂氏0.0度、ということはないような気がします。
白金薄膜抵抗は抵抗値を測定しデータシートにある基準抵抗(100Ω±0.12%)、温度係数(0度~100度の間で1度あたり3850ppm±13ppm)と回路定数から計算して求めたものです。前回の記事では基準抵抗にちょっと誤差があるかも、と書いたのですが正直何が0.0度にならない理由なのかを判別するのはムリです。ただここが摂氏零度とかんがえると基準抵抗の誤差が原因と考えても例えば配線の抵抗(0.7Ωくらい)が原因と考えてもあんまり違いはないようです。試算してみるとどちらが原因と考えても摂氏60度くらいの温度を測ったとき0.1度も違わないです。この60度の場合は温度係数の誤差(ばらつき)の方が問題になります。
配線の抵抗の影響を受けないようにする、とかまだいろいろ工夫すべきところはあるのですが、率直に言って白金薄膜抵抗で気温を測ろうというのはやめた方がいいです。アマチュア的にはこれははんだごての温度を測りたいというようなときに使うものでしょう。非常に小さいくリード線も細いのでけっこう正確に測ることができると思います。
最近は気温だろうが水温だろうが白金薄膜抵抗(測温抵抗体)がいちばん正確、という境地(?)に至りました。
「PICで作る温度計のセンサー比較(I2C/SPI温度センサ、サーミスタ、熱電対、白金測温抵抗体、pn接合など)」
「(白金)測温抵抗体(Pt100、白金薄膜抵抗)の使い方 - 基礎編というか入門編というか....」
サーミスタは摂氏25度における基準抵抗とB係数から温度を計算しています。調べてみたらB係数というのは温度によって変化するものみたいです。とすると摂氏0度で1度も違わないというのはけっこうずごいことだと思います。
またこのときは熱拡散係数の補正を行っていません。熱拡散係数の影響を受けないようにできるだけ流す電流を小さくしたいのですが、サーミスタの電圧降下をPICの10bitのADコンバータで測っているためあんまり電流を小さくできません。
このときの測定条件で熱拡散係数の影響は0.2度程度でした。とするとこの場合は0.6度と表示させるべきでますますなかなかの好成績ということになります。
使用しているサーミスタは基準抵抗10kΩ±1%、B係数3380度±1%、熱拡散係数1.5mW/deg. のNTCサーミスタです。
サーミスタはお手軽ですが、正確に測ろうとすればするほど難しくなります。
「サーミスタで正確な温度を求める方法 - 抵抗値-温度変換計算の精度と誤差」
-----
実際に試験に使ったセンサーの“実装方法”です。この試験管に(配線を通す穴を開けたゴム栓)というのは気密性がよくなかの状態も確認できるのでなかなかいいです。
一方サーミスタと白金薄膜抵抗は「PICで平方根 - 白金薄膜抵抗で温度を測る」のようなものを使っているのですが、すでに2回ほど浸水事故に見舞われました (^^;;
------
関連
「I2C大気圧センサーLPS331の驚くべき分解能」
「I2C大気圧温度センサーLPS331 - 海面更生気圧を気象庁とくらべてみた」
「PIC/I2C大気圧センサーLPS331APの測定値をSDカード(SPI)に記録する - はじめに」
「PICでI2C - ADコンバーター・MCP3425の使い方」
「I2Cデバイス・アドレス一覧」
「PICで平方根 - 白金薄膜抵抗で温度を測る」
「PICでI2C - 1 (温度計を作る)」
「PICでI2C - 液晶(LCD)ディスプレイ(ACM1602N1-FLW-FBW)に表示する」
「PICでI2C - LCD(液晶)ディスプレイによる違い」
「炭素皮膜抵抗の温度係数を測定する話」
「サーミスタによる温度測定の精度」
「サーミスタ温度計の精度を調べる - 1」
「ミニ恒温槽の作成に向けて - 1」
参考
「きむ茶工房ガレージハウス - PICの動かせ方入門はこちら - 16F1938覚書」
「きむ茶工房ガレージハウス - I2C通信の実験」
「きむ茶工房ガレージハウス - 気圧センサーで大気圧と標高を測定して見ます(MPL115A1)(MPL115A2)」
予習として拝見していたのですが、とても参考になります。
私の記事を読んでI2Cのセンサーを使って温度計とか気圧計とかそういうものを作りたくなった方も実際に作られるときはこちらを読まれた方がいいと思います。
「電子工作の実験室 - PIC(8bit) - PIC16シリーズ - I2Cモジュールの使い方」
« PICでI2C - ADコンバーター・MCP3425の使い方 | トップページ | PICでI2C - 大気圧・温度センサーLPS331APの使い方 »
「趣味の気象観測」カテゴリの記事
- 地震計を作る - 超音波距離計の応用 - プロトタイプ(2016.02.03)
- 超音波風速風向計の製作 - 回路構成(2016.02.02)
- 超音波風速計の製作 - 気温・湿度に依存しない測定方法(2016.02.02)
- I2C温湿度センサーAM2321の湿度を通風(熱電対)乾湿球湿度計とくらべてみた(2015.06.04)
- 通風乾湿球湿度計を熱電対とありあわせの材料で作ってみた(2015.06.04)
この記事へのコメントは終了しました。
« PICでI2C - ADコンバーター・MCP3425の使い方 | トップページ | PICでI2C - 大気圧・温度センサーLPS331APの使い方 »
コメント