應(yīng)用場景
設(shè)備采用鋰電池供電,可充電,MCU的ADC采集計(jì)算鋰電池電壓,電池電量根據(jù)鋰電池放電特性,電池電量三段段碼顯示(分段式顯示)。
電量顯示策略
1.有充電器充電器插入的情況下:
ADC采集電池電壓,判斷是否充滿電(例如3.7V鋰電池充滿電的情況下大約是4.2V,滿電電壓根據(jù)實(shí)際測試選擇,我們選擇的是4.1V)。
注意:電池電壓滿電電壓不宜選擇過高,否則會(huì)出現(xiàn)一直充電的情況,也不宜選擇過低,不然就會(huì)出現(xiàn)電池未充滿但是顯示充滿的情況。
電池電壓未到達(dá)滿電電壓:電池顯示的三段循環(huán)遞進(jìn)顯示(充電顯示效果);
電池電壓到達(dá)滿電電壓:電池顯示的三段全部顯示(充滿電)。
2.無充電器充電器插入的情況下:
ADC實(shí)時(shí)采集電池電壓,判斷電池電壓值對(duì)應(yīng)的顯示段碼,正常來講三段式顯示采用平均分配的方法,根據(jù)鋰電池放電特性(電池容量與電池電壓的關(guān)系,具體還要看電池廠家給的資料,這里的數(shù)據(jù)只作為參考):
電池電量顯示設(shè)計(jì)為(不是很準(zhǔn)確,舉個(gè)栗子):
電池電壓>3.9V,顯示三格電量(滿電);
3.7V<電池電壓<=3.9V,顯示兩格;
3.3V<電池電壓<=3.7V,顯示一格;
電池電壓<=3.3V,顯示空,提示低電量,一段時(shí)間后自動(dòng)斷電關(guān)機(jī)。
關(guān)鍵問題處理
會(huì)出現(xiàn)的問題:顯示跳動(dòng)
按照上述的顯示方式,由于ADC的采集誤差,當(dāng)電池電壓處于顯示臨界值(例如3.9V左右時(shí))的時(shí)候,會(huì)出現(xiàn)電量顯示來回跳動(dòng)的問題,在每個(gè)臨界點(diǎn)都會(huì)出現(xiàn)顯示跳動(dòng)的問題。
解決方法
1.延長電量更新時(shí)間
我們之前是1秒鐘更新一次,可以適當(dāng)?shù)募哟蟾聲r(shí)間(例如1min,這樣的話隨著電量的消耗,在一分鐘的時(shí)間內(nèi),電池電壓的下降的),這種方法的弊端就是你得確定你設(shè)置的更新時(shí)間間隔電池電壓是必然下降的;
2.使用電量計(jì)
使用電量計(jì)能夠精確的計(jì)算出消耗的電量,但是我們項(xiàng)目對(duì)于電量顯示的要求并不高,而且會(huì)增加成本。
3.未充電情況下電池電壓只允許下降
這種處理方法就是在未充電的情況下,每次采集的電壓與上一次的采集電壓相比較,如果本次電壓大于或等于上次采集電壓,那么本次采集的電壓是無效的,顯示電量采用的是上次電壓值,如果本次電壓小于上次采集電壓,顯示電量采用的是本次電壓值。
以下是偽代碼:文章來源:http://www.zghlxwxcb.cn/news/detail-533809.html
void displayBAT(void)
{
//V0為本次采集的電壓值,V1為上次采集的電壓值,Vdis為顯示電量的電壓值
if(V0<V1)
{
Vdis = V0;
display(Vdis);//更新電池電量顯示
V1=V0;
}
}
這種方式能夠有效的解決臨界值電量顯示段碼來回跳動(dòng)的問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-533809.html
到了這里,關(guān)于基于ADC電壓采集的鋰電池電量顯示方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!