暫く前にM5Stamp TimerPowerを買っていたが放置していたのを試してみた。
公式ドキュメントを見るタイミングでメンテナンスになっていたのか404でどうしょう?ってなったけど次の日には復旧していた。
サンプルコードはこちらにある。
M5Atomでの例なのでM5Atom Liteと接続する。
配線はこの様にする。
TimerPower | M5Atom Lite | 備考 |
---|---|---|
SCL | G21(SCL) | 4.7KΩプルアップ |
SDA | G25(SDA) | 4.7KΩプルアップ |
5V OUT | 5V | |
GND | GND | |
HOLD | G19 | |
3V3EN | G23 | |
BAT IN | リチウムバッテリープラス側 | |
GND | リチウムバッテリーのマイナス側 |
BAT INは3.7Vを想定している様でとりあえずエネループ3本を使用した。
TimerPowerがGROVEコネクタ対応だったのでGROVEコネクタで試したがWireはG21, G25の組み合わせになっていてはまった。
おまけにプルアップしてなくて通信がうまくいってなかった。
動作
動作は次の様になっている。
- TimerPowerのボタンを押す。
- これでバッテリーからDC-DCコンバータで5Vが供給されM5Atom Liteが動作する。
- M5AtomのIO出力がされるまで押さないと電源が切れてしまう。
- M5AtomがRTCとI2C通信できるとLEDが緑色になる。
- 通信が失敗するとLEDが紫に色になる。
- M5Atomのボタンを押す
- LEDが青色になる。
- 3V3ENをLOWにするので3V3 OUTの出力が停止し0Vになる。
- M5Atomのボタンを押す
- LEDが白色になる。
- 3V3ENをHIGHにするので3V3 OUTの出力がでて3Vになる。
- M5Atomのボタンを押す
- RTCに2秒後にWAKE UPする様にセットしHOLDをOFFにし5V OUTが停止しM5Atomの電源が切れる。
- 2秒後
- RTCからTimerPowerがWAKE UPされ再びM5Atomの電源が入る。
- M5Atomのボタンを長押し
- LEDが赤色になる。
- ボタンを離すと電源が切れる。次の起動はTimerPowerのボタンで投入する必要がある。
TimerPowerの出力が切れるので今までM5Atomをdeep sleepさせてもぶら下がっているセンサーやデバイスのせいで待機電流が下がらないのを解決できそう。
TimerPowerのボタンを押して最初の電源を投入したが、WAKE入力があるのでそこから引き出してスイッチと接続して電源投入スイッチとして使うのがよさそう。
5VINから供給するとバッテリーを充電してくれる。多分。
rtc.WakeAfterSeconds(2);
の秒数を変えるとインターバルを変更できる。