ホーム > 家族のギャラリー > PIC電子工作 > 温度コントローラ

2010.8.28記

温度コントローラ

温度コントローラ 納豆やヨーグルトなどの発酵食品を作るために温度を一定に保つコントローラを作ってみた。温度を測定して、ヒータのオン/オフを行って調整する単純なもの。タイマー機能を持たせ、時間になるとアラームを鳴らしてオフになる。

発酵器の本体をどうするか悩んだ末、以下のサイトを参考にさせて頂き、タオルウォーマを利用することにした。素晴らしいアイデアに感謝。

 ■ 発酵(醗酵)器を作る ■ タオル蒸し器がお勧めです 自作,作り方


回路図

回路図

制御用のプロセッサはPIC16F886、AD変換の基準電圧用にLM336(2.5V)、温度センサはLM35D、温度センサの電圧増幅用にOPアンプのLM358を使用。ヒータの電源オンオフには、秋月のソリッドステートリレーを使用した。

表示部は7セグLED4個で、温度2桁、時間2桁を表示する。

表示基板

表示基板

左端で光っているのはLED付きタクトスイッチ。これと4つの7セグLEDの表面にはキズを防ぐためのマスキングテープが貼ってある。

7セグの左2桁は温度表示、右2桁は時間表示。黄色と白色のタクトスイッチは、温度設定と時間設定のアップ/ダウンに使う。

本体基板

本体基板

PIC16F886は4MHzクリスタルで動作。上にある8ピンDIPはオペアンプ。右端はトランスレス電源。

4MHzのクロックから1秒を作るためにCCP1モジュールを使用。4ms毎に割り込みがかかるようにして、250回で1秒。4msの割り込みでLEDのダイナミック表示も実行している。また、アラームの圧電ブザーを鳴らすためにCCP2モジュールを使用。

プログラム

基本的な動作は、温度と時間を設定してスタートスイッチを押すと、AC出力がオンになりヒータを温める。温度が設定温度になるとAC出力をオフ、設定温度より下がると再びオンすることで温度を一定にする。温度測定とオンオフの制御は毎秒行う。設定時間になるとアラームを鳴らしてオフになる。動作中は、庫内の温度とタイマの残り時間を表示する。

設定温度と時間は、EEPROMに記憶させ、次回にはその値がデフォルトとなる。温度は25℃〜50℃、時間は1時間〜48時間の設定ができる。もちろん冷やす機能はないので、外気温より低い温度を設定してもその温度にはならない。


ケース

ケース

ハードとプログラムのデバッグがなんとか終盤にかかってきたのでケース作りに着手。

今回、タカチの塗装済みのアルミケースを使う。

ケース加工

ケース加工

前面にはLEDやスイッチのための穴開け、後ろはフューズホルダやアウトレットコンセントなど。四角い穴は、ドリルで穴開け後にハンドニブラで囓って、ヤスリ仕上げ。

まだ、ケースの表面にキズ防止のフィルムが貼ってある。フィルムをはがしても穴開けした断面がアルミ剥き出しなので、フィルムをはがした後で全体を黒ラッカで塗装した。

表示基板

表示基板

7セグLEDやスイッチなどの表示基板とケースの穴の位置合わせ。ヤスリでやすって微調整した。

電源スイッチ

電源スイッチ

電源スイッチに適当なスイッチがなくて、基板直付け用のロッカースイッチを利用。1.5ミリ厚のアルミ板で支持用の金具を作る。

こんな工作にも結構手間がかかり、作業が進まない一因。

電源スイッチ

電源スイッチ

こんな感じで前面パネルにスイッチが顔を出す。AC100Vのスイッチなので端子側は熱収縮チューブで絶縁をしっかり行う。

本体基板

本体基板

トランスレス電源の動作を確認したら、5.1Vのツェナーダイオードが発熱したので、コンデンサの容量を2.2uFから1.5uFに減らすことにした。(上の方の写真と比べると小さくなっている)

多少電圧が下がったが、4.9V程度なので動作には問題はなし。消費電流はMaxで38mA程度。

ケースに収めた

ケースに収めた

本体基板、表示基板、電源スイッチ、フューズフォルダ、ACアウトレットなどを取り付けた様子。


温度センサ

温度センサ

シールドケーブルの先に温度センサを取り付け、エポキシ系接着剤で固めたのち、熱収縮チューブを被せた。水がかかっても大丈夫だと思う。

この出力電圧をOPアンプで約4倍にし、2.5Vの基準電圧でAD変換(10ビット)し、上位8ビットが0.25℃単位の温度になる(詳しくはソース参照)。よって温度測定の分解能は 0.25℃、表示は四捨五入して1℃単位に行う。

調整中

調整中

秋月で買ったデジタル温度計をリファレンスにして、オペアンプの増幅率を調整した。リファレンスの温度計が結構あやしいので精度は±1℃くらいか。

右側の時間表示が2になっているのは偶然で、28.2℃を表しているわけではない。

発酵器本体

発酵器本体

長時間通電し続けるので、発泡スチロールのトロ箱電球の組み合わせでは火災が心配だったのと、見た目もキレイに作れそうになかったのでタオルウォーマは最適。ネットで探したら7千5百円で新品が購入できた(送料込み)。容量は12リットル。

ちなみに、近所の厨房用品のリサイクルショップでは錆びがでているものが2万円もしていた。ヤフオクだと2〜5千円くらい。

温度推移(単純オンオフ制御)

温度推移(単純オンオフ制御)

温度変化の様子をPICマイコン内のEEPROMに記録するロギングモードを用意し、庫内の温度変化を見てみた。EEPROMの内容はPIC KIT2で読み出した。

左のグラフは設定温度の0.5℃下(42℃なら41.5℃)でAC出力をオンオフした結果。最初の温度上昇に慣性があって(ヒータへの通電とヒータ温度上昇の時間差、さらにヒータ温度と庫内温度の時間差の影響)、設定温度の42℃(赤い線)を4℃も越えてしまった。その後、温度がなかなか下がらない(外気温が28℃程度あることも影響)。

温度推移(温度上昇の傾きを考慮)

温度推移(温度上昇の傾きを考慮)

温度上昇が急峻な場合には早めに通電をオフして、その後は慣性で上昇するのを待つようにしたら結構上手く行った。

具体的には、1分前の温度と現在の温度から温度上昇の傾きを求め、傾きに応じて(取りあえず傾きの2倍;傾きが2℃/分なら4℃)通電オフの閾値温度を下げるようにした。

左グラフは定常状態になってから少し高めの温度で推移している。

温度推移(移動平均)

温度推移(移動平均)

もう少し改善。通電オンオフの閾値を設定温度より0.25℃低くするのと、オンオフの温度を過去4回分(4秒間)の移動平均とするようにした。左のグラフの温度は移動平均温度ではなく、毎回測定した温度そのまま。

設置温度になる直前が少しもたつく感じがあるが、その後の温度はかなり一定となったので、これを採用。

完成

完成

白文字のインレタがなかったので、カシオネームランドの透明テープ白文字ラベルで文字を入れた。遠目にはインレタに見える。

AC出力がオンのとき、温度表示LEDの右下ドットが点灯し、通電していることが判る。また、時間表示のドットは、1秒毎に点滅してカウントダウン中であることを表示。

安全対策

安全対策

長時間通電し、その間不在になることもあるので安全に使えることが大事。全体の安全対策は以下の通り。

・マイコン暴走はワッチドッグタイマ(WDT)で監視し、停止
・電圧低下はマイコンのブラウンアウトリセット(BOR)で停止
・温度が55℃を越えたら強制停止【左写真】
・タオルウォーマのサーモスタット(60℃位)
・最後の砦はタオルウォーマの温度フューズ


発酵器

諸元
  • 設定温度:25℃〜50℃
  • 設定時間:1時間〜48時間
  • 稼働中表示:START/STOPスイッチLED点灯、時間LEDのドット点滅
  • 通電表示:温度表示LEDのドット点灯(点灯時、AC出力オン)
  • 終了表示:時間表示LEDにOF.表示、アラーム5秒間
  • エラー表示:時間表示LEDにE1.(WDTエラー)、E2.(55℃越え)
  • 制御電力:AC100V 200W迄
  • その他:
    • 温度測定と表示は、終了後やエラー後も継続
    • ロギングモード:温度変化の記録(電源投入時に時間・温度設定スイッチを押しておく)

タオルウォーマは結構断熱性があるようで、内部が42℃になっても本体の外側はそれほど暖かくならない。また、設定温度になるとヒータへの通電時間はほんの僅かで消費電力は少ない。

発酵器を使った納豆作りの様子は、DIYの記録 発酵器と納豆作りに載せました。

最後に、回路図と、プログラムソースです。いずれもバグがあるかも知れません。無保証です。

以上


from Metal Woods(c) 2010