新聞中心

電容觸摸傳感的理論框架

作者:Thomas Perme 微芯科技公司 應(yīng)用工程師 時(shí)間:2009-07-20 來源:電子產(chǎn)品世界 收藏

  對(duì)于測(cè)量充電至固定電壓需要的時(shí)間變化量這種方法,手指產(chǎn)生的附加電容會(huì)增加充電時(shí)間(C上升),所以時(shí)間讀數(shù)會(huì)相應(yīng)地上升。對(duì)于測(cè)量固定充電時(shí)間內(nèi)的電平變化量這種方法,附加電容會(huì)降低相同時(shí)間量內(nèi)所能達(dá)到的電壓,所以電壓讀數(shù)會(huì)下降。最后,對(duì)于測(cè)量固定時(shí)間周期中的頻率這種方法,頻率會(huì)隨振蕩器RC常數(shù)的上升而下降。因此,頻率讀數(shù)會(huì)下降。

本文引用地址:http://m.butianyuan.cn/article/96399.htm

  本文以頻率測(cè)量方案為例進(jìn)行說明;但每個(gè)系統(tǒng)都會(huì)應(yīng)用后處理方案。使用一種方案時(shí),電容讀數(shù)可能會(huì)上升,而使用另一種方案時(shí),電容讀數(shù)可能會(huì)下降,但這可以在軟件中調(diào)整。選擇了硬件方案之后,讀數(shù)將根據(jù)請(qǐng)求輸入單片機(jī),或按照軟件配置指定的其他時(shí)間間隔輸入單片機(jī)。對(duì)于本文中的示例,讀數(shù)下降代表按鍵按下。

  單片機(jī)軟件與后處理

  單片機(jī)中的軟件負(fù)責(zé)處理應(yīng)用中的許多工作,前提是硬件和均正常工作。和整個(gè)系統(tǒng)的質(zhì)量越好,軟件的實(shí)現(xiàn)就越簡單。開發(fā)軟件之前,需要記住每個(gè)傳感器都具有一定的固有:Cp(或公式3中的C1)。因此,每個(gè)傳感器都可以檢測(cè)到某個(gè)標(biāo)稱值。通過觀察傳感器的輸出,可以直觀方便地確定它。但必須先在軟件中設(shè)定該標(biāo)稱值,然后才能以此為基準(zhǔn)計(jì)算相對(duì)于它的偏差。實(shí)現(xiàn)它的最好方式是創(chuàng)建一個(gè)滑動(dòng)平均值——即,16點(diǎn)平均值。通過存儲(chǔ)先前16個(gè)值來計(jì)算平均值的效率很低,所以改為使用一種看起來較復(fù)雜,但計(jì)算較簡單、可節(jié)省存儲(chǔ)空間的求均值方法。以下代碼執(zhí)行求均值過程。是傳感器讀數(shù)值,作為16位無符號(hào)值或變量。

reading  = ; // 傳感器

bigval   = reading << 4; // 乘以16

smallavg = average >> 4; // 除以16

average += reading – smallavg; // 求均值

 

  與具有極強(qiáng)計(jì)算能力的較大的計(jì)算機(jī)處理器相比,較小的單片機(jī)通常在這方面受到限制。與實(shí)際執(zhí)行除法相比,使用移位、加法和減法可以降低性能損失。此外,這個(gè)求均值程序并不僅限用于——它對(duì)于8位單片機(jī)的很多應(yīng)用都非常有用。

  在本文提供的大多數(shù)示例和算法中,每次將僅討論一個(gè)傳感器。只需在軟件中使用值的數(shù)組,通過添加數(shù)組中的元素來增加傳感器數(shù)量,即可使之與硬件匹配(即,average[0]..average[N])。

  現(xiàn)在,已經(jīng)確定了平均值,接下來必須構(gòu)造傳感器掃描循環(huán),目的是監(jiān)視相對(duì)于平均值的偏差。從一個(gè)簡單循環(huán)開始,如圖1中的流程圖所示。掃描循環(huán)使用中斷來驅(qū)動(dòng),并使用兩個(gè)定時(shí)器和檢測(cè)方法。Timer0決定固定的時(shí)間周期T,在該時(shí)間周期內(nèi),將測(cè)量進(jìn)入Timer1捕捉模塊的正邊沿?cái)?shù)量,然后它產(chǎn)生一個(gè)頻率測(cè)量值。正邊沿?cái)?shù)量越多,說明頻率越高。準(zhǔn)備好獲取測(cè)量值時(shí),Timer0發(fā)生溢出以觸發(fā)中斷,而Timer1會(huì)測(cè)量正邊沿?cái)?shù)量。流程圖的“捕捉讀數(shù)”框顯示了何時(shí)獲取讀數(shù)。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉