クラス名: Power
*电源関連の関数は IP5306 チップのレジスタに関連した可能性があります。不明瞭な点があれば IP5306 のレジスタマニュアルを参照してください。*
*IP5306 芯片不支持与旧 M5STACK 硬件通信使用功能时,还要考虑支持失控情况*
按顺序使用:初始化,通信检查和控制,如以下示例所示
M5.Power.begin();
if(!M5.Power.canControl()) {
//can't control.
return;
}
M5.Power.lightSleep(SLEEP_SEC(5));
機能です:
Power クラスの初期化を実行
原型関数です:
void begin()
使用例です:
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
}
void loop() {}
機能です:
电源键の長押し/短押し 2 回による主機の電源 ON/OFF の方式を変更
原型関数です:
bool setPowerBoostOnOff(bool en)
en | 機能です |
---|---|
true | 长押しで主機の電源を ON/OFF |
false | 短押し 2 回で主機の電源を ON/OFF |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
使用例です:
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Power.begin();
if (M5.Power.setPowerBoostOnOff(false)) {
M5.Lcd.println("Changed power on/off method");
} else {
M5.Lcd.println("Failed to change power on/off method");
}
}
void loop() {}
機能です:
電源のオン/オフの操作方法を変更 USB 接続時、電源は OFF にならない
原型関数です:
bool setPowerBoostKeepOn(bool en)
en | 機能です |
---|---|
true | 短押で一括 ON/OFF |
false | setPowerBoostOnOff()方法に従う |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
USB 等の電源が切断したとき、 再び電源を入れるかどうかを決める
原型関数です:
bool setPowerVin(bool en)
値 | 機能です |
---|---|
true | 再び電源を入れる |
false | 電源を入れない |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御成功 |
機能です:
電源 LED を点灯するモードを設定 M5GO の IP5306 は配線が行われていないので、本機能を利用できない
原型関数です:
bool setPowerWLEDSet(bool en)
値 | 機能です |
---|---|
true | 2 回短押で LED を点灯 |
false | 長押で LED を点灯 |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
電源ボタンを認識するかどうかを設定
ボタンを認識しないときの動作: 電源が ON のとき、CPU のリセットのみを受け付ける 電源が OFF のとき、電源を入力できない
原型関数です:
bool setPowerBtnEn(bool en)
値 | 機能です |
---|---|
true | 電源操作を受け付ける |
false | 電源操作を無視する |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
IP5306 が省電力状態を判断し、電源を OFF にするまでの待ち時間を設定
原型関数です:
bool setLowPowerShutdownTime(ShutdownTime time)
値 | 機能です |
---|---|
SHUTDOWN_8S | 8 秒待ち |
SHUTDOWN_16S | 16 秒待ち |
SHUTDOWN_32S | 32 秒待ち |
SHUTDOWN_64S | 64 秒待ち |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
常時出力モードを設定/解除
原型関数です:
bool setPowerBoostKeepOn(bool en)
値 | 機能です |
---|---|
true | 常時出力する |
false | 常時出力しない |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
IP5306 のセカンダリ側の消費電力が発生したときに自動起動するかどうかを設定
原型関数です:
bool setAutoBootOnLoad(bool en)
値 | 機能です |
---|---|
true | 自動起動を有効にする |
false | 自動起動を無効にする |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
充電モードを設定/解除します。バッテリーがフル充電した後、充電を有効にする -> 無効にする -> 有効にするの操作を試みると、充電が可能になります。
原型関数です:
bool setCharge(bool en)
値 | 機能です |
---|---|
true | 充電開始指示 |
false | 充電停止指示 |
戻り値です:
値 | 機能です |
---|---|
true | 制御成功 |
false | 制御失敗 |
機能です:
バッテリーがフル充電かどうかを検出
原型関数です:
bool isChargeFull()
戻り値です:
値 | 機能です |
---|---|
true | フル充電 |
false | 未フル充電 |
機能です:
I2C 通信を通じて、バッテリーコントローラの存在を確認します。
原型関数です:
bool canControl()
戻り値です:
値 | 機能です |
---|---|
true | 电源コントローラが検出 |
false | 电源コントローラが見つからない |
機能です:
充電中かどうかを確認
原型関数です:
bool isCharging()
戻り値です:
値 | 機能です |
---|---|
true | 充電中 |
false | 充電中でない |
機能です:
バッテリーの残量を返却
原型関数です:
int8_t getBatteryLevel()
戻り値です:
返バッテリーの残量を 0/25/50/75/100 のいずれかで返却。 残量を確認できない場合は、-1 を返却。
機能です:
睡眠からの復帰用ポートを設定
原型関数です:
void setWakeupButton(uint8_t button)
値 | 機能です |
---|---|
button | ポート番号 |
使用例です:
setWakeupButton(BUTTON_A_PIN);
機能です:
CPU のリセットを実行
原型関数です:
void reset()
機能です:
現在の動作状態が CPU リセット直後かどうかを判断 (reset()や RTOS の同等処理を実行した後は成立)
原型関数です:
bool isResetbySoftware()
戻り値です:
値 | 機能です |
---|---|
true | ソフトウェアリセット後 |
false | 他の理由 |
機能です:
現在の動作状態がウォッチドッグタイマーのリセット直後かどうかを判断
原型関数です:
bool isResetbyWatchdog()
戻り値です:
値 | 機能です |
---|---|
true | ウォッチドッグリセット後 |
false | 他の理由 |
機能です:
确定当前唤醒状态是否在 deepSleep()之后
原型関数です:
bool isResetbyDeepsleep()
戻り値です:
値 | 機能です |
---|---|
true | 在 deepSleep()之后 |
false | 出于其他原因 |
機能です:
現在の起動状態を、電源スイッチを入力した直後かどうかを判断します。
原型関数です:
bool isResetbyPowerSW()
戻り値です:
値 | 機能です |
---|---|
true | 通過電源開關 |
false | 出於其他原因 |
機能です:
此機能はデバイスを深度睡眠モードに移行します。 指定の時間後、またはポートの状態が変更した後、デバイスが再起動します。 ウェイクアップ後、CPU は再起動され、次の行のコードは実行されません。
原型関数です:
void deepSleep()
使用例です:
5 秒後省電力で再起動
deepSleep(SLEEP_SEC(5));
機能です:
此機能はデバイスを軽度睡眠モードに移行します。 指定の時間後、またはポートの状態が変更した後、デバイスが起動します。 起動後、次の行のコードから実行を継続します。 deepSleep()と比較して、省電力効果は低いです。
原型関数です:
void lightSleep(uint64_t time_in_us)
使用例です:
5 マイクロ秒後省電力を保持しつつ、続行
lightSleep(SLEEP_SEC(5));
機能です:
電源を OFF にします。 省電力機能を利用し、8 秒後 IP5306 を OFF にします。 回路側への電源供給を遮断します。
原型関数です:
void powerOFF()