pdf-icon

Arduino Quick Start

2. Devices & Examples

6. Applications

Arduino Nesso N1 Power

Arduino Nesso N1 power management-related API and example program.

Example Program

Compilation Requirements

  • M5Stack board manager version >= 3.2.5
  • Board option = ArduinoNessoN1
  • M5GFX library version >= 0.2.17
  • M5Unified library version >= 0.2.11 (develop branch)

Battery Status

Enable battery charging and display current battery voltage and capacity status.

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
#include "M5Unified.h"

void setup()
{
    auto cfg = M5.config();
    M5.begin(cfg);
    M5.Display.setRotation(1);
    M5.Display.setTextColor(GREEN);
    M5.Display.setTextDatum(middle_center);
    M5.Display.setTextFont(&fonts::FreeSerifBoldItalic18pt7b);
    M5.Display.setTextSize(1);

    M5.Power.setBatteryCharge(true);
    M5.Power.setChargeCurrent(100);
    M5.Power.setChargeVoltage(4200);
}

void loop()
{
    M5.Display.clear();
    int vol = M5.Power.getBatteryVoltage();
    M5.Display.setCursor(10, 30);
    M5.Display.printf("Bat: %dmv", vol);
    int level = M5.Power.getBatteryLevel();
    M5.Display.setCursor(10, 65);
    M5.Display.printf("Level: %d%%", level);
    M5.Display.setCursor(10, 100);
    m5::Power_Class::is_charging_t status = M5.Power.isCharging();
    M5.Display.printf("Charging: %s", status == m5::Power_Class::is_charging_t::is_charging ? "YES" : "NO");
    delay(1000);
}

Grove Port Power Supply

Switch Grove port power supply.

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
#include "M5Unified.h"

void setup() {
  auto cfg = M5.config();
  M5.begin(cfg);
  M5.Display.setRotation(1);
  M5.Display.setTextColor(GREEN);
  M5.Display.setTextDatum(middle_center);
  M5.Display.setTextFont(&fonts::FreeSerifBoldItalic18pt7b);
  M5.Display.setTextSize(1);

  M5.Power.setBatteryCharge(true);
  M5.Power.setChargeCurrent(100);
  M5.Power.setChargeVoltage(4200);
}

bool power_status = true;

void loop() {
  M5.Display.clear();
  M5.Display.setCursor(10, 30);
  M5.Display.println("Grove Power:");
  M5.Power.setExtOutput(power_status);
  M5.Display.setCursor(10, 65);
  M5.Display.printf("%s", power_status ? "ON" : "OFF");
  power_status = !power_status;
  delay(1000);
}
On This Page