Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC10F322過放電防止回路 + 18650 + ESP8266 – PICをSLEEPさせる –

PIC10F322過放電防止回路 + 18650 + ESP8266 – PICで電源管理 –」の続き。
観測のインターバルが5分とか10分となると、ESP8266への電源を切っている間のPIC10F322自体の消費電力も無視できなくなる。
そうなると、SLEEP();だ。
タクトスイッチを押して起こす例は、「PIC10F322 扇風機のリモコンのクローンを作る 2 SLEEPさせる」で扱った。
勝手に自分で起きるということも出来るんだろうか?

調べてみる。

とりあえず一番最初に目についたのは、WDT(Watch Dog Timer)を使うこと。
WDTというのは文字通り番犬で、一定時間相手をしてやらないでいると、リセットする仕組みのこと。

PIC使い始めの頃、OFFにしてなくて勝手にリセットされて、さんざん悩まされた記憶がある。
そのせいで、必ずOFFにしてしまっているので、使い方とか詳細は全く知らない。

必ずResetなのかと思っていたが、SLEEPからの復帰時にはそうでもないようだ。

1回の設定時間は自由に決められるわけではなく、2の乗数で決まり、最長で256秒までだ。
例えば、1秒の設定で10回寝起きを繰り返させればほぼ10秒になるので、まあそこそこの精度で良ければどんなインターバルも作れる。
多少煩雑だが、非常に簡単ですぐに実装できる。

一方で、タイマー割り込みなら、測定やデータの転送にかかる時間が変動しても、それを吸収してくれる。
結果として、常に等間隔で観測が行われる。
WDTの難点は、このズレによって、実行間隔が変動することだろう。

ともあれ、SLEEP時の消費電流を実測したら、最大でも3μAそこそこだった。
この安物のDMMで3μAとかいう測定値は意味あんのか、って思うレベル。

そういうレンジがあるから3μAとか言ってるけど、正直、「電流は消費しないです。」と言ってしまってもいい。
そこらの100均2次電池だったら、自然に放電していく分の方が多いかも。
なお、「ESP8266モジュール(ESP-WROOM-02)を試す その13 Deep-Sleep」で測定したESP8266のDeep-Sleep時の消費電流は17μA程度だったので、PIC10F322の方が優秀だ。

このエントリーをはてなブックマークに追加

Posted under: ESP8266, PIC10F322


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.