uploaded 4 days ago
battery_voltage

readme

# 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 初始版本


Links

Supports all targets

License: MIT

To add this component to your project, run:

idf.py add-dependency "linqq001/tjl_battery_voltage^1.0.6"

or download archive

Stats

  • Archive size
    Archive size ~ 42.62 KB
  • Downloaded in total
    Downloaded in total 5 times
  • Downloaded this version
    This version: 1 time

Badge

linqq001/tjl_battery_voltage version: 1.0.6
|