久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1864|回復(fù): 11
收起左側(cè)

自制充電盒子 關(guān)于充放電電量指示燈顯示不一致的問題 附單片機(jī)程序

[復(fù)制鏈接]
ID:1065407 發(fā)表于 2023-3-6 14:54 | 顯示全部樓層 |閱讀模式
大家好,我現(xiàn)在使用STC8H1K08設(shè)計(jì)一個(gè)充電盒子,盒子內(nèi)置一顆可充電的鋰電池,容量是500mAh,盒子外面有4個(gè)LED電量指示燈,使用單片機(jī)內(nèi)置的ADC檢測電池電壓。當(dāng)盒子插入U(xiǎn)SB 5V充電時(shí),根據(jù)電池電量的高低就會顯示相應(yīng)的LED,電池電量越高顯示(打開)的LED就越多,反之,越少,當(dāng)盒子充滿電時(shí)4個(gè)LED常亮。當(dāng)盒子不充電(也就是放電)時(shí),可通過短按盒子上面的按鍵顯示當(dāng)前電池的電量指示燈。我現(xiàn)在遇到的問題是:盒子充電時(shí)和不充電時(shí)(也就是放電時(shí))電量指示燈顯示不一致的問題,比如盒子在充電時(shí)顯示兩個(gè)LED(從左邊開始數(shù)起,第一個(gè)LED常亮,第二LED在閃爍),當(dāng)盒子拔掉USB 5V不充電時(shí),通過短按按鍵卻顯示3個(gè)LED電量指示燈,我認(rèn)為正確的做法應(yīng)該是,盒子充電時(shí)顯示多少個(gè)led,盒子不充電時(shí)(放電)也要顯示多少個(gè)led,也就是盒子充放電顯示電量指示燈的數(shù)量應(yīng)該要一致。現(xiàn)向大家請教一下怎么解決此問題,如下是設(shè)計(jì)資料,謝謝各位指點(diǎn)。

如下是盒子在充電時(shí)的燈顯程序:
                    if(usb_in==1)
                        {      
                                vbat=get_vbat_value(0);
                                  if(vbat>4.0947)
                        {
                                if(count2==50)//500mS時(shí)間到
                                {
                                  led1=1;
                                  led2=1;
                                  led3=1;
                                  led4=!led4;
                                  count2=0;
                                }
                        }
                        else if(vbat>3.9725)
                        {
                                if(count2==50)
                                {
                                led1=1;
                                led2=1;
                                led3=!led3;
                                led4=0;
                                count2=0;
                                }
                        }
                        else if(vbat>3.9105)
                        {
                                if(count2==50)
                                {
                                led1=1;
                                led2=!led2;
                                led3=0;
                                led4=0;
                                count2=0;
                                }
                        }
                        else if(vbat>3.0)
                        {
                                if(count2==50)
                                {
                                led1=!led1;
                                led2=0;
                                led3=0;
                                led4=0;
                                count2=0;
                                }
                        }

        }      

如下是盒子在不充電時(shí)(放電時(shí)),通過按鍵顯示電量指示燈的程序:

        esle if(key_flag==1&&usb_out==1)
                {
                        vbat=get_vbat_value(0);
                        if(vbat<3.5001)
                        {
                                if(count3==50)//盒子在非常低電時(shí)會快閃led提示
                                {
                                  led1=!led1;
                                  led2=0;
                                  led3=0;
                                  led4=0;
                                 count3=0;
                                 key_flag=0;
                                }
                }
                                else if(vbat<3.6954)
                        {
                                led1=1;
                                led2=0;
                                led3=0;
                                led4=0;
                                if(count3==300)//顯示3秒電量指示燈
                                {
                                  led1=0;
                                  led2=0;
                                  led3=0;
                                  led4=0;
                                count3=0;
                                key_flag=0;
                                }
                }
                        else if(vbat<3.7589)
                        {
                                led1=1;
                                led2=1;
                                led3=0;
                                led4=0;
                                if(count3==300)
                                {
                                  led1=0;
                                  led2=0;
                                  led3=0;
                                  led4=0;
                                count3=0;
                                key_flag=0;
                                }
                }
                        else if(vbat<3.8929)
                        {
                                led1=1;
                                led2=1;
                                led3=1;
                                led4=0;
                                if(count3==300)
                                {
                                 led1=0;
                                  led2=0;
                                  led3=0;
                                  led4=0;
                                count3=0;
                                key_flag=0;
                                }
                        }
                        else if(vbat<4.2)
                        {
                                led1=1;
                                led2=1;
                                led3=1;
                                led4=1;
                                if(count3==300)
                                {
                                  led1=0;
                                  led2=0;
                                  led3=0;
                                  led4=0;
                                count3=0;
                                key_flag=0;
                                }
                        }      
        }

如下是電池充放電曲線圖:

1.png

如下是根據(jù)電池充放電劃分的電壓和電量之間的對應(yīng)關(guān)系
2.png

如下是ADC檢測電池電壓的線路圖
3.png
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-3-6 15:39 | 顯示全部樓層
首先,電池是有內(nèi)阻的,充電時(shí)電池電壓吧放電時(shí)高,按理應(yīng)該是充電時(shí)LED亮的數(shù)目比放電時(shí)多,但是你現(xiàn)在是相反的,可能是你電路的問題,PCB排版不好導(dǎo)致。
回復(fù)

使用道具 舉報(bào)

ID:1065407 發(fā)表于 2023-3-6 16:22 | 顯示全部樓層
coody_sz 發(fā)表于 2023-3-6 15:39
首先,電池是有內(nèi)阻的,充電時(shí)電池電壓吧放電時(shí)高,按理應(yīng)該是充電時(shí)LED亮的數(shù)目比放電時(shí)多,但是你現(xiàn)在是 ...

充電時(shí)LED亮的數(shù)目也不能比放電時(shí)多,充放電時(shí)亮的數(shù)目應(yīng)該要相同,麻煩幫忙看下程序設(shè)計(jì)是否有問題,謝謝
回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2023-3-6 17:24 來自手機(jī) | 顯示全部樓層
你看一下程序啊,是按那個(gè)對應(yīng)關(guān)系表處理的,所以就是會出現(xiàn)差異,比如到了4伏,沖的時(shí)候是三亮一閃,放電時(shí)是4亮,不想這樣就把程序判斷部分的標(biāo)準(zhǔn)弄一致啦唄
回復(fù)

使用道具 舉報(bào)

ID:1065407 發(fā)表于 2023-3-6 19:43 | 顯示全部樓層
glinfei 發(fā)表于 2023-3-6 17:24
你看一下程序啊,是按那個(gè)對應(yīng)關(guān)系表處理的,所以就是會出現(xiàn)差異,比如到了4伏,沖的時(shí)候是三亮一閃,放電 ...

有沒有別的處理方法呢,謝謝。是不是要找下電池的充放電曲線,充電和放電的電量電壓不一樣,然后再加點(diǎn)回差這個(gè)根據(jù)測試來定,或者精度要求不高就定大一點(diǎn)。
回復(fù)

使用道具 舉報(bào)

ID:1065407 發(fā)表于 2023-3-6 19:51 | 顯示全部樓層
glinfei 發(fā)表于 2023-3-6 17:24
你看一下程序啊,是按那個(gè)對應(yīng)關(guān)系表處理的,所以就是會出現(xiàn)差異,比如到了4伏,沖的時(shí)候是三亮一閃,放電 ...

看那個(gè)對應(yīng)表,充電到4V時(shí)led是2亮一閃,而不是3亮一閃,根據(jù)電池特性,但當(dāng)拔掉USB不充電時(shí),電池電壓會馬上掉一些,理論上電壓會穩(wěn)定在3個(gè)led常亮的區(qū)間。
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2023-3-6 21:56 | 顯示全部樓層
那個(gè)充放的表格沒什么用處,基本是不準(zhǔn)確的
特別是放電那一塊,更加不準(zhǔn)確
回復(fù)

使用道具 舉報(bào)

ID:841986 發(fā)表于 2023-3-6 22:09 | 顯示全部樓層
不用看表,多測測充放電電壓區(qū)間,調(diào)調(diào)程序電壓閾值就行了,充電會拉高VBAT電壓的
回復(fù)

使用道具 舉報(bào)

ID:879348 發(fā)表于 2023-3-7 08:00 | 顯示全部樓層
想要準(zhǔn)確就要測量電流統(tǒng)計(jì)電量,純電壓就是這個(gè)效果
回復(fù)

使用道具 舉報(bào)

ID:1065407 發(fā)表于 2023-3-7 10:07 | 顯示全部樓層
lzh085 發(fā)表于 2023-3-6 22:09
不用看表,多測測充放電電壓區(qū)間,調(diào)調(diào)程序電壓閾值就行了,充電會拉高VBAT電壓的

是的,插入U(xiǎn)SB 5V充電時(shí)電池電壓會馬上升高,所以在電池的相同容量區(qū)間,充電時(shí)的電池電壓都會比放電的高些。
回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2023-3-7 10:27 | 顯示全部樓層
zzw820 發(fā)表于 2023-3-6 19:51
看那個(gè)對應(yīng)表,充電到4V時(shí)led是2亮一閃,而不是3亮一閃,根據(jù)電池特性,但當(dāng)拔掉USB不充電時(shí),電池電壓會 ...

我是說,你的程序是按你的表做的,那個(gè)表又不是很準(zhǔn),造成你說的不一致現(xiàn)象。一方面這是個(gè)小事,沒必要改。另一方面,如果非要改,你就要仔細(xì)調(diào)整表上的值,這個(gè)比較麻煩不說,還會隨著電池的老化而變化,
回復(fù)

使用道具 舉報(bào)

ID:322197 發(fā)表于 2023-3-9 12:17 來自手機(jī) | 顯示全部樓層
發(fā)個(gè)完整的程序看一下
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线网 | 国产传媒视频在线观看 | 国产亚洲精品精品国产亚洲综合 | 一级片网址| 亚洲精品久久久一区二区三区 | 国产在线高清 | 一区中文字幕 | 国产精品视频网 | 午夜影院在线观看免费 | 龙珠z国语版在线观看 | 色一情一乱一伦一区二区三区 | 久久夜夜| 亚洲成人动漫在线观看 | 日韩在线观看一区 | 亚洲欧美在线观看 | 国产一级电影在线观看 | 北条麻妃99精品青青久久 | 日韩视频在线播放 | 男女一区二区三区 | 日本免费在线 | 中文字幕日韩在线 | 国产精品视频中文字幕 | 91热在线| 日本久久www成人免 成人久久久久 | 亚洲在线免费观看 | 欧美黄色免费网站 | 91在线观看免费 | 一区二区在线免费观看 | 中文字幕欧美在线观看 | 91在线观看视频 | 久久夜视频 | 亚洲一区二区在线视频 | 成人国内精品久久久久一区 | 99国产精品99久久久久久 | 久久精品一 | 观看av | 午夜视频网 | 干出白浆视频 | 中文字幕一区二区三区四区不卡 | 2020国产在线| 国产四区 |