pdf-icon

Arduino 上手教程

Power

M5CoreS3 电源管理相关API与案例程序。

案例程序

配置电源输入模式

该模式下可通过Grove接口或DC电源接口为设备供电。(CoreS3 Base DIN底座需将电源开关切至ON)

#include "M5CoreS3.h"

void setup()
{
    auto cfg = M5.config();
    // if using ext power input(Grove Port or DC input power supply) needs to be set to false.
    cfg.output_power = false;
    CoreS3.begin(cfg);
}

配置电源输出模式

该模式下Grove接口将对外输出供电, 默认初始化情况下为该模式。

#include "M5CoreS3.h"
void setup()
{
    auto cfg = M5.config();
    cfg.output_power = true;
    CoreS3.begin(cfg);
}

电源状态读取

#include "M5CoreS3.h"

void setup()
{
    auto cfg = M5.config();
    // if using ext power input(Grove Port or DC input power supply) needs to be set to false.
    // cfg.output_power = false;
    CoreS3.begin(cfg);
    CoreS3.Display.setTextSize(2);

    CoreS3.Power.setChargeCurrent(200);
}

void loop()
{
    CoreS3.Display.clear();

    bool bat_ischarging = CoreS3.Power.isCharging();
    CoreS3.Display.setCursor(10, 30);
    CoreS3.Display.printf("Bat Charging: %d", bat_ischarging);

    int bat_vol = CoreS3.Power.getBatteryVoltage();
    CoreS3.Display.setCursor(10, 50);
    CoreS3.Display.printf("Bat Voltage: %dmv", bat_vol);

    int bat_level = CoreS3.Power.getBatteryLevel();
    CoreS3.Display.setCursor(10, 70);
    CoreS3.Display.printf("Bat Level: %d", bat_level);

    int vbus_vol = CoreS3.Power.getVBUSVoltage();
    CoreS3.Display.setCursor(10, 90);
    CoreS3.Display.printf("VBus Voltage: %dmv", vbus_vol);
    delay(1000);
}

API

M5CoreS3库基于M5Unified库实现, 电源部分使用了M5Unified库中的Power_Class, 更多相关的API可以参考下方文档:

On This Page