diff --git a/src/LoRa_APRS_Tracker.cpp b/src/LoRa_APRS_Tracker.cpp index 1fef671..43fa4a3 100644 --- a/src/LoRa_APRS_Tracker.cpp +++ b/src/LoRa_APRS_Tracker.cpp @@ -45,6 +45,7 @@ void setup() powerManagement.activateLoRa(); powerManagement.activateOLED(); powerManagement.activateGPS(); + powerManagement.activateMeasurement(); #endif delay(500); @@ -97,8 +98,7 @@ void loop() if(send_update && gps.location.isValid() && gps.location.isUpdated()) { - nextBeaconTimeStamp = nowTimeStamp + (BEACON_TIMEOUT * SECS_PER_MIN); - breakTime(nextBeaconTimeStamp, nextBeaconStruct); + powerManagement.deactivateMeasurement(); send_update = false; APRSMessage msg; @@ -118,6 +118,7 @@ void loop() // APRS Data: LoRa.write((const uint8_t *)data.c_str(), data.length()); LoRa.endPacket(); + powerManagement.activateMeasurement(); } if(gps_time_update) diff --git a/src/power_management.cpp b/src/power_management.cpp index 04fb87d..3a998f7 100644 --- a/src/power_management.cpp +++ b/src/power_management.cpp @@ -13,10 +13,6 @@ bool PowerManagement::begin(TwoWire & port) if(!result) { axp.setDCDC1Voltage(3300); - // Enable AXP ADC function - axp.adc1Enable(AXP202_BATT_CUR_ADC1 | - AXP202_BATT_VOL_ADC1, - true); } return result; } @@ -57,6 +53,21 @@ void PowerManagement::decativateOLED() axp.setPowerOutPut(AXP192_DCDC1, AXP202_OFF); } + +void PowerManagement::activateMeasurement() +{ + axp.adc1Enable(AXP202_BATT_CUR_ADC1 | + AXP202_BATT_VOL_ADC1, + true); +} + +void PowerManagement::deactivateMeasurement() +{ + axp.adc1Enable(AXP202_BATT_CUR_ADC1 | + AXP202_BATT_VOL_ADC1, + false); +} + double PowerManagement::getBatteryVoltage() { return axp.getBattVoltage() / 1000.0; diff --git a/src/power_management.h b/src/power_management.h index 43a6cfa..7ac590a 100644 --- a/src/power_management.h +++ b/src/power_management.h @@ -19,6 +19,9 @@ public: void activateOLED(); void decativateOLED(); + void activateMeasurement(); + void deactivateMeasurement(); + double getBatteryVoltage(); double getBatteryChargeDischargeCurrent();