新聞中心

EEPW首頁 > 物聯(lián)網(wǎng)與傳感器 > 設計應用 > 電容觸摸傳感的理論框架

電容觸摸傳感的理論框架

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

簡單解碼:按鍵是否被按下?

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

為了確定按鍵是否被按下,需要先確定滑動平均值。確定平均值之后,根據(jù)測量值相對于平均值的偏差可以指示按鍵是否被按下。對于我們的系統(tǒng),讀數(shù)下降表示按鍵按下。因為涉及到一些環(huán)境效應和其他因素(例如噪聲),所以必須設置一定的容限。使用4個變量來確定按鍵是否被按下:

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

檢測按下的最簡單方式如下:

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

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

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

復雜解碼方案

上面用于確定按鈕是否被按下的解碼方案是相當簡單的。在本文的以下部分中,將使用較復雜的方案。它們包括基于百分比的檢測、多鍵表決,以及計算量很少的百分比按下檢測。此外,還將討論何時使用簡單方案,何時使用較復雜的方案。


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



評論


相關(guān)推薦

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

關(guān)閉