wiredFish トップ ⧫ その他の記事 ⧫ u-con Port pata-pata ⧫ 留守番ねこのための空調制御 ⧫ 基礎検討:温度計測
エアコンの自動制御に欠かせない温度計測機能について基礎的な検討を行いました。この検討によって、温度計測に必要なデバイスや回路のイメージを固めたいと思います。
あまり時間もかけられないので、手っ取り早く秋月電子の温度計キット「ブレッドボード・温度計キット 0~99℃」(AE-NJU9252A)を購入して実際に動かしてみることにしました。
キットは次のような主要部品から構成されたシンプルな回路となっていますます。
① 2930L05 … DC+5.5~+20Vを+5Vに変換する3端子レギュレータ
② LM35 … 温度センサ 温度に比例した電圧(10mV/℃)を出力する
③ C552-SR … 2桁の7セグLED
④ NJU9252A … 7セグLEDを直接駆動可能なA/Dコンバータ(新日本無線製 ディスコン)
温度センサ「LM35」は、① +Vs, ② Vout, ③ GNDの3つの端子を持つ温度センサーです。電源電圧(+Vs)は4Vから20Vまで対応し、温度に比例して10.0mV/℃の電圧をVout端子に出力します。0℃が0Vに対応しますので、10℃の時には100mVが出力されます。測定精度は25℃の時0.5℃です。基本的な温度測定範囲は2℃~150℃ですが、Voutを抵抗を介してマイナス電源に接続すると-55℃~150℃までの範囲を測定できます(-55℃のとき-550mVを出力)。キットではマイナス電源を使用せず2℃~150℃測定用の回路となっています。
キットではLM35の出力を100kΩと330kΩで分圧して、A/Dコンバータ「NJU9252A」のアナログ入力端子(INH)に入力しています。NJU9252Aは入力アンプ(オペアンプ)を内蔵していて、INHはオペアンプの+側に接続されています。INL端子はオペアンプの-側、INRはオペアンプの出力に接続されていて、INL、INRに抵抗を接続することで非反転増幅回路として動作するようになっています。
LM35の温度電圧(Vout)は抵抗分圧回路によって約0.76倍に分圧され、NJU9252Aのアナログ入力端子「INH」に入力されます。
INHに入力された温度電圧は、NJU9252A内部のオペアンプとINL、INR端子に外付けされた抵抗(Rf=330kΩ, Rs=100kΩ)で形成される非反転増幅回路によって4.3倍に増幅されます。
以上より、NJU9252AのD/AにはLM35の出力する温度電圧の3.2981倍の電圧が入力されます。
LM35の出力するVoutの最大電圧は1.5V(150℃の時)なので、NJU9252AのA/Dコンバータには最大でVDD=5Vをわずかに下回る4.94715Vの電圧が入力されます。この増幅によりA/D入力の正規化が行われ、十分な分解能が確保されています。
さて、今度は表示系、7セグLED(C552-SR)を見てみたいと思います。C552-SRは2桁の7セグメントLED(SEG A~G)を持ち、各桁には小数点(DP)も表示することができます。
LEDのカソード側は桁ごとに共通となっていて、1桁目(DIG.2)のLEDのカソードは13ピン、2桁目(DIG.1)のLEDのカソードは14ピンから出ています。
A/Dコンバータ「NJU9252A」内では、A/D変換した値を二進化十進数に変換して(BCD変換)、セグメント デコーダーによって7セグLEDを制御するための信号SEG A~Gに変換します。二桁のセグメント値はマルチプレクサによって多重化されSEG A~G端子から出力されます。マルチプレクサは同時にCOM1端子とCOM2端子の出力も制御します。SEG A~Gに1桁目(DIG.2)のデータが出力されている時、COM1には'L'が出力され、COM2はHi-Zとなります。同様に2桁目のデータが出力されている時は、COM1はHi-Zとなり、COM2に'L'が出力されます。
A/Dコンバータ(NJU9252A)のセグメント信号が多重化されていることにより、キットでは7セグLED(C552-SR)の各桁の同種のセグメント信号どうしをショートして、そこにNJU9252Aの出力するセグメント信号を入力します。NJU9252AのCOM1はC552-SRの13ピン(DIG.2のLEDのカソード)、COM2は14ピン(DIG.1のLEDのカソード)に接続します。
温度計キットの仕組みがほぼ理解できたところで、このキットが今回の空調システムに利用できないか考えてみました。
回路を見た瞬間、A/Dコンバータ(NJU9252A)の出力をマイコンのGIPOに入力すれば、キットから線を引き出すだけで温度計測回路が実現できる(温度表示のLEDもそのまま使える?)と思ったのですが、冷静に考えれば、線を引き出すのも面倒です。さらに二つのセグメントLEDの信号線(SEG A~G)はCOM1とCOM2を使って多重化されていますのでそれをデコードする必要もあります。
結局、温度センサーの出力電圧をマイコンにA/Dに入力するという真っ当な方法がベストな方法のようです。結論: 温度検出には温度センサ「LM35」を使用。センサの出力電圧をマイコンのA/Dに入力して温度計測を実現する。
この時点でキットを購入した意味はほとんどなくなりましたが、せっかく買ったので組み上げて実際の動作を検証してみました。組み上げたからには、しばらく残しておきたいし、ブレッドボードは他の用途でも使いたいので、ブレッドボードは使わずにユニバーサル基板に実装しました。
使用した基板は、サンハヤトのICB-86。たいした部品点数でもないので、あまり深く考えずに行き当たりばったりで実装を進めていったところ、終盤に入って実装スペースに苦慮するはめになってしまいました。7セグLEDの実装面積が大きいことを考えていなかったためです。それでも、アクロバティックな空中配線などを駆使して何とか実装を完了しました。
いよいよ火入れとなりますが、現在のところ用意できている測定器はテスターのみ。安定化電源もオシロスコープもありません。恐る恐るACアダプター(DC 6V 2A)を接続して、すぐに切断。発煙、焼ける匂い、異常音など何か異常がないか五感を研ぎ澄まして確認しながら(きわめて原始的)それを数回繰り返し、次第に通電時間を延ばします。7セグLEDは表示値はともかく、なんらかの値が表示されています。電源ラインのショートなど、破壊的なミスはなさそうなので、通電状態を維持したままテスターで電源周りをチェック。やはり電源周りは問題なさそうです。
次にやるべきことは、A/Dコンバータ「NJU9252A」のフルスケール調整。温度センサ「LM35」が10mV/℃の電圧を出力しますが、それを7セグLEDで直読できるように校正します。校正時には、LM35の出力ピン(Vout)を浮かして代わりに、39kΩと8.2kΩの金被抵抗で5Vを分圧した870mVを回路に入力します。この時7セグLEDが87を表示するようにNJU9252AのVref(17ピン)に接続した10kΩのボリュームで調整します(870mV=87℃)。ところが、ボリュームを回し切っても調整が取れません。どうやらボリューム自体が不良の様です。データシートを見るとボリュームは220°ぐらい回転できるはずですが、キットに付属していたボリュームは90°ぐらいしか回転しません。そこでボリュームとGND側の間に47kΩの抵抗を付けて対応しました。
アルコール式温度計(±1℃の精度)で27.0℃の時、温度計キットも27℃を表示しました。温度が変化したときのデータは記録をとっていませんがおおよそ±1℃の範囲で測定できているようです。
温度測定については、まだいくつか検討すべき課題が残っています。
① センサー出力の増幅 … LM35の出力は10mV/℃なのでそのままでは、A/Dの分解能が十分に確保できないかもしれません。おそらくセンサーとA/Dの間にアンプが必要となると思われますが、詳細は使用するマイコンを確定した後で検討したいと思います。
② ノイズ対策 … 秋月電子の温度計キットでは、センサー出力にノイズ除去のためのパスコンなどはついていませんが、もしかするとノイズ除去が必要になるかも知れません。これについては、試作の結果を見て判断したいと思います。
③ 発熱対策 … 基板の温度上昇やケースに収納した場合に熱がこもり温度測定誤差が生じるかもしれません。これについても、試作の結果を見て判断したいと思います。