« パナソニックeneloopスタンダード単3「BK-3MCC」60%(72分)放電 2800回で終了 | トップページ | Arduinoのスケッチ floatの乗算と除算の速度 »

2021年12月10日 (金)

DHT11を使った出窓の結露対策用ヒータ制御回路

出窓の結露対策用ヒータ制御回路 のセンサーがおかしなことに
なっているのに気付いたのが11月29日。
湿度センサー「DHT11」がやってきた・・・けど!? を乗り越えて、
やっと回路と「スケッチ」が完成形に。
こんな回路に落ち着きました。
H11_20211210154301

ユニバーサル基板に組んだ回路を密閉容器に入れてます。
センサーは外出し。
11_20211210154401
  ※前に作ってあった回路を手直ししただけ。
   ガラス窓越しですが、長い間日光に当たって
   いたんで、以前のケースはモロモロに。
   ひどい状態の写真を撮る前に捨てちゃいました。
   珍しい状態(現象出現に時間がかかる)はなんでも
   記録に残さないかんかなぁ。

DHT11が出すデータ列はそのパルス幅で1/0が決まります。
今回のスケッチは、その測定に0.5μs(2MHz)クロックにした
タイマー1の「インプットキャプチャ」機能を使いました。
↓エッジ間のパルス数から1/0を判断しています。

Lレベル50μsの後に、データが0なら25μsのHパルス、
データが1なら70μsのHパルスとなっていて、その中間の
100μs、タイマー1のクロック数で200を判断の基準にして
1/0を判定しています。

オシロで見たその様子です。
B001_20211210154501

20ms幅の開始信号の後、DHT11からデータ列が出ています。
データ取得の間、割り込みは禁止していませんので、
1ms周期のタイマー割り込みとA/D変換割り込みは普通に
走っています。

データ列の終端付近を拡大してみると、
B002_20211210154501
DHT11のパルス間隔は勝手にハード(タイマー1)がカウントし
てくれますので、ソフトは↓エッジが来るのを待つだけ。

Adafruitのライブラリだと、ソフトでループカウンタを回すので
割り込み禁止にしておかないと、カウント値が狂います。
インプットキャプチャを使ってのパルスカウントはこんな時に
ためにあるようなものです。

最後の方で、整数の湿度データをfloatへ変換をしていますが、
その処理時間がどんなものかが見えています。

さて、実際に出窓へ置いて試運転です。
センサーの寿命がどんなものかが気になります。

※現在のスケッチ(txtにしています)
    ダウンロード - humidity3.txt

 

|

« パナソニックeneloopスタンダード単3「BK-3MCC」60%(72分)放電 2800回で終了 | トップページ | Arduinoのスケッチ floatの乗算と除算の速度 »

出窓」カテゴリの記事

Arduino」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« パナソニックeneloopスタンダード単3「BK-3MCC」60%(72分)放電 2800回で終了 | トップページ | Arduinoのスケッチ floatの乗算と除算の速度 »