Skip to content

Battery

Tiogaplanet edited this page Jul 15, 2026 · 4 revisions

Here's a very useful function - read MiP's battery voltage.


readBatteryVoltage()

float readBatteryVoltage()

Description

Read MiP’s current battery level.

Parameters

None

Returns

The current battery voltage in Volts.

Notes

  • These status updates are usually sent every 30 seconds or earlier if MiP detects a change in position.

Example

#include <MPU_D1_mini.h>

MiP     mip;

void setup() {
  bool connectResult = mip.begin();
  if (!connectResult) {
    Serial1.println(F("Status.ino: Failed connecting to MiP!"));
    return;
  }

  Serial1.println(F("Status.ino: Display MiP status as it changes."));
}

void loop() {
  static float       lastBatteryLevel = 0.0f;
  static MiPPosition lastPosition = (MiPPosition) - 1;

  float              currentBatteryLevel = mip.readBatteryVoltage();
  MiPPosition        currentPosition = mip.readPosition();

  if (currentBatteryLevel != lastBatteryLevel) {
    Serial1.print(F(" Battery: "));
      Serial1.print(currentBatteryLevel);
      Serial1.println(F("V"));
    lastBatteryLevel = currentBatteryLevel;
  }

  if (currentPosition != lastPosition) {
    if (mip.isOnBack()) {
      Serial1.println(F(" Position: On Back"));
    }
    if (mip.isFaceDown()) {
      Serial1.println(F(" Position: Face Down"));
    }
    if (mip.isUpright()) {
      Serial1.println(F(" Position: Upright"));
    }
    if (mip.isPickedUp()) {
      Serial1.println(F(" Position: Picked Up"));
    }
    if (mip.isHandStanding()) {
      Serial1.println(F(" Position: Hand Stand"));
    }
    if (mip.isFaceDownOnTray()) {
      Serial1.println(F(" Position: Face Down on Tray"));
    }
    if (mip.isOnBackWithKickstand()) {
      Serial1.println(F(" Position: On Back With Kickstand"));
    }

    lastPosition = currentPosition;
  }
}

Clone this wiki locally