湿度を加湿器にフィードバックして制御する装置

2014.2.3 7M4MON



1.概要

うちの加湿器は安物なので、動作は「弱」、「強」、「切」の3通りしかない。
そこで、湿度を読み取り、設定した湿度になるよう加湿器を制御する装置を作った。

・SETキー押しながら電源ONでUARTで温度・湿度を送信し、ロガーになるようにした。
・ヒステリシスは±2%とした。
・更新は約1回/秒
・SETキーで動作中に目標湿度を変更できる。設定値を内蔵EEPROMに保存。


2.ハードウェア

湿度センサ「DHT11」を使用。
マイコンはPIC16F648Aを使用。
加湿器のON/OFFは953-1C-5DG-1を使用。

すべて秋月で売ってる。

/***************PINについて******************
A0からA7までは7セグ表示として使う
A4はオープンドレイン出力
ただし、A5(入力専用ピン)はSETキー
RB7とRB6は7セグの桁切り替え
RB5は状態表示(RB3と同じ)
RB4はDHT11通信
RB3はSSR制御
B1,B2はTX,RXとして使う(A5押しながら電源ONでロガーモード)
B0はSETキー(外部割り込みは使用しなくなった)
*****************************************/


3.ソフトウェア

DHT11との通信部はezflyr氏によるもの。
http://www.ccsinfo.com/forum/viewtopic.php?p=180731

/************スレッドについて******************
①PIC16シリーズは多重割り込み不可…
bExitがタイマ割り込みなので、read_humi()はメインスレッドに書く
②SETキーを割り込みにすると、その間の表示が止まってしまうので
表示はタイマ割り込みにする。
2つのタイマ割り込みは排他利用にする。
read_humi()時は表示を消す
*****************************************/

ソースコードはこちら。HEXはこ ちら


4.その他

・最初は加湿器(定格350W)の制御にSSRキット25Aタイプを使っていたが、15x25x11mmの放熱器では
 触れられないほど熱くなってしまったのでリレーに変更した。

・PIC16シリーズは多重割り込み禁止なのに気付くのが遅く、セットモードがうまく動かないと難儀していた。

・A4ポートはオープンドレイン出力だったのね。

・7セグ×2のLEDはダイナミック点灯で約60回/秒。