# battery_voltage 电池电压监测 ## 概述 `battery_voltage` 用于监测电池电压,基于 ESP32S3 的 ADC(模数转换器)功能。通过测量电池电压,计算出电池的剩余电量百分比。 **支持功能:** - **电压测量:** 通过 ADC 测量电池电压。 - **电量计算:** 根据电压值计算电池的剩余电量百分比。 - **校准功能:** 用于补偿 ADC 和电池电压的测量误差。 ## 硬件要求 - 电池电压分压电路,将电池电压分压到 ADC 输入引脚。 ## 使用方法 ``` c // 在tjl_battery_voltage.h中修改下面的参数配置 /* ADC 配置 */ // #define ADC_CHANNEL ADC1_CHANNEL_2 // adc1 通道 GPIO3 // #define ADC_ATTEN_DB ADC_ATTEN_DB_12 // 衰减 // #define ADC_WIDTH_BIT ADC_WIDTH_BIT_12 // 12 位分辨率 // #define ADC_UNIT ADC_UNIT_1 // 单通道 ADC // #define ADC_SAMOLING_COUNT 500 // 采样次数 // #define DEFAULT_VREF 1100 // 默认内部参考电压 (mV) // /* 电池配置 */ // #define R1 300000.0f // 分压电阻 1 // #define R2 300000.0f // 分压电阻 2 // #define BATTERY_MIN 3.7f // 电池最低电压 (V) // #define BATTERY_MAX 4.2f // 电池最高电压 (V) // #define ADC_OFFSET 0 // ADC 偏移电压 (V) 200 // #define VOL_OFFSET 0.39f // 电池补偿电压 (V) #include "tjl_battery_voltage.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #define TAG "battery_monitor" void app_main() { // 初始化电池监测模块 battery_monitor_init(); while (1) { float adc_raw_value = get_adc_voltage(); float voltage = get_battery_voltage(adc_raw_value); float percentage = get_battery_percentage(voltage); ESP_LOGI(TAG, "Battery Voltage: %.2f V", voltage); ESP_LOGI(TAG, "Battery Percentage: %.2f%%", percentage); vTaskDelay(pdMS_TO_TICKS(1000)); } } ``` ## 依赖项 - ESP-IDF >= 5.3.1 ## 许可证 本项目采用 MIT 许可证。更多信息请参阅 [LICENSE](LICENSE) 文件。 ## 贡献 欢迎任何形式的贡献,包括但不限于代码改进、文档更新、问题反馈等。请通过 GitHub 提交 Pull Request 或 Issue。 ## 作者 ## 历史版本 - 1.0.0 初始版本
idf.py add-dependency "linqq001/tjl_battery_voltage^1.0.6"