問題発生

大気圧計製作には気圧センサMPL115A2の扱いの難しさやRTC DS3231Sの制御などハードルがある。なんとかクリアして動作までこぎ着けたのが前回である。今回はその第二章というか最終章である。

前回までで色々と仕掛けをして使えるレベルまでして後は基板を作るだけとなった。動作テストをしてみたところ3.7V 895mAhのリチウム電池が一日と持たないことが判明した。消費電流を調べてみたところ常時45mAも流れてる。これだけ電流が流れたらリチウム電池が一日と持たないのは当然の結果である。

電流が46mAも流れてる

電流が46mAも流れてる

再設計

すんさんの掲示板にて、この報告をすると、どこかおかしいとのご指摘をいただいた。よくよく考えてみたら、ばんとさんは省電力モードのものを作った経験がないのである。どこかおかしいのは、当然ばんとさんなんであろう。 😳

そこで省電力を重点に再設計(お勉強)をすることにした。
ハードとソフトはいちから書き直しである。

省電力はCPUの動作を停止させるのが第一歩である。そこで今回はディープな停止モードであるSLEEP_MODE_PWR_SAVEでsleepを設定した。このモードだと低レベルの割り込みとTimer2の割り込みでしか起動しない。Timer2割り込みは、外部割り込みで起動する特別な割り込みで、時計などに使われる32.768kHzのクリスタルの信号を使い省電力モードで動かすのが定番である。大気圧計もRTC DS3231Sの出す32.768kHzの信号を入れ1秒間隔でTimer2の割り込みが入るようにした。さらにプッシュボタンスイッチの読み取りもPCINT(ピンの論理変化割り込み)を利用して、すべて割り込みで処理することにした。
気圧のセンサからの読み取り計算やRTCから時間の読み取りSDへの書き込みなどのタイミングは1秒単位のTimer2の割り込みで処理するようにした。
この対処で劇的に電流が減った。ブレッドボードの回路では2.5mA(1.5mAは電源ユニットのLEDである)まで下がったのである。

電流が2.56mAまで下がった

電流が2.56mAまで下がった

ハードに関しては、ATMega328PにRTC DS3231Sの32.768kHzの信号を入れる場所が分からなかったのだがkugaさんたちのアドバイスで解決を得た。ありがとうございます。

プリント基板設計

製作した回路がこれである。A4の図面いっぱいである。Eagle CAD Liteの描ける基板サイズで収まるかどうか不安である。

回路図

回路図

レイアウト考慮した結果、幸い部品はEagle CAD Liteの範囲で収まりそうなので、部品配置を最優先とし結線できないところはジュンフロンETFE電線で配線することにした。

ボード図

ボード図

プリント基板完成

できあがったのがこれである。

完成

完成

青い銅線がジュンフロンETFE電線である。少し見苦しいが、まぁ良いか・・・ 😎

基板のミス

最近は、日頃の行いが悪いのか一発では動かない。今回も動かなかった。電源が入らないのである。
これは今回使用したFETに問題があった。Eagleにて部品を新規に作ったのだがピンアサインが違ってた。表面実装部品なので勘違いしてしまったのだ。 😥

回路の修正

回路の修正

いちおう完成

まだケースに入れてないが、これにていちおう完成である。長期運用(放置状態)にて大気圧の計測を始める。