温度センサーについての最近のブログ記事

 次に示す、サーミスタによる温度測定の回路にに基づいてセンサの出力電圧から温度を求めるArduinoのスケッチを作成します。Arduinoを使用せずに温度を測定する場合は、電源電圧とR1の抵抗値を調整し、温度を測定する範囲内で出力電圧と温度の関係の直線性が良く、目的とする温度の差が検出でき、マイコンのアナログ入力の分解能で読み取れるだけの感度が得られるようにします。
 今回は、Arduino とサーミスタの特性式に基づいて計算しますので、出力電圧と温度の関係の直線性については気にしていません。
 測定範囲内でできるだけ大きな出力電圧の変化が得られることと、サーミスタの自己加熱を防止するために可能な限り電流が小さくなるようにしています。
 103ATではデータシートから25℃のときの抵抗値が10kΩ、0℃で28kΩ、85℃で1.45kΩとなっています。次に示すようにR1を3.3kにすると、0℃の時にVccの約0.9倍、85℃の時にVccの約0.3倍の出力電圧が得られます。電流も5Vの電源で1.05mA位でサーミスタの消費電力も 1.6mWになります。
 電源電圧はArduinoと同じ電源電圧として5Vとし、R1の抵抗値は消費電力、出力電圧の範囲から3.3kΩとしました。

adrsens110010.jpg

 温度計測の定番のひとつにサーミスタがあります。サーミスタ(Thermistor)はThermally Sensitive Resistorと呼ばれる熱にセンシティブな抵抗体のことを指しています。この熱に敏感に抵抗値が変化する抵抗体の中に、温度の上昇により抵抗値が下がる負の温度係数をもつものが一般にサーミスタと呼ばれています。温度、抵抗値に比例関係が認められるので、多様な場面で温度センサとして利用されています。

 このサーミスタは、主に金属酸化物を高温焼結したセラミック半導体で、製造方法、構造によって各種の形状、特性のものが開発され、多様な用途に応じた製品が供給されています。
 今回は、次に示す石塚電子のATサーミスタ(高精度サーミスタ)103AT-11を使用します。25℃のゼロ負荷抵抗値は10.0kΩでB定数が3435Kとなっています。

adrsens100015.jpg

TMP-102から温度を読み取りのスケッチ
 TMP-102を、次に示すようにHH10Dのモジュールをセットした小型のブレッドボードに追加しました。赤のリード線はプラスの電源でArduinoの3.3Vから取り出しています。Arduino Proのアナログ入力5と黄色のリード線でI2CのSCLの端子に接続します。アナログ入力4とは橙色のリード線でI2CのSDAの端子に接続しています。

skse130010.jpg

I2Cのインターフェースをもったディジタル温度センサ
 TMP102はテキサスインスツルメンツ社から発売されている温度センサで、パッケージは2mm角以下の超小型SOT563というパッケージです。手作業ではんだ付けしなくてもよいように、Sparkfunから、次に示すように10×12mmの基板に搭載し2.54mmピッチのピンヘッダを取り付けられようにしたモジュールが発売されています。

skse120010.jpg

I2Cのレベル・コンバータを用意する(2) 
   PCA9306は、次に示すように1番ピンはGNDで、2番ピンは3.3Vの低いほうの電圧の供給端子、電圧が低いほうのI2CバスのSCLが3番ピン、SDAが4番ピンとなっています。5Vの電源が7番ピン、デバイスのイネーブル端子の8番ピンが7番の電源ピンに接続されているとレベル変換が行われます。8番ピンがGNDに接続されている場合、回路は切断されます。
 この回路で、TMP102側のI2Cのバスは3.3Vの電源で、Arduino側のI2Cのバスは5V電源バスとなっています。

CD02500010.jpg

計算の精度
  スケッチで扱う変数の種類により、表現できる数値の上限と下限が決まります。計算途中で上下限の範囲を超えると正しい結果が得られなくなります。
 今回の例では、アナログ入力の基準電圧をmV単位の値でvref=1100と設定しています。LM35DZのセンサからの入力は0から1023までの値となります。室温が20℃くらいだとするとセンサからの出力電圧は200mVになります。アナログ入力ポートから読み取られた値はおおよそt0=186となります。

湿度の計算を行う
 センサを5本、同じ条件でモニタした結果を次に示します。同じ条件でありながら25.3℃から26.8℃の間でばらついています。

adr360010.jpg

湿度の測定
 今回、LM35DZを二つ使用して乾湿球湿度計を作ります。アウグスト乾湿球湿度計は単に乾湿球湿度計と呼ばれ、小学校で湿度の測定に使用したものです。今回の測定では1、2%の湿度の誤差は無視できますので二つLM35DZの温度センサを並べ、一方のセンサにガーゼを巻き水に浸します。LM35DZを使用した乾湿球湿度計を作ります。

adr350010.jpg

温度のモニタ

 前回追加したセンサを含めて、5か所の温度経過が測定できるようになりました。今回このセンサを利用して、蒸篭内の温度分布と時間経過に伴う変化の様子を調べてみます。


  t1 : 蒸篭の底の蒸気の吹き出し口から蒸気を発生するステンレスのなべに
      センサを差し込み、なべで発生する蒸気の温度を測定します。
  t2 : 蒸篭のすだれの下の蒸気だまりの温度
  t3 : 蒸篭に入れた米のすだれに近い底の中心部分に差し込む
  t4 : 蒸篭に入れた米の上部の中心部分、センサが隠れるくらいだけ差し込む
  t5 : 蒸篭に入れた米の上部の中心から一番遠い角の温度をはかる、センサが
      隠れるくらいだけ差し込む

 お米は、スーパーで購入した茨城産のコシヒカリ2.5kgを一晩、水に浸して、2時間くらいざるに上げたものを使用します。

Tera Termを起動しログを開始する
  ArduinoはUSBケーブルを接続すると、温度の計測を開始します。Tera Termを起動すると測定データを受信することができます。ファイル>ログを選択し、ログを保存するファイルを設定すると、次に示すログを制御するウィンドウが開きログが開始されます。

adr340010.jpg

温度計の追加
  Arduinoでは、アナログ入力が6ポートまで設定できます。この後行う麹の培養管理では、湿度の管理も行います。そのため、湿度を測定する必要があります。湿度センサも多く開発され発売されていますが、数百円で湿度を直読できるものはまだ見当たりません。そのため、小学校の気象観測で測定した乾湿球湿度計をLM35DZで用意して、Ardunoで湿度を評価することにします。
 前回までに、3ポートLM35DZが接続されていたものに、新たに2ポートのLM35DZを追加しました。

コネクタをB3B XH3(日本圧着端子)に変更
  今回コネクタを、日本圧着端子 B3B-XHに変更し、以前より抜けにくいものにしました。少し抜き差しが大変になりますが、しっかり固定されます。

adr330010.jpg





マイコンと電子工作 No.6


マイコンと電子工作 No.4


マイコンと電子工作No.1
サポート・ページはこちら

カテゴリ

このアーカイブについて

このページには、過去に書かれたブログ記事のうち温度センサーについてカテゴリに属しているものが含まれています。

前のカテゴリは気圧センサです。

次のカテゴリは湿度センサです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.