Average battery ADC samples

- Read battery 5 times and average for a steadier voltage estimate
This commit is contained in:
2026-02-02 23:28:54 +01:00
parent 2199627a35
commit b8a4c27daa
2 changed files with 7 additions and 3 deletions

View File

@@ -34,8 +34,12 @@ void power_configure_unused_pins_sender() {
}
void read_battery(MeterData &data) {
uint32_t raw = analogRead(PIN_BAT_ADC);
float v = (static_cast<float>(raw) / 4095.0f) * ADC_REF_V * BATTERY_DIVIDER * BATTERY_CAL;
uint32_t sum = 0;
for (uint8_t i = 0; i < 5; ++i) {
sum += analogRead(PIN_BAT_ADC);
}
float avg = static_cast<float>(sum) / 5.0f;
float v = (avg / 4095.0f) * ADC_REF_V * BATTERY_DIVIDER * BATTERY_CAL;
data.battery_voltage_v = v;
data.battery_percent = battery_percent_from_voltage(v);