本發(fā)明涉及測控技術領域,特別涉及一種液位檢測方法以及一種液位檢測裝置。
背景技術:
相關技術提出了一種智能電容式液位測量儀,該方案通過電容頻率轉換電路將電容變化轉換為頻率變化,并采用溫度傳感器檢測溫度,然后中央處理單元根據(jù)頻率變化并通過軟件公式計算液位,以及根據(jù)溫度并通過軟件公式對計算出的液位進行補償和分段修正。
但是,相關技術存在的問題是,增加了溫度傳感器,從而使得電路較復雜,并且電容檢測精度也受限于溫度傳感器的精度,從而影響液位檢測準確性。
技術實現(xiàn)要素:
本發(fā)明旨在至少在一定程度上解決相關技術中的技術問題之一。為此,本發(fā)明的一個目的在于提出一種液位檢測方法,該方法能夠準確判斷液位變化,有效避免環(huán)境對液位檢測的干擾。
本發(fā)明的另一個目的在于提出一種液位檢測裝置。
為達到上述目的,本發(fā)明一方面實施例提出了一種液位檢測方法,分別檢測當前電容檢測單元的自電容值和互電容值;根據(jù)所述當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和所述當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋所述當前電容檢測單元;如果判斷有液體覆蓋所述當前電容檢測單元,則向上分別檢測與所述當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)與沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。
根據(jù)本發(fā)明實施例提出的液位檢測方法,分別檢測當前電容檢測單元的自電容值和互電容值,然后根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋所述當前電容檢測單元,如果判斷有液體覆蓋所述當前電容檢測單元,則向上分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)與沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信 息。由此,該方法聯(lián)合互電容和自電容的變化情況來檢測液位,可有效避免環(huán)境對液位檢測的干擾,提升了液位檢測的準確度。并且,該方法不需要增加額外的外部器件例如溫度傳感器,電路簡單,算法可靠。
為達到上述目的,本發(fā)明另一方面實施例提出了一種液位檢測裝置,多個電容檢測單元;控制模塊,所述控制模塊與所述多個電容檢測單元相連,所述控制模塊用于分別檢測當前電容檢測單元的自電容值和互電容值,并根據(jù)所述當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和所述當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋所述當前電容檢測單元,如果液體覆蓋所述當前電容檢測單元,所述控制模塊則向上分別檢測與所述當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷所述沒有液體覆蓋電容檢測單元時,根據(jù)與沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。
根據(jù)本發(fā)明實施例提出的液位檢測裝置,控制模塊分別檢測當前電容檢測單元的自電容值和互電容值,然后根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋所述當前電容檢測單元,如果判斷有液體覆蓋所述當前電容檢測單元,則向上分別檢測與當前電容檢測單元相鄰的下一個電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)與沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。由此,該裝置聯(lián)合互電容和自電容的變化情況來檢測液位,可有效避免環(huán)境對液位檢測的干擾,提升了液位檢測的準確度。并且,該裝置不需要增加額外的外部器件例如溫度傳感器,電路簡單,算法可靠。
附圖說明
圖1是根據(jù)本發(fā)明實施例的液位檢測方法的流程圖;
圖2是根據(jù)本發(fā)明一個實施例的多個電容檢測單元的安裝示意圖;
圖3是根據(jù)本發(fā)明一個實施例的液位檢測方法的流程圖;
圖4是根據(jù)本發(fā)明一個具體實施例的液位檢測方法的工作原理圖;
圖5是根據(jù)本發(fā)明實施例的液位檢測裝置的方框示意圖;
圖6是根據(jù)本發(fā)明一個實施例的液位檢測裝置的部分結構示意圖;以及
圖7是根據(jù)本發(fā)明一個實施例的自電容模型和互電容模型的示意圖。
具體實施方式
下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同 或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
下面參考附圖來描述本發(fā)明實施例提出的液位檢測方法和液位檢測裝置。
圖1是根據(jù)本發(fā)明實施例的液位檢測方法的流程圖。本發(fā)明的實施例的方法利用互電容和自電容在液位變化與環(huán)境變化時的電容變化差異性來進行檢測液位,即言,根據(jù)互電容的原理特性,液位發(fā)生變化時互電容值不會變化,而根據(jù)自電容的原理特性,液位發(fā)生變化時自電容值變化?;诖?,本發(fā)明實施例液位檢測方法將互電容和自電容的變化情況相結合來檢測液位。
如圖1所示,本發(fā)明實施例的液位檢測方法包括以下步驟:
s1:分別檢測當前電容檢測單元的自電容值和互電容值。
也就是說,可先啟動互電容模式,在互電容模式下檢測當前電容檢測單元的互電容值,再啟動自電容模式,在自電容模式下檢測電路檢測當前電容檢測單元的自電容值。
根據(jù)本發(fā)明的一個實施例,通過多個電容檢測單元進行液位檢測,分別檢測當前電容檢測單元的自電容值和互電容值,即步驟s1包括:將多個電容檢測單元中的當前電容檢測單元作為激勵端,且將其他電容檢測單元接地,以檢測當前電容檢測單元的自電容值;將多個電容檢測單元中每個電容檢測單元均作為激勵端,以檢測當前電容檢測單元的互電容值。
也就是說,如圖7所示,在當前電容檢測單元例如c1作為激勵端而其他電容檢測單元例如c2-c6作為地的情況下,檢測到的電容可定義為自電容,如此只向當前電容檢測單元施加激勵信號時,通過檢測當前電容檢測單元的電容即可獲得當前電容檢測單元的自電容;在多個電容檢測單元例如c1-c6同時作為激勵端的情況下,消除了任意兩個電容檢測單元之間的電容影響的電容定義為互電容,如此向每個電容檢測單元施加激勵信號時,通過檢測當前電容檢測單元的電容即可獲得當前電容檢測單元的互電容。
在本發(fā)明的一個具體示例中,如圖2所示,多個電容檢測單元與待測容器緊密貼合,例如通過3m膠粘貼,并且,多個電容檢測單元可按照液體在待測容器內的上升方向依次排列,例如多個電容檢測單元可在待測容器的底部的垂直方向上依次排列,被液面覆蓋的電容檢測單元的數(shù)量將隨著液位的變化而變化。應當理解的是,多個電容檢測單元與待測容器的設置方式不限于貼合方式。
并且,電容檢測單元被液面覆蓋時的自電容值與未被液面覆蓋時的自電容值不一致,即言,液位上升或下降時電容檢測單元的自電容值將會發(fā)生變化,而互電容值不會發(fā)生變化。但是,當環(huán)境發(fā)生變化時,電容檢測單元的自電容值和互電容值均會發(fā)生變化,因此通過監(jiān)測電容檢測單元的自電容值和互電容值可以消除環(huán)境的的影響,準確識別液位信息。
s2:根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋當前電容檢測單元。
應當理解的是,當當前電容檢測單元被液體覆蓋時,判斷液體至少達到當前電容檢測單元所處的位置,而當當前電容檢測單元未被液體覆蓋時,判斷未上升至當前電容檢測單元所處的位置。
需要說明的是,當前電容檢測單元可在待測容器的底部或頂部、或中間任意位置。
s3:如果判斷有液體覆蓋當前電容檢測單元,則向上分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)與沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。
進一步地,根據(jù)本發(fā)明的一個實施例,如果判斷沒有液體覆蓋當前電容檢測單元,則向下分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷有液體覆蓋電容檢測單元時,根據(jù)有液體覆蓋時對應的電容檢測單元獲取液位信息。
需要說明的是,向上指的是液位的上升方向,如圖2中箭頭所示的方向,如此,向上檢測即為檢測當前電容檢測單元上面的電容檢測單元。相應地,向下即為圖2中箭頭所示的反方向,如此,向下檢測即為檢測當前電容檢測單元下面的電容檢測單元。也就是說,可從多個電容檢測單元中任一個電容檢測單元開始檢測,如果判斷有液體覆蓋當前電容檢測單元,則分別檢測與當前電容檢測單元上面的相鄰電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋當前電容檢測單元;如果判斷沒有液體覆蓋當前電容檢測單元,則分別檢測與當前電容檢測單元下面的相鄰電容檢測單元的自電容值和互電容值,直至判斷有液體覆蓋當前電容檢測單元。
下面以從與待測容器底部最接近的電容檢測單元開始檢測為例來詳細描述本發(fā)明實施例的液位檢測方法。
具體地,可從與待測容器底部最接近的電容檢測單元開始依次向上逐級判斷相應的電容檢測單元是否被液體覆蓋。假設通過n個電容檢測單元進行液位檢測,n個電容檢測單元從下向上依次記為c1、c2、c3、…、cn,n為大于1的整數(shù),當當前電容檢測單元為第i個電容檢測單元ci時,可根據(jù)第i個電容檢測單元ci時的互電容值和自電容值判斷是否有液體覆蓋第i個電容檢測單元ci,如果判斷有液體覆蓋第i個電容檢測單元ci,則說明液體至少上升/下降到第i個電容檢測單元ci所處的位置,再繼續(xù)分別檢測第i+1個電容檢測單元c(i+1)的互電容值和自電容值,此時根據(jù)第i+1個電容檢測單元c(i+1)的自電容值和互電容值判斷是否有液體覆蓋第i+1個電容檢測單元c(i+1),以判斷液體是否上升/下降到第i+1個電容檢測單元c(i+1)所處的位置。
如此逐級檢測自電容值和互電容值并判斷是否有液體覆蓋電容檢測單元,一旦判斷沒有液體覆蓋電容檢測單元,就根據(jù)檢測到?jīng)]有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息,例如,第1個至第i個電容檢測單元對應的判斷結果均為有液體覆蓋,而第i+1個電容檢測單元對應的判斷結果為沒有液體覆蓋,則將第i個電容檢測單元對應的液位信息作為容器的當前液位信息。
具體來說,可以輪詢的方式對多個電容檢測單元的互電容值和自電容值依次進行檢測,每檢測到一次自電容值和互電容值,就根據(jù)檢測到的自電容值和互電容值判斷是否檢測到相應的電容檢測單元被液體覆蓋,當判斷連續(xù)的n(n為正整數(shù))個電容檢測單元均被液體覆蓋,而第n+1個電容檢測單元未被液體覆蓋時,根據(jù)第n個電容檢測單元對應的液位檔位輸出液位信息。
應當理解的是,多個電容檢測單元中每個電容檢測單元對應一個液位檔位,且每個電容檢測單元對應的液位檔位在程序中提前預設,如圖2所示,電容檢測單元可為6個即c1、c2、c3、c4、c5和c6,6個電容檢測單元分別對應6個液位檔位,且6個液位檔位按順序依次遞增或遞減,例如,c1對應液位1、c2對應液位2、c3對應液位3、c4對應液位4、c5對應液位5和c6對應液位6,且液位1<液位2<液位3<液位4<液位5<液位6。
還應當理解的是,電容檢測單元的數(shù)量和大小是可調的,電容檢測單元越多即n越大,所能檢測到的液位檔位越多,液位檢測精度越高。并且,電容檢測單元面積越大,電容檢測單元的靈敏度就越高。
由此,本發(fā)明實施例的液位檢測方法,聯(lián)合互電容值和自電容值的變化情況來檢測液位,可有效避免環(huán)境例如溫度對液位檢測的干擾,提升了液位檢測的準確度,對量產(chǎn)的不一致性也有很好的補償作用。并且,該方法不需要增加額外的外部器件例如溫度傳感器,電路簡單,算法可靠。
根據(jù)本發(fā)明的一個實施例,根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋所述當前電容檢測單元,即步驟s2包括:獲取當前電容檢測單元的互電容值與對應的互電容基準值之間的第一差值即互電容變化量;獲取當前電容檢測單元的自電容值與對應的自電容基準值之間的第二差值即自電容變化量;如果第一差值小于第一預設閾值且第二差值大于第二預設閾值,則判斷有液體覆蓋當前電容檢測單元。
并且,如果第一差值大于等于第一預設閾值或第二差值小于等于第二預設閾值,則判斷沒有液體覆蓋所述當前電容檢測單元,并將對應的互電容基準值更新為當前電容檢測單元的互電容值,以及將對應的自電容基準值更新為當前電容檢測單元的自電容值,以將更新后的互電容基準值和自電容基準值用于下一次液位檢測。
也就是說,如果當前電容檢測單元的互電容變化量小于第一預設閾值且該電容檢測單元的自電容變化量大于第二預設閾值,則說明當前電容檢測單元的自電容值和互電容值的變化是由液體變化引起,判斷當前電容檢測單元檢測到了液體,并計算當前電容檢測單元上面的相鄰電容檢測單元的互電容變化量和自電容變化量以判斷該電容檢測單元是否被液體覆蓋,如此循環(huán)判斷直至判斷到電容檢測單元未被液體覆蓋。并在判斷電容檢測單元未被液體覆蓋時,根據(jù)與未被液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息,并根據(jù)未檢測到液體時對應的電容檢測單元的互電容值和自電容值分別更新對應的互電容基準值和自電容基準值,以將更新后的互電容基準值和自電容基準值用于下一次液位檢測。
需要說明的是,多個電容檢測單元對應的互電容基準值可設置為同一個互電容基準值,多個電容檢測單元對應的自電容基準值也可設置為同一個自電容基準值,從而使得寄存器空間相對較??;多個電容檢測單元對應的互電容基準值可設置為互不相同的互電容基準值,多個電容檢測單元對應的自電容基準值可設置為互不相同的自電容基準值,從而使得檢測準確度相對較高。
還需說明的是,互電容基準值和自電容基準值的設置情況可根據(jù)實際需求設置。并且,互電容基準值的初始設定值可根據(jù)無液體時每個電容檢測單元的互電容值選取,自電容基準值的初始設定值可根據(jù)無液體時每個電容檢測單元的自電容值選取。
具體來說,本發(fā)明實施例的方法采用n個電容檢測單元進行液位檢測,n個電容檢測單元從容器底部向上依次為第1個電容檢測單元、第2個電容檢測單元、第3個電容檢測單元、……、第n個電容檢測單元。具體可采用如下流程:首先啟動互電容模式,獲取第i(i可為1至n中的任意整數(shù)值)個電容檢測單元的互電容值rawdata1(i),將第i個電容檢測單元的互電容值rawdata1(i)與對應互電容基準值base1(i)進行比較以計算出第i個第一差值differ1(i)=|rawdata1(i)-base1(i)|,以及保存計算出第i個第一差值differ1(i)。
其次,再啟動自電容模式,獲取第i個電容檢測單元的自電容值rawdata2(i),將第i個電容檢測單元的自電容值rawdata2(i)與對應的自電容基準值base2(i)進行比較以計算出第i個第二差值differ2(i)=|rawdata2(i)-base2(i)|,并保存計算出的第i個第二差值differ2(i)。
再次,判斷第i個電容檢測單元是否被液體覆蓋,如果第i個第一差值differ1(i)小于第一預設閾值vref1即differ1(i)<vref1,且第i個第二差值differ2(i)大于第二預設閾值即differ2(i)>vref2,則判斷第i個電容檢測單元被液體覆蓋。否則,如果第i個第一差值differ1(i)大于等于第一預設閾值vref1即differ1(i)≥vref1,或者第i個第二差值differ2 (i)大于第二預設閾值即differ2(i)≤vref2,則判斷第i個電容檢測單元未被液體覆蓋。
并且,在判斷第i個電容檢測單元被液體覆蓋之后,按照前面的步驟繼續(xù)檢測第i+1個電容檢測單元的自電容值和互電容值并進行判斷。而在判斷第i個電容檢測單元未被液體覆蓋之后,將第i-1個電容檢測單元對應的液位檔位作為容器的當前液位,并更新互電容基準值和自電容基準值,其中,如果互電容基準值互不相同,則只更新第i個電容檢測單元對應的互電容基準值,將檢測到的互電容值作為互電容基準值,而如果互電容基準值均相同,則更新該互電容基準值,將檢測到的互電容值作為互電容基準值;同理,如果自電容基準值互不相同,則只更新第i個電容檢測單元對應的自電容基準值,將檢測到的自電容值作為自電容基準值,而如果自電容基準值均相同,則更新該自電容基準值,將檢測到的自電容值作為自電容基準值。
其中,在第一次計算過程中,采用的初始互電容基準值base1和初始自電容基準值base2可提前內置在eeprom里,也可以把上電后無液體時采樣到的互電容值設定為初始互電容基準值base1、無液體時采樣到的自電容值設定為初始自電容基準值base2。
需要說明的是,第一預設閾值vref1和第二預設閾值vref2的設置與靈敏度有關,如果vref1和vref2設置過小,判斷條件(differ1<vref1)且(differ2>vref2)極容易滿足,則細微的環(huán)境變化也會被錯誤的判定為液位變化,而如果vref1和vref2設置過大,判斷條件(differ1<vref1)且(differ2>vref2)難以滿足,則液位變化時無輸出或輸出錯誤液位。
并且,第一預設閾值vref1和第二預設閾值vref2可根據(jù)實際測試結果設置,具體地,可在電容檢測單元未被液體覆蓋時,分別測量該電容檢測單元的第一互電容測量值和第一自電容測量值,以及在該電容檢測單元被液體覆蓋時,分別測量該電容檢測單元的第二互電容測量值和第二自電容測量值,這樣可根據(jù)第一互電容測量值與第二互電容測量值之間的差值設置第一預設閾值vref1,并可根據(jù)第一自電容測量值與第二自電容測量值之間的差值設置第二預設閾值vref2,例如如果第一互電容測量值與第二互電容測量值之間的差值為20,則第一預設閾值vref1可選取20-30之間的值;如果第一自電容測量值與第二自電容測量值之間的差值為100,則第二預設閾值vref2可選取70-100之間的值。
具體來說,假設多個電容檢測單元的互電容基準值均為同一個互電容基準值base1、自電容基準值均為同一個自電容基準值base2,如圖3所示,本發(fā)明實施例的液位檢測方法包括以下步驟:
s100:上電初始化,讀取預設的互電容基準值base1和自電容基準值base2。
s101:啟動互電容模式,獲取第i個電容檢測單元的互電容值rawdata1(i),將互電容值rawdata1(i)與互電容基準值base1進行比較以計算出第i個第一差值differ1(i)=|rawdata1(i)-base1|,以及保存計算出第i個第一差值differ1(i)。
s102:啟動自電容模式,獲取第i個電容檢測單元的自電容值,將第i個自電容值值rawdata2(i)與自電容基準值base2進行比較以計算出第i個第二差值differ2(i)=|rawdata2(i)-base2|,并保存計算出的第i個第二差值differ2(i)。
s103:判斷第i個第一差值differ1(i)是否小于第一預設閾值vref1,且判斷第i個第二差值differ2(i)是否大于第二預設閾值vref2。
如果是,則執(zhí)行步驟s104;如果否,則執(zhí)行步驟s105。
s104:判斷第i個電容檢測單元未被液體覆蓋,i=i+1,并返回步驟s101。
其中,在i=n時,i重新設定為1。
s105:判斷第i個電容檢測單元未被液體覆蓋,i重新設定為1。
s106:更新互電容基準值base1和自電容基準值base2,返回步驟s101。
下面結合圖2和圖4來詳細描述本發(fā)明實施例的液位檢測裝置的工作原理。
如圖4所示,假定無液體時互電容模式下的互電容基準值base1=2000、第一預設閾值vref1=50;無液體時自電容模式下的自電容基準值base2=3000、第二預設閾值vref2=400。
如圖2和4所示,t1-t2時刻,液位上升到電容檢測單元c1的位置,先開啟互電容模式,獲取電容檢測單元c1的互電容值rawdata1(1),rawdata1(1)=1990,進而獲取第1個第一差值differ1(1),即differ1(1)=|1990-2000|=10;再開啟自電容模式,獲取電容檢測單元c1的自電容值rawdata2(1),rawdata2(1)=3500,進而獲取第1個第二差值differ2(1),即differ2(1)=|3500-3000|=500,再次根據(jù)第1個第一差值和第1個第二差值判斷電容檢測單元c1被到液體覆蓋,即第1個第一差值滿足differ1(1)=10<50,第1個第二差值differ2(1)滿足differ2(1)=500>400,滿足液位判斷條件,可判斷液位升高到電容檢測單元c1的位置。
t3~t4時刻,先開啟互電容模式,獲取電容檢測單元c2的互電容值rawdata1(2),rawdata1(2)=1930,進而獲取第2個第一差值differ1(2),即differ1(2)=|1930-2000|=70;再開啟自電容模式,獲取電容檢測單元c2的自電容值rawdata2(2),rawdata2(2)=3100,進而獲取第2個第二差值differ2(2),即differ2(2)=|3100-3000|=100,再次根據(jù)第2個第一差值和第2個第二差值判斷電容檢測單元c2未被液體覆蓋,即differ1(2)=70>50,differ2(2)=100<400,不滿足液位判斷條件,判定液位未升高到電容檢測單元c2的位置。這樣,結合t1-t2時刻以及t3~t4時刻的判斷,識別到的液位信息為電容檢測單元c1對應的液位檔位。
然后,在t5時刻,因判斷電容檢測單元c2未被液體覆蓋,更新互電容基準值base1=1930,自電容基準值base2=3100。
由此,本發(fā)明實施例的液體檢測方法聯(lián)合互電容值和自電容值的變化情況來檢測液位, 可有效避免環(huán)境對液位檢測的干擾,提升了液位檢測的準確度。
此外,還需說明的是,從靠近待測容器頂部的電容檢測單元或從位于待測容器中間任意位置的電容檢測單元開始進行檢測判斷的具體實現(xiàn)方式與上述實施例所描述的實現(xiàn)方式類似,這里不再詳細贅述。
綜上,根據(jù)本發(fā)明實施例提出的液位檢測方法,分別檢測當前電容檢測單元的自電容值和互電容值,然后根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋當前電容檢測單元,如果判斷有液體覆蓋當前電容檢測單元,則向上分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)與沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。由此,該方法聯(lián)合互電容值和自電容值的變化情況來檢測液位,可有效避免環(huán)境對液位檢測的干擾,提升了液位檢測的準確度。并且,該方法不需要增加額外的外部器件例如溫度傳感器,電路簡單,算法可靠。
圖5是根據(jù)本發(fā)明實施例的液位檢測裝置的方框示意圖。如圖5所示,液位檢測裝置包括電容檢測模塊,多個電容檢測單元10和控制模塊20。
在本發(fā)明的一個具體示例中,如圖2所示,多個電容檢測單元10與待測容器4緊密貼合,例如通過3m膠粘貼,并且,多個電容檢測單元10可按照液體在待測容器4內的上升方向依次排列,例如多個電容檢測單元10可在待測容器4的底部的垂直方向上依次排列,被液面覆蓋的電容檢測單元的數(shù)量將隨著液位的變化而變化。應當理解的是,多個電容檢測單元與待測容器的設置方式不限于貼合方式。
并且,電容檢測單元被液面覆蓋時的自電容值與未被液面覆蓋時的自電容值不一致,即言,液位上升或下降時電容檢測單元的自電容值將會發(fā)生變化。而且,環(huán)境發(fā)生變化時,電容檢測單元的自電容和互電容值均會發(fā)生變化,因此控制模塊20通過監(jiān)測電容檢測單元的自電容和互電容值即可準確識別液位信息。
如圖5所示,控制模塊20與多個電容檢測單元10相連,控制模塊20用于分別檢測當前電容檢測單元的自電容值和互電容值,并根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋當前電容檢測單元,如果判斷有液體覆蓋當前電容檢測單元,控制模塊20則向上分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。
進一步地,根據(jù)本發(fā)明的一個實施例,如果判斷沒有液體覆蓋當前電容檢測單元,控 制模塊20則向下分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷有液體覆蓋電容檢測單元時,根據(jù)有液體覆蓋時對應的電容檢測單元獲取液位信息。
應當理解的是,當當前電容檢測單元被液體覆蓋時,控制模塊20判斷液體至少達到當前電容檢測單元所處的位置,而當當前電容檢測單元未被液體覆蓋時,控制模塊20判斷未上升的當前電容檢測單元所處的位置。需要說明的是,當前電容檢測單元可在待測容器的底部或頂部、或中間任意位置。
需要說明的是,向上指的是液位的上升方向,如圖2中箭頭所示的方向,如此,向上檢測即為檢測當前電容檢測單元上面的電容檢測單元。相應地,向下即為圖2中箭頭所示的反方向,如此,向下檢測即為檢測當前電容檢測單元下面的電容檢測單元。
也就是說,控制模塊20可先啟動互電容模式以在互電容模式下檢測當前電容檢測單元的互電容值,再啟動自電容模式以在自電容模式下檢測電路檢測當前電容檢測單元的自電容值。并且,可從多個電容檢測單元10中任一個電容檢測單元開始檢測,如果判斷有液體覆蓋當前電容檢測單元,控制模塊20則分別檢測與當前電容檢測單元上面的相鄰電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋當前電容檢測單元;如果判斷沒有液體覆蓋當前電容檢測單元,控制模塊20則分別檢測與當前電容檢測單元下面的相鄰電容檢測單元的自電容值和互電容值,直至判斷有液體覆蓋當前電容檢測單元。
下面以從與待測容器底部最接近的電容檢測單元開始檢測為例來詳細描述本發(fā)明實施例的液位檢測方法。具體地,控制模塊20可從與容器底部最接近的電容檢測單元開始依次向上逐級判斷相應的電容檢測單元是否被液體覆蓋。假設通過n個電容檢測單元進行液位檢測,n個電容檢測單元從下向上依次記為c1、c2、c3、…、cn,n為大于1的整數(shù),當當前電容檢測單元為第i個電容檢測單元ci時,控制模塊20可根據(jù)第i個電容檢測單元ci時的互電容值和自電容值判斷是否有液體覆蓋第i個電容檢測單元ci,如果判斷有液體覆蓋第i個電容檢測單元ci,則說明液體至少上升/下降到第i個電容檢測單元ci所處的位置,控制模塊20再繼續(xù)分時檢測第i+1個電容檢測單元c(i+1)的互電容值和自電容值,此時控制模塊20根據(jù)第i+1個電容檢測單元c(i+1)的自電容值和互電容值判斷是否有液體覆蓋第i+1個電容檢測單元c(i+1),以判斷液體是否上升/下降到第i+1個電容檢測單元c(i+1)所處的位置。
如此控制模塊20逐級檢測自電容值和互電容值并判斷是否有液體覆蓋電容檢測單元,一旦判斷沒有液體覆蓋電容檢測單元,就根據(jù)檢測到?jīng)]有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息,例如,第1個至第i個電容檢測單元對應的判斷結果均為有液體覆蓋,而第i+1個電容檢測單元對應的判斷結果為沒有液體覆蓋,控制 模塊20將第i個電容檢測單元對應的液位信息作為容器的當前液位信息。
具體來說,控制模塊20可以輪詢的方式對多個電容檢測單元10的互電容值和自電容值依次進行檢測,每檢測到一次自電容值和互電容值,就根據(jù)檢測到的自電容值和互電容值判斷是否檢測到相應的電容檢測單元被液體覆蓋,當判斷連續(xù)的n(n為正整數(shù))個電容檢測單元均被液體覆蓋,而第n+1個電容檢測單元未被液體覆蓋時,控制模塊20即可根據(jù)第n個電容檢測單元對應的液位檔位輸出液位信息。
應當理解的是,多個電容檢測單元10中每個電容檢測單元對應一個液位檔位,且每個電容檢測單元對應的液位檔位在程序中預設,如圖2所示,電容檢測單元10可為6個即c1、c2、c3、c4、c5和c6,6個電容檢測單元10分別對應6個液位檔位,且6個液位檔位按順序依次遞增或遞減,例如,c1對應液位1、c2對應液位2、c3對應液位3、c4對應液位4、c5對應液位5和c6對應液位6,且液位1<液位2<液位3<液位4<液位5<液位6。
還應當理解的是,電容檢測單元的數(shù)量和大小是可調的,電容檢測單元越多即n越大,所能檢測到的液位檔位越多,液位檢測精度越高。并且,電容檢測單元面積越大,電容檢測單元的靈敏度就越高。
由此,本發(fā)明實施例的液位檢測裝置,聯(lián)合互電容值和自電容值的變化情況來檢測液位,可有效避免環(huán)境例如溫度對液位檢測的干擾,提升了液位檢測的準確度,對量產(chǎn)的不一致性也有很好的補償作用。并且,該裝置不需要增加額外的外部器件例如溫度傳感器,電路簡單,算法可靠。
根據(jù)本發(fā)明的一個實施例,控制模塊20進一步構造為:獲取當前電容檢測單元的互電容值與對應的互電容基準值之間的第一差值即互電容變化量,并獲取當前電容檢測單元的自電容值與對應的自電容基準值之間的第二差值即自電容變化量,如果第一差值小于第一預設閾值且第二差值大于第二預設閾值,控制模塊20則判斷有液體覆蓋當前電容檢測單元。
并且,如果第一差值大于等于第一預設閾值或第二差值小于等于第二預設閾值,控制模塊20則判斷沒有液體覆蓋所述當前電容檢測單元,并將對應的互電容基準值更新為當前電容檢測單元的互電容值,以及將對應的自電容基準值更新為當前電容檢測單元的自電容值,以將更新后的互電容基準值和自電容基準值用于下一次液位檢測。
也就是說,如果當前電容檢測單元的互電容變化量小于第一預設閾值且該電容檢測單元的自電容變化量大于第二預設閾值,則說明當前電容檢測單元的自電容值和互電容值的變化是由液體變化引起,控制模塊20判斷當前電容檢測單元檢測到了液體,并計算當前電容檢測單元上面的相鄰電容檢測單元的互電容變化量和自電容變化量以判斷該電容檢測單 元是否被液體覆蓋,如此循環(huán)判斷直至判斷到電容檢測單元未被液體覆蓋。并在判斷到電容檢測單元未被液體覆蓋時,控制模塊20根據(jù)與未被液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息,并根據(jù)未檢測到液體時對應的電容檢測單元的互電容值和自電容值分別更新對應的互電容基準值和自電容基準值,以將更新后的互電容基準值和自電容基準值用于下一次液位檢測。
需要說明的是,多個電容檢測單元10對應的互電容基準值可設置為同一個互電容基準值,多個電容檢測單元10對應的自電容基準值也可設置為同一個自電容基準值,從而使得寄存器空間相對較小;多個電容檢測單元10對應的互電容基準值可設置為互不相同的互電容基準值,多個電容檢測單元10對應的自電容基準值可設置為互不相同的自電容基準值,從而使得檢測準確度相對較高。
還需說明的是,互電容基準值和自電容基準值的設置情況可根據(jù)實際需求設置。并且,互電容基準值的初始設定值可根據(jù)無液體時每個電容檢測單元的互電容值選取,自電容基準值的初始設定值可根據(jù)無液體時每個電容檢測單元的自電容值選取。
具體來說,本發(fā)明實施例的裝置采用n個電容檢測單元進行液位檢測,n個電容檢測單元從容器底部向上依次為第1個電容檢測單元、第2個電容檢測單元、第3個電容檢測單元、……、第n個電容檢測單元??刂颇K20具體可采用如下流程:控制模塊20首先啟動互電容模式,獲取第i(i可為1至n中的任意整數(shù)值)個電容檢測單元的互電容值rawdata1(i),將第i個電容檢測單元的互電容值rawdata1(i)與對應互電容基準值base1(i)進行比較以計算出第i個第一差值differ1(i)=|rawdata1(i)-base1(i)|,以及保存計算出第i個第一差值differ1(i)。
其次,控制模塊20再啟動自電容模式,獲取第i個電容檢測單元的自電容值rawdata2(i),將第i個電容檢測單元的自電容值rawdata2(i)與對應的自電容基準值base2(i)進行比較以計算出第i個第二差值differ2(i)=|rawdata2(i)-base2(i)|,并保存計算出的第i個第二差值differ2(i)。
再次,控制模塊20判斷第i個電容檢測單元是否被液體覆蓋,如果第i個第一差值differ1(i)小于第一預設閾值vref1即differ1(i)<vref1,且第i個第二差值differ2(i)大于第二預設閾值即differ2(i)>vref2,則判斷第i個電容檢測單元被液體覆蓋。否則,如果第i個第一差值differ1(i)大于等于第一預設閾值vref1即differ1(i)≥vref1,或者第i個第二差值differ2(i)大于第二預設閾值即differ2(i)≤vref2,則判斷第i個電容檢測單元未被液體覆蓋。
并且,在判斷第i個電容檢測單元被液體覆蓋之后,控制模塊20按照前面的步驟繼續(xù)檢測第i+1個電容檢測單元的自電容值和互電容值并進行判斷。而在判斷第i個電容檢測單 元未被液體覆蓋之后,控制模塊20將第i-1個電容檢測單元對應的液位檔位作為容器的當前液位,并更新互電容基準值和自電容基準值,其中,如果互電容基準值互不相同,則只更新第i個電容檢測單元對應的互電容基準值,將檢測到的互電容值作為互電容基準值,而如果互電容基準值均相同,則更新該互電容基準值,將檢測到的互電容值作為互電容基準值;同理,如果自電容基準值互不相同,則只更新第i個電容檢測單元對應的自電容基準值,將檢測到的自電容值作為自電容基準值,而如果自電容基準值均相同,則更新該自電容基準值,將檢測到的自電容值作為自電容基準值。
其中,在第一次計算過程中,采用的初始互電容基準值base1和初始自電容基準值base2可提前內置在eeprom里,也可以把上電后無液體時采樣到的互電容值設定為初始互電容基準值base1、無液體時采樣到的自電容值設定為初始自電容基準值base2。
需要說明的是,第一預設閾值vref1和第二預設閾值vref2的設置與靈敏度有關,如果vref1和vref2設置過小,判斷條件(differ1<vref1)且(differ2>vref2)極容易滿足,則細微的環(huán)境變化也會被錯誤的判定為液位變化,而如果vref1和vref2設置過大,判斷條件(differ1<vref1)且(differ2>vref2)難以滿足,則液位變化時無輸出或輸出錯誤液位。
并且,第一預設閾值vref1和第二預設閾值vref2可根據(jù)實際測試結果設置,具體地,可在電容檢測單元未被液體覆蓋時,分別測量該電容檢測單元的第一互電容測量值和第一自電容測量值,以及在該電容檢測單元被液體覆蓋時,分別測量該電容檢測單元的第二互電容測量值和第二自電容測量值,這樣可根據(jù)第一互電容測量值與第二互電容測量值之間的差值設置第一預設閾值vref1,并可根據(jù)第一自電容測量值與第二自電容測量值之間的差值設置第二預設閾值vref2,例如如果第一互電容測量值與第二互電容測量值之間的差值為20,則第一預設閾值vref1可選取20-30之間的值;如果第一自電容測量值與第二自電容測量值之間的差值為100,則第二預設閾值vref2可選取70-100之間的值。
根據(jù)本發(fā)明的一個實施例,控制模塊20進一步構造為:將多個電容檢測單元中的當前電容檢測單元作為激勵端,且將其他電容檢測單元接地,以檢測當前電容檢測單元的自電容值,以及將多個電容檢測單元中每個電容檢測單元均作為激勵端,以檢測當前電容檢測單元的互電容值。
也就是說,如圖7所示,在當前電容檢測單元作為激勵端而其他電容檢測單元作為地的情況下,檢測到的電容可定義為自電容,如此只向當前電容檢測單元施加激勵信號時,控制模塊20通過檢測當前電容檢測單元的電容即可獲得當前電容檢測單元的自電容;在多個電容檢測單元同時作為激勵端的情況下,消除了任意兩個電容檢測單元之間的電容影響的電容定義為互電容,如此向每個電容檢測單元施加激勵信號時,控制模塊20通過檢測當前電容檢測單元的電容即可獲得當前電容檢測單元的互電容。
根據(jù)本發(fā)明的一個實施例,如圖2和圖6所示,多個電容檢測單元10可設置在電路板2上,即言可電路板2上可印制多個電容檢測單元10,電路板2通過排線1連接到控制模塊20。其中,排線1包含電源、地、電容檢測模塊導線。
或者,根據(jù)本發(fā)明的另一個實施例,多個電容檢測單元10與控制模塊20可設置在同一電路板2上。具體來說,當控制模塊20離硬件電路較遠或者電容檢測單元很多時,可以把多個電容檢測單元10與控制模塊20均放置在電路板2上。
此外,還需說明的是,從靠近待測容器頂部的電容檢測單元或從位于待測容器中間任意位置的電容檢測單元開始進行檢測判斷的具體實現(xiàn)方式與上述實施例所描述的實現(xiàn)方式類似,這里不再詳細贅述。
綜上,根據(jù)本發(fā)明實施例提出的液位檢測裝置,控制模塊分別檢測當前電容檢測單元的自電容值和互電容值,然后根據(jù)當前電容檢測單元的自電容值與對應的自電容基準值之間的關系和當前電容檢測單元的互電容值與對應的互電容基準值之間的關系判斷是否有液體覆蓋所述當前電容檢測單元,如果判斷有液體覆蓋所述當前電容檢測單元,則向上分別檢測與當前電容檢測單元相鄰的電容檢測單元的自電容值和互電容值,直至判斷沒有液體覆蓋電容檢測單元時,根據(jù)沒有液體覆蓋時對應的電容檢測單元相鄰的前一個電容檢測單元獲取液位信息。由此,該裝置聯(lián)合互電容和自電容的變化情況來檢測液位,可有效避免環(huán)境對液位檢測的干擾,提升了液位檢測的準確度。并且,該裝置不需要增加額外的外部器件例如溫度傳感器,電路簡單,算法可靠。
在本發(fā)明的描述中,需要理解的是,術語“中心”、“縱向”、“橫向”、“長度”、“寬度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”“內”、“外”、“順時針”、“逆時針”、“軸向”、“徑向”、“周向”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。
此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本發(fā)明的描述中,“多個”的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本發(fā)明中,除非另有明確的規(guī)定和限定,術語“安裝”、“相連”、“連接”、“固定”等術語應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或成一體;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內部的連通或兩個元件的相互作用關系,除非另有明確的限定。對于本領域的普通技術人員而言,可以根據(jù)具體情況理解上述術語在本發(fā)明中的具體含義。
在本發(fā)明中,除非另有明確的規(guī)定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接觸,或第一和第二特征通過中間媒介間接接觸。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或僅僅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或僅僅表示第一特征水平高度小于第二特征。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內可以對上述實施例進行變化、修改、替換和變型。