新聞中心

電容觸摸傳感的理論框架

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

簡(jiǎn)單解碼:按鍵是否被按下?

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

為了確定按鍵是否被按下,需要先確定滑動(dòng)平均值。確定平均值之后,根據(jù)測(cè)量值相對(duì)于平均值的偏差可以指示按鍵是否被按下。對(duì)于我們的系統(tǒng),讀數(shù)下降表示按鍵按下。因?yàn)樯婕暗揭恍┉h(huán)境效應(yīng)和其他因素(例如噪聲),所以必須設(shè)置一定的容限。使用4個(gè)變量來確定按鍵是否被按下:

 unsigned char reading;  // 讀數(shù)
 unsigned char average;  // 平均值
 unsigned char trip;  // 門限值
 unsigned char hyst;  // 傳感器遲滯值

檢測(cè)按下的最簡(jiǎn)單方式如下:

 if (reading < average – trip) {
  Buttons.SENSOR0 = PRESSED;
 } else {
  Buttons.SENSOR0 = UNPRESSED;
 }
 
但是,該系統(tǒng)未提供遲滯值,若讀數(shù)在均值與判決門限值之差附近上下變化,就會(huì)出現(xiàn)系統(tǒng)在判定按下與未按下之間來回振蕩這一糟糕的情形。為了避免這一點(diǎn),需要包含遲滯值:

 if (reading < average – trip) {
  Buttons.SENSOR0 = PRESSED;
 } else if (reading > average – trip + hyst) {
  Buttons.SENSOR0 = UNPRESSED;
 }

以上代碼在按鈕釋放中增添了遲滯值,使按鈕不會(huì)產(chǎn)生振動(dòng)。這也為電容開關(guān)構(gòu)造了最低程度的消抖功能。機(jī)械按鈕會(huì)在0-VDD之間來回抖動(dòng)。電容按鈕不會(huì)產(chǎn)生該問題;但是,通過增添遲滯值,按鈕按下的操作與原來無異,只是加強(qiáng)了對(duì)按鈕釋放的判斷。這可以產(chǎn)生最低程度的消抖效果,因?yàn)閱未伟聪氯匀豢梢杂|發(fā)按鍵。要進(jìn)一步增強(qiáng)消抖,可以要求連續(xù)幾次的傳感器讀數(shù)均有效,才表示按鈕確實(shí)按下,然后向應(yīng)用程序指示按鈕被按下。這樣可以防止虛假的低讀數(shù)影響系統(tǒng)。

復(fù)雜解碼方案

上面用于確定按鈕是否被按下的解碼方案是相當(dāng)簡(jiǎn)單的。在本文的以下部分中,將使用較復(fù)雜的方案。它們包括基于百分比的檢測(cè)、多鍵表決,以及計(jì)算量很少的百分比按下檢測(cè)。此外,還將討論何時(shí)使用簡(jiǎn)單方案,何時(shí)使用較復(fù)雜的方案。


在前面的簡(jiǎn)單方案中,門限值變量trip是一個(gè)低于平均值的絕對(duì)值。更好的做法是采用減法求一個(gè)相對(duì)值,例如相對(duì)于標(biāo)稱值的百分比偏差。為了實(shí)現(xiàn)這一點(diǎn),必須執(zhí)行更多的計(jì)算,這就要求系統(tǒng)作出折衷。使用絕對(duì)門限值需要更多地了解系統(tǒng)的工作,而使用基于百分比的系統(tǒng)可適應(yīng)許多處于合理限度內(nèi)的系統(tǒng)。手指按下產(chǎn)生的電容變化通常介于1%至20%這一可檢測(cè)范圍之間。如果手指按下產(chǎn)生的讀數(shù)變化小于1%,系統(tǒng)會(huì)遇到錯(cuò)誤。觸摸裸露金屬傳感器產(chǎn)生的讀數(shù)會(huì)高于20%,但它并不常用。如果系統(tǒng)以這種方式工作,則可以采用簡(jiǎn)單開關(guān)算法。



評(píng)論


相關(guān)推薦

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

關(guān)閉