Arduino Quick Start
DinMeter battery level related API and example.
#include <M5Unified.h> static constexpr int BAT_PIN = G10; // DinMeter battery sensing pinstatic constexpr float VREF = 3.3f; // ADC reference voltagestatic constexpr int ADC_RESOLUTION = 4095; // 12‑bit resolution (0–4095)static constexpr float DIVIDER = 2.0f; // Voltage divider factor void setup() { // Initialize M5Unified (includes Display, buttons, RTC, power management, etc.) auto cfg = M5.config(); M5.begin(cfg); // Set ADC attenuation for battery pin to achieve full‑scale reading analogSetPinAttenuation(BAT_PIN, ADC_11db); // Initialize Display M5.Display.fillScreen(TFT_BLACK); M5.Display.setTextColor(TFT_WHITE, TFT_BLACK); M5.Display.setTextSize(2);} void loop() { // Read raw ADC value int raw = analogRead(BAT_PIN); // Calculate actual voltage: (raw/4095) * 3.3V * 2 float vb = (raw / float(ADC_RESOLUTION)) * VREF * DIVIDER; // Display voltage M5.Display.fillScreen(TFT_BLACK); M5.Display.setCursor(10, 20); M5.Display.printf("Battery:\n%.2f V", vb); // Update every 5 seconds delay(5000); M5.update();}
After uploading, you can see the following effect: