18ピンPIC16F1827と同様な内蔵温度センサは、新仕様の8ピンのEnhanced MidrangePIC、PIC12F1822にもあります。前回行ったPIC16F1827での温度計測実験を元に、別の8ピンPIC12F1822で内蔵温度センサ機能を試してみました。
この温度チェッカは、現在温度より上昇または降下したときにLEDを点灯させるものです。室内温度差は5度の範囲で動作させます。
前回の実験記事
http://www.eleki-jack.com/mycom2/2012/01/pic16_12.html
■実験の温度チェッカ
今回の実験回路は、室内の温度差5度程度の範囲で決めた上限/下限温度になったらLEDを点灯させる温度チェッカのようなものです。
このアイデアは他社テキサス・インスツルメンツ社製MSP430マイコンの開発キット「LaunchPad」(千石電商にて販売中、6百円弱)の「あらかじめプログラムされたデモ・アプリケーション - 内部温度測定」からいただきました。このMSP430マイコン用開発キットは14ピンDIPマイコン2個付き、デバッグ・アダプタ部分が分離可能となる評価基板です。
さて、本題に戻って、今回の温度チェッカ回路は、ユニバーサル基板でPIC12F1822にLED2個の基板と取り外し可能な設定用スイッチ基板の二つを作りました。温度センサは内蔵ですので、外部には取り付けません。
マイコンの電源は3.0Vのスイッチング電源アダプタを使っています。コネクタはPICkit3アダプタで書き込みする場合(1~6)と基準温度設定用スイッチ基板(3~7)の共用です。
この温度チェッカはRA2をグラウンドに落とし、基準温度設定モードとし、RA0に接続する赤ボタンSW1を押して現在温度(基準温度)を覚えさせます。監視範囲は温度のA-D変換値が基準温度±3、トータル6(約5℃)カウントです。LEDの点灯は次のようにしました。
RA5に接続されたHi_LEDは基準温度より3カウント上、温度が上昇するを点灯します。
RA4に接続されたLo_LEDは3カウント下、温度が下がると点灯させます。
両方または片方が点滅しているときは基準温度設定モードです。
現在、RA1に接続する緑のSW2は未使用です。
この温度計測は前回説明したとおり、マイコンの電源電圧が重要になっています(Vtはセンサの発生電圧、2倍はローモードでの計測)。
温度の出力電圧=電源電圧VDD - (2 x Vt)
%%PIC12F1822のデータシートには温度センサに関するFVRCONレジスタ説明が記載されています。
この回路で温度変換値は実際どんな値になっているかは実行中にMPLABのデバッガを使って調べることができます。通常、8ピンPICでのデバッガ操作ではICD/ICE外付け基板が必要になります。今回のケースはその基板なしで実行できます。
基板にPICkit3アダプタを接続し、MPLABのデバッガで同様に確認すると、A-D変換値は3カウント程度の範囲で値が変動します。どうやら5℃程度の温度差では実用的じゃないようです。
また、内蔵温度センサの出力電圧をA-D変換してわかる温度はあくまでもマイコン内部の温度ゆえ、例え外部の温度で2~3点異なる温度環境で測定しキャリブレーションしても正確な温度になるとは思えません。
実際、朝室内温度が上昇しているときに、LED点灯する通過温度と、夕方下降しているときにLED消灯する通過温度に数℃の違いがありました。この内蔵温度センサ機能はもう少し温度差のあるところに、例えば装置の中などに入れ、装置内の温度が大きく上昇したかどうかをチェックするような用途には使えそうです。
本実験はここで終わりにします。参考までに今回の実験で使ったアセンブラでのプログラムを掲載します。
naizoONDO12F 実験で使ったソース・プログラム
なお、このままでは基準温度値をEEPROMメモリに書き込んでいませんので、基準温度値は電源OFFで消えます。設定後、通常モードにするには設定基板を電源入ったまま、基準温度設定用スイッチ基板を取り外して対応しました。追試する方は2バイト長の演算があるので、アセンブラでなくC言語がお勧めです。
****
前回、マイクロチップ社に問い合わせした「内蔵温度センサの精度」についての回答は「現在、内蔵温度センサの電気的仕様については公開はされておりません」とのことでした。
他社マイコンの場合、仕様書レベルでの温度と出力電圧は次の式です。
出力電圧= a x 温度 + b
ここでaは係数でほぼマイコン個体に差はなく、bは同じ型番号のマイコンであってもかなり違った値(10℃以上)になるような記述がありました。PICマイコンも同様なバラつきのある仕様のようです。
***こんなのは無理?***
SOPパッケージ+ボタン電池構成で温度変化にてLEDを点灯させるものとして、「電子工作コンテスト2011」(http://elecontest.com/)に面白そうなのがありました。「エントリーNo.24 鼻ホタル」はAVRマイコンを使い、鼻の穴につめ、鼻息温度の検出でLEDを点灯させるものです。残念ながら、これは12月11日(日)電子工作フェスティバル2011(秋葉原)での受賞を逃したようです。
後田 敏

コメント (1)
PIC12F1822の内蔵温度計はダイオードのVfを利用したものですから補正すれば10~40℃位なら±1℃位で使えそうですよ。
電源電圧に大きく左右されるので、電源電圧を測定して温度換算した方が良いです。
http://www3.airnet.ne.jp/saka/hardware/pic-rtc/pic-rtc001.html
urlは、PIC12F1822の温度の表示をしたものです。
投稿者: 莎華(SAKA) | 2012年3月22日 00:18
日時: 2012年3月22日 00:18