Arduino 上手教程
DinMeter 电池电量相关API与案例程序。
#include <M5Unified.h> static constexpr int BAT_PIN = G10; // DinMeter 电池检测引脚static constexpr float VREF = 3.3f; // ADC 参考电压static constexpr int ADC_RESOLUTION = 4095; // 12 位分辨率 (0~4095)static constexpr float DIVIDER = 2.0f; // 分压系数 void setup() { // 初始化 M5Unified(包含 Display、按键、RTC、电源管理等) auto cfg = M5.config(); M5.begin(cfg); // 配置电池引脚的 ADC 衰减,以获得满量程读取 analogSetPinAttenuation(BAT_PIN, ADC_11db); // Display 初始化 M5.Display.fillScreen(TFT_BLACK); M5.Display.setTextColor(TFT_WHITE, TFT_BLACK); M5.Display.setTextSize(2);} void loop() { // 读取原始 ADC 值 int raw = analogRead(BAT_PIN); // 计算实际电压: (raw/4095) * 3.3V * 2 float vb = (raw / float(ADC_RESOLUTION)) * VREF * DIVIDER; // 显示电压 M5.Display.fillScreen(TFT_BLACK); M5.Display.setCursor(10, 20); M5.Display.printf("Battery:\n%.2f V", vb); // 每 5 秒更新一次 delay(5000); M5.update();}
上传完成就可以看到下面的效果了