The AXP192 is a highly integrated power system management chip, encapsulated in the M5Core2 library with a series of APIs for controlling the power supply of peripheral devices.
Function:
Set the screen voltage to adjust brightness. Valid range for the parameter is 2500-3300.
Syntax:
void SetLcdVoltage(uint16_t voltage)
Example:
#include <M5Core2.h>
void setup() {
M5.begin(); //By default, "M5.begin()" will initialize the AXP192 chip
M5.Lcd.fillScreen(RED);
}
void loop() {
M5.update();
for(int i=2500; i<3300;i++){
M5.Axp.SetLcdVoltage(i);
delay(10);
}
for(int i=3300; i>2500;i--){
M5.Axp.SetLcdVoltage(i);
delay(10);
}
}
Function:
Cut off all power supplies (except for RTC).
Syntax:
void PowerOff()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
M5.Lcd.fillScreen(RED);
delay(1000);
}
void loop() {
M5.Axp.PowerOff();
}
Function:
Deep sleep (the program will restart from the beginning after recovery).
Syntax:
void deepSleep(uint64_t time_in_us)
Parameter | Type | Description |
---|---|---|
time_in_us | uint64_t | Sleep time |
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
M5.Lcd.println("Going to deep sleep for 5 seconds.");
delay(2000);
M5.Axp.DeepSleep(SLEEP_SEC(5));
}
void loop() {
}
Function:
Light sleep (the program will continue execution from the next line after recovery).
Syntax:
void lightSleep(uint64_t time_in_us)
Parameter | Type | Description |
---|---|---|
time_in_us | uint64_t | Sleep time |
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
M5.Lcd.println("Going to light sleep for 5 seconds.");
delay(2000);
M5.Axp.lightSleep(SLEEP_SEC(5));
}
void loop() {
}
Function:
Set the built-in LED: state = 1 for on; state = 0 for off.
Syntax:
void SetLed(uint8_t state)
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
M5.Axp.SetLed(1);
delay(1000);
M5.Axp.SetLed(0);
delay(1000);
}
Function:
Set BUS power mode, 0 for USB/BAT power supply, 1 for external input power supply.
Syntax:
void SetBusPowerMode( uint8_t state )
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
M5.Axp.SetBusPowerMode(0); //Set the Bus power mode for USB/BAT power supply
}
void loop() {
}
Function:
Set speaker power enable.
Syntax:
void SetSpkEnable(uint8_t state)
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
M5.Axp.SetSpkEnable(1); //Power on the speaker
}
void loop() {
}
Function:
Set battery charging current.
Syntax:
void SetCHGCurrent(uint8_t state)
Function:
Read battery voltage.
Syntax:
float GetBatVoltage()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("Bat Voltage:%f\n", M5.Axp.GetBatVoltage());
delay(500);
}
Syntax:
Function:
Read battery current.
float GetBatCurrent()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("Bat Current:%f\n", M5.Axp.GetBatCurrent());
delay(500);
}
Function:
Read VBUS voltage.
Syntax:
float GetVBusVoltage()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("VBus Voltage:%f\n", M5.Axp.GetVBusVoltage());
delay(500);
}
Function:
Read VBUS current.
Syntax:
float GetVBusCurrent()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("VBus Current:%f\n", M5.Axp.GetVBusCurrent());
delay(500);
}
Function:
Read the temperature of the AXP192 chip.
Syntax:
float GetTempInAXP192()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("AXP192 Temp:%f\n", M5.Axp.GetTempInAXP192());
delay(500);
}
Function:
Read the current power consumption of the battery.
Syntax:
float GetBatPower()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("AXP192 Temp:%f\n", M5.Axp.GetTempInAXP192());
delay(500);
}
Function:
Read battery charging current.
Syntax:
float GetBatChargeCurrent()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("Bat Charge Current:%f\n", M5.Axp.GetBatChargeCurrent());
delay(500);
}
Function:
Check if
it is in charging state.
Syntax:
bool isCharging()
Example:
#include <M5Core2.h>
void setup() {
M5.begin();
}
void loop() {
Serial.printf("Charging state:%d\n", M5.Axp.isCharging());
delay(500);
}