站内搜索
发作品签到
专业版

电池电量检测仪 v1.1

工程标签

907
0
0
0

简介

基于 STC8G1K08A 的ADC检测电池电压应用

简介:基于 STC8G1K08A 的ADC检测电池电压应用
复刻成本:4

开源协议

GPL 3.0

创建时间:2025-09-11 13:09:19更新时间:2025-09-17 10:04:48

描述

原作:电池电量检测仪

原作:电池电量检测仪

因为原作品没看到附件,所以自己用网上资料+AI写了一份

调试过程问题重重,最终还是搞出来了

左边百分比代表碱性碳性电池剩余量 右边百分比代表镍氢电池剩余量

 

特性:

1. 基于 STC8G1K08A + ST7735的 0.96 TFT显示,成本极低

2. 单节碳性碱性、镍氢电池驱动

3. 当电池电压过低,无法完成升压时,可外接typec供电(不过这时候电池基本上也放不出电了,仅做电池电压参考)

4. 外置供电防倒灌,防止LDO给电池充电

5. 两种电池的百分比显示(碱性碳性1.5V、镍氢电池1.2V)

 

列出调试过程中遇到的问题,供参考

问题 原因 解决方法
在板上无法烧录 单片机VCC电容充电导致无法进入烧录模式 烧录、调试前把VCC 10uF电容拆了
栅极有3.3V电压 PW5100升压后,从LDO输出倒灌到输入,进而倒灌到AO3401栅极 已在板上添加1N5819二极管截止
3.3V倒灌到电池 LDO降压后的输出,通过PW5100的输出倒灌到输入,进而倒灌到电池 已通过AO3401体二极管进行截止
显示屏部分字符乱码 未知,神秘bug 暂无
显示屏上部和左部有部分像素行像素列花屏 与屏幕偏移有关

不清楚

显示屏反色 与屏幕驱动代码有关

不清楚

 

第一次玩这种51单片机,代码仅供参考,这个ST7735的驱动也是在网上找半天,看得一头雾水(被esphome和arduino惯坏了),好在最终还是能跑起来

有两个电路板,一个对应PFC焊接款(13P),一个对应PFC插拔款(8P 长排线)

均为ST7735 0.96寸 TFT-LCD

电池壳买那种单节电池插针焊接式5号单节插座(负极为弹簧)的款式即可,兼容7号电池

 

碱性、镍氢电压电量曲线算法参考:

// 碱性电池电量计算函数
float convertAlkalineVoltageToCapacity(float v) {
    if (v >= 1.55)
        return 100.0; //static value
    else if (v <= 0)
        return 0.0; //static value
    else if (v > 1.4)
        return 60.60606*v + 6.060606; //linear regression
    else if (v < 1.1)
        return 8.3022*v; //linear regression
    else
        return 9412 - 23449*v + 19240*v*v - 5176*v*v*v; // cubic regression
}

// 镍氢电池电量计算函数
float convertNimhVoltageToCapacity_mv(u16 v_mv) {
    if (v_mv >= 1400) {
        return 100.0f;
    } else if (v_mv > 1220) {
        return 90.0f + (10.0f * (v_mv - 1220) / (1400 - 1220));
    } else if (v_mv > 1150) {
        return 15.0f + (75.0f * (v_mv - 1150) / (1220 - 1150));
    } else if (v_mv > 1000) {
        return 15.0f * (v_mv - 1000) / (1150 - 1000);
    } else {
        return 0.0f;
    }
}

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
电池电量检测仪.zip
40
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航