pdf-icon

Arduino入門

2. デバイス&サンプル

6. アプリケーション

Chain DualKey Power 電源管理

Chain DualKey の電源管理に関する API とサンプルプログラムです。

サンプルプログラム

ビルド要件

  • M5Stack ボードマネージャーのバージョン ≥ 3.2.4
  • 開発ボードの設定 = M5ChainDualKey
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#define PIN_ADC_CHRG 9
#define PIN_ADC_BATT 10
#define PIN_ADC_VBUS 2

float chgVoltage;
float batVoltage;
float usbVoltage;

void setup() {
  pinMode(PIN_ADC_CHRG, INPUT);
  pinMode(PIN_ADC_BATT, INPUT);
  pinMode(PIN_ADC_VBUS, INPUT);

  Serial.begin(115200);
}

void loop() {
  chgVoltage = analogRead(PIN_ADC_CHRG) / 4095.0 * 3.3;
  batVoltage = analogRead(PIN_ADC_BATT) / 4095.0 * 3.3 * 1.51;
  usbVoltage = analogRead(PIN_ADC_VBUS) / 4095.0 * 3.3 * 1.51;

  if (chgVoltage >= 1.4 && chgVoltage <= 1.8) {
    Serial.println("Battery is charging");
  } else if (chgVoltage > 1.8 && chgVoltage <= 2.4) {
    Serial.println("Battery is full");
  } else if (chgVoltage > 3.0) {
    Serial.println("Battery is not charging");
  } else {
    Serial.println("Battery charging status is unknown");
  }

  Serial.printf("Battery voltage: %.4f V\n", batVoltage);  // Unit: V
  Serial.printf("    USB voltage: %.4f V\n", usbVoltage);  // Unit: V

  Serial.println();
  delay(1000);
}

本プログラムは、バッテリーの充電状態、バッテリー電圧、USB 入力電圧を検出し、Serial Monitor へ 1 秒ごとに出力します。

充電について
外部電源に接続されている限り、スイッチ位置に関係なくバッテリーは充電されます。
On This Page