diff --git a/.cache/clangd/index/movecall_moji_esp32s3.cc.3B5BA625AB6AB0D5.idx b/.cache/clangd/index/movecall_moji_esp32s3.cc.3B5BA625AB6AB0D5.idx index ba8b26b..4732545 100644 Binary files a/.cache/clangd/index/movecall_moji_esp32s3.cc.3B5BA625AB6AB0D5.idx and b/.cache/clangd/index/movecall_moji_esp32s3.cc.3B5BA625AB6AB0D5.idx differ diff --git a/main/boards/movecall-moji-esp32s3/movecall_moji_esp32s3.cc b/main/boards/movecall-moji-esp32s3/movecall_moji_esp32s3.cc index 9aaa05a..dcac8ac 100644 --- a/main/boards/movecall-moji-esp32s3/movecall_moji_esp32s3.cc +++ b/main/boards/movecall-moji-esp32s3/movecall_moji_esp32s3.cc @@ -1228,16 +1228,17 @@ public: } average_voltage_mv /= adc_values_.size(); - float battery_voltage = average_voltage_mv / 1000.0f * 2.0f; + // 修正分压系数:根据满电电池电压4.2V和ADC读数967mV计算得出 + float battery_voltage = average_voltage_mv / 1000.0f * 4.34f; - // 使用固定电压阈值 - const float kVoltage100Percent = 4.0f; // 满电电压 - const float kVoltage75Percent = 3.6f; // 75%电量电压 - const float kVoltage50Percent = 3.3f; // 50%电量电压(功放驱动电压) - const float kVoltage25Percent = 3.0f; // 25%电量电压 - const float kVoltage0Percent = 0.0f; // 0%电量电压 + // 使用锂电池典型电压阈值 + const float kVoltage100Percent = 4.2f; // 锂电池满电电压 + const float kVoltage75Percent = 3.9f; // 75%电量电压 + const float kVoltage50Percent = 3.7f; // 50%电量电压 + const float kVoltage25Percent = 3.5f; // 25%电量电压 + const float kVoltage0Percent = 3.2f; // 0%电量电压(保护电压) - // 基于固定电压计算电量百分比 + // 基于锂电池典型电压计算电量百分比 int battery_percentage; if (battery_voltage >= kVoltage100Percent) { battery_percentage = 100; @@ -1255,8 +1256,8 @@ public: battery_level_ = battery_percentage; - ESP_LOGI(TAG, "ADC: %d, 电压: %.2fV, 电量: %d%%, 满电电压: %.2fV", - average_voltage_mv, battery_voltage, battery_percentage, kVoltage100Percent); + ESP_LOGI(TAG, "ADC: %d, 原始电压: %.2fV, 计算电池电压: %.2fV, 电量: %d%%, 满电电压: %.2fV", + average_voltage_mv, average_voltage_mv / 1000.0f, battery_voltage, battery_percentage, kVoltage100Percent); // 打印Wi-Fi的Mac地址 ESP_LOGI("WiFiMAC", "Wi-Fi MAC Address: %s", SystemInfo::GetMacAddress().c_str());// 生产测试打印