本發(fā)明涉及一種新風(fēng)控制器用鋰電池電量采集與評(píng)判方法,屬于新風(fēng)系統(tǒng)技術(shù)領(lǐng)域。
背景技術(shù):
隨著國(guó)內(nèi)工業(yè)化的快速發(fā)展,環(huán)境受到污染,空氣質(zhì)量變差,霧霾時(shí)有發(fā)生,人們?cè)絹碓疥P(guān)注空氣的質(zhì)量,并且需要有一個(gè)好的生活環(huán)境,新風(fēng)系統(tǒng)的提出讓人們對(duì)空氣質(zhì)量看到了希望。新風(fēng)系統(tǒng)指由能夠換氣和凈化空氣的換氣風(fēng)機(jī)、管道以及一些附件組成的一套獨(dú)立空氣處理系統(tǒng),換氣風(fēng)機(jī)能夠?qū)⑹彝庑迈r氣體經(jīng)過過濾、凈化,并通過管道輸送到室內(nèi),同時(shí)將室內(nèi)污濁的空氣排出室外。
鋰電池由于其能量密度高,體積小,重量輕,環(huán)保無污染,無記憶效應(yīng)等顯著優(yōu)點(diǎn)逐步成為能源領(lǐng)域的首選,鋰電池作為新風(fēng)控制器的動(dòng)力能源在使用過程中由于電池電壓與剩余電量、工作時(shí)間之間并不是線性關(guān)系,所以不能簡(jiǎn)單地采用電壓采樣、函數(shù)計(jì)算剩余電量?,F(xiàn)有技術(shù)中通常是在鋰電池的充電及其保護(hù)電路中增加一款專門用于實(shí)時(shí)監(jiān)控電池狀態(tài)ic,該芯片可以實(shí)時(shí)監(jiān)測(cè)電池的電壓、電流、充放電狀況及剩余電量等參數(shù),并可以把這些數(shù)據(jù)儲(chǔ)存起來,提供給mcu作相應(yīng)處理。這種方式適合手機(jī)、數(shù)碼相機(jī)、音頻視頻播放器等便攜式電子設(shè)備使用,因?yàn)檫@些設(shè)備對(duì)電量的管理較為嚴(yán)格。另一種是利用外接高精度檢流電阻和高精度的放大器,用運(yùn)算速度較快的單片機(jī)在較短周期下采樣得到較為準(zhǔn)確的值,由于新風(fēng)系統(tǒng)控制器對(duì)鋰電池的電量精度判斷需求不太精確,所以以上兩種方案從功能上可滿足新風(fēng)控制器的需求,但成本過高,得不償失。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問題,提供一種新風(fēng)控制器用鋰電池電量采集與評(píng)判方法。
本發(fā)明的目的將通過以下技術(shù)方案得以實(shí)現(xiàn):新風(fēng)系統(tǒng)控制器用鋰電池電量采集與評(píng)判方法,該方法包括以下步驟--
s1:mcu初始化完畢后,adc的dma通道開啟,定時(shí)器開啟,adc采樣時(shí)間定時(shí)計(jì)時(shí)開始,mcu通過adc采集得到鋰電池的電壓并將讀取鋰電池各電芯電壓參數(shù)發(fā)送至菜單函數(shù)及相關(guān)函數(shù)進(jìn)行處理;
s2:菜單函數(shù)及相關(guān)函數(shù)進(jìn)行處理后,由mcu判斷adc采樣時(shí)間是否定時(shí)到達(dá),如果adc采樣時(shí)間沒有定時(shí)到達(dá),則重新進(jìn)行返回至菜單函數(shù)及相關(guān)函數(shù)處理;如果adc采樣時(shí)間定時(shí)到達(dá),則mcu判斷鋰電池的充電狀態(tài)是否處于高電平狀態(tài);
s3:如果mcu判斷鋰電池的充電狀態(tài)處于高電平狀態(tài),則顯示鋰電池正在充電且adc采樣時(shí)間定時(shí)計(jì)時(shí)清零;如果鋰電池的充電狀態(tài)不是高電平狀態(tài),則對(duì)adc樣本數(shù)據(jù)進(jìn)行緩存取樣,對(duì)測(cè)量得到的樣本數(shù)據(jù)運(yùn)用冒泡算法進(jìn)行處理,得到一個(gè)樣本數(shù)據(jù)的升序數(shù)據(jù),對(duì)數(shù)據(jù)中排序在中間的樣本數(shù)據(jù)進(jìn)行取平均值運(yùn)算,進(jìn)而得到相對(duì)穩(wěn)定的數(shù)據(jù),按照電阻分壓比值計(jì)算鋰電池的當(dāng)前電壓,然后mcu對(duì)比鋰電池充放電曲線圖,顯示鋰電池電量情況且adc采樣時(shí)間定時(shí)計(jì)時(shí)清零;
s4:mcu對(duì)比鋰電池充放電曲線圖后做出相應(yīng)的判斷和處理,當(dāng)鋰電池的電量顯示為低電量時(shí),這時(shí)系統(tǒng)會(huì)發(fā)出報(bào)警提示,當(dāng)鋰電池的電量顯示為正常電量范圍時(shí),系統(tǒng)正常工作,當(dāng)鋰電池的電量顯示為超低電量時(shí),系統(tǒng)會(huì)關(guān)閉。
優(yōu)選地,所述樣本數(shù)據(jù)為32組數(shù)據(jù)。
優(yōu)選地,所述冒泡算法包括以下步驟--
s1:adc緩存入口,階數(shù)計(jì)數(shù)(i)置1,判斷階數(shù)計(jì)數(shù)(i)是否小于32,如否,則判斷數(shù)據(jù)改變標(biāo)志位是否為0,如不為0,則返回,如為0,則輸出排序好的數(shù)組,程序結(jié)束;
s2:如階數(shù)計(jì)數(shù)(i)小于32,則數(shù)據(jù)改變標(biāo)志位置0,計(jì)數(shù)(j)置0,然后判斷計(jì)數(shù)(j)是否小于32-i,如是則進(jìn)行判斷緩存數(shù)據(jù)【j】是否大于緩存數(shù)據(jù)【j+1】,如大于,則數(shù)據(jù)改變標(biāo)志位置1,緩存數(shù)據(jù)【j】與緩存數(shù)組【j+1】交換,計(jì)數(shù)(j)自增1,返回到階數(shù)計(jì)數(shù)(i)自增1,如小于,則計(jì)數(shù)(j)自增1,返回到階數(shù)計(jì)數(shù)(i)自增1。
本發(fā)明技術(shù)方案的優(yōu)點(diǎn)主要體現(xiàn)在:本發(fā)明的技術(shù)方案可準(zhǔn)確地計(jì)算出當(dāng)前鋰電池的電壓情況,大大地提高了新風(fēng)控制器對(duì)鋰電池的電量精度判斷需求的精確性,降低了新風(fēng)控制器的產(chǎn)品成本。
附圖說明
圖1是本發(fā)明新風(fēng)控制器鋰電池電壓檢測(cè)電路圖。
圖2是本發(fā)明新風(fēng)控制器鋰電池電壓采樣程序圖。
圖3是本發(fā)明新風(fēng)控制器鋰電池的32組電壓值進(jìn)行冒泡算法的程序圖。
具體實(shí)施方式
本發(fā)明的目的、優(yōu)點(diǎn)和特點(diǎn),將通過下面優(yōu)選實(shí)施例的非限制性說明進(jìn)行圖示和解釋。這些實(shí)施例僅是應(yīng)用本發(fā)明技術(shù)方案的典型范例,凡采取等同替換或者等效變換而形成的技術(shù)方案,均落在本發(fā)明要求保護(hù)的范圍之內(nèi)。
本發(fā)明揭示了一種新風(fēng)控制器用鋰電池電量采集與評(píng)判方法。新風(fēng)控制器的鋰電池電壓檢測(cè)電路如圖1所示,該鋰電池電壓檢測(cè)電路包括電阻r3、電阻r4、mcu、充電ic,電阻r3的第一端與鋰電池電連接,電阻r3的第二端與mcu的adc接口、電阻r4的第一端電連接,電阻r4的第二端接地,mcu的數(shù)據(jù)輸出口與充電ic的數(shù)據(jù)輸入口電連接。mcu與充電ic通過rs串口連接,充電ic的充電狀態(tài)io口連接到mcu的輸入檢測(cè)端口。
mcu選用32位的單片機(jī),mcu指微控制單元,adc指模擬/數(shù)字轉(zhuǎn)換模塊,adc的精度為12位,電阻r3和r4為高精度電阻,mcu、adc、高精度電阻r3和高精度電阻r4構(gòu)成了分壓電路,保證輸入電壓不超過mcu的參考電壓,充電ic的充電狀態(tài)io口連接到mcu的輸入檢測(cè)端口,通過該端口mcu通過判斷電平狀態(tài),就可知道鋰電池是否處于充電狀態(tài)。mcu通過adc采集,得到當(dāng)前鋰電池的電壓,然后將電壓與鋰電池的充放電曲線圖作對(duì)比,就得到當(dāng)前鋰電池的電量情況。
新風(fēng)控制器鋰電池電壓采樣程序圖,如圖2所示,新風(fēng)系統(tǒng)控制器用鋰電池電量采集與評(píng)判方法包括以下步驟--
s1:mcu初始化完畢后,adc的dma通道開啟,定時(shí)器開啟,adc采樣時(shí)間定時(shí)計(jì)時(shí)開始,mcu通過adc采集得到鋰電池的電壓并將讀取鋰電池各電芯電壓參數(shù)發(fā)送至菜單函數(shù)及相關(guān)函數(shù)進(jìn)行處理;dma的英文拼寫為“directmemoryaccess”,即直接內(nèi)存訪問,是一種不經(jīng)過cpu而直接從內(nèi)存存取數(shù)據(jù)的數(shù)據(jù)交換模式。在dma模式下,dma使用專門的硬件把數(shù)據(jù)直接傳送到計(jì)算機(jī)內(nèi)存,從而提高了系統(tǒng)的數(shù)據(jù)吞吐量,cpu只須向dma控制器下達(dá)指令,讓dma控制器來處理數(shù)據(jù)的傳送,數(shù)據(jù)傳送完畢再把信息反饋給cpu,這樣就很大程度上減輕了cpu資源占有率,可以大大節(jié)省系統(tǒng)資源。
s2:菜單函數(shù)及相關(guān)函數(shù)進(jìn)行處理后,由mcu判斷adc采樣時(shí)間是否定時(shí)到達(dá),如果adc采樣時(shí)間沒有定時(shí)到達(dá),則重新進(jìn)行返回至菜單函數(shù)及相關(guān)函數(shù)處理;如果adc采樣時(shí)間定時(shí)到達(dá),則mcu判斷鋰電池的充電狀態(tài)是否處于高電平狀態(tài);
s3:如果mcu判斷鋰電池的充電狀態(tài)處于高電平狀態(tài),則顯示鋰電池正在充電且adc采樣時(shí)間定時(shí)計(jì)時(shí)清零;如果鋰電池的充電狀態(tài)不是高電平狀態(tài),則對(duì)adc樣本數(shù)據(jù)進(jìn)行緩存取樣,所述樣本數(shù)據(jù)優(yōu)選為32組數(shù)據(jù),該樣本數(shù)據(jù)不僅限于32組樣本數(shù)據(jù)還可為其它數(shù)據(jù),對(duì)測(cè)量得到的樣本數(shù)據(jù)運(yùn)用冒泡算法進(jìn)行處理,得到一個(gè)樣本數(shù)據(jù)的升序數(shù)據(jù),對(duì)數(shù)據(jù)中排序在中間的樣本數(shù)據(jù)進(jìn)行取平均值運(yùn)算,具體地,對(duì)數(shù)據(jù)中排序在中間的16組數(shù)據(jù)進(jìn)行取平均值計(jì)算,當(dāng)樣本數(shù)據(jù)選取其它值時(shí),排序在中間的樣本數(shù)據(jù)取值也會(huì)跟著發(fā)生變化,進(jìn)而得到相對(duì)穩(wěn)定的數(shù)據(jù),按照電阻分壓比值計(jì)算鋰電池的當(dāng)前電壓,然后mcu對(duì)比鋰電池充放電曲線圖,顯示鋰電池電量情況且adc采樣時(shí)間定時(shí)計(jì)時(shí)清零;
s4:mcu對(duì)比鋰電池充放電曲線圖后做出相應(yīng)的判斷和處理,當(dāng)鋰電池的電量顯示為低電量時(shí),這時(shí)系統(tǒng)會(huì)發(fā)出報(bào)警提示,當(dāng)鋰電池的電量顯示為正常電量范圍時(shí),系統(tǒng)正常工作,當(dāng)鋰電池的電量顯示為超低電量時(shí),系統(tǒng)會(huì)關(guān)閉。
所述冒泡算法包括以下步驟--
s1:adc緩存入口,階數(shù)計(jì)數(shù)(i)置1,判斷階數(shù)計(jì)數(shù)(i)是否小于32,如否,則判斷數(shù)據(jù)改變標(biāo)志位是否為0,如不為0,則返回,如為0,則輸出排序好的數(shù)組,程序結(jié)束;
s2:如階數(shù)計(jì)數(shù)(i)小于32,則數(shù)據(jù)改變標(biāo)志位置0,計(jì)數(shù)(j)置0,然后判斷計(jì)數(shù)(j)是否小于32-i,如是則進(jìn)行判斷緩存數(shù)據(jù)【j】是否大于緩存數(shù)據(jù)【j+1】,如大于,則數(shù)據(jù)改變標(biāo)志位置1,緩存數(shù)據(jù)【j】與緩存數(shù)組【j+1】交換,計(jì)數(shù)(j)自增1,返回到階數(shù)計(jì)數(shù)(i)自增1,如小于,則計(jì)數(shù)(j)自增1,返回到階數(shù)計(jì)數(shù)(i)自增1。
本發(fā)明的技術(shù)方案可準(zhǔn)確地計(jì)算出當(dāng)前鋰電池的電壓情況,大大地提高了新風(fēng)控制器對(duì)鋰電池的電量精度判斷需求的精確性,降低了新風(fēng)控制器的產(chǎn)品成本。