電容觸摸傳 ... 電容觸摸傳感的理論框架 " />

国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

電容觸摸傳感的理論框架

發布時間:2009-8-14 14:43    發布者:賈延安
關鍵詞: 傳感 , 電容 , 框架 , 理論
考慮到美觀、整潔和成本效益等方面的因素,在包括消費類電子產品、家用電器等在內的許多電子產品中,觸摸傳感應用正變得越來越流行。本文將討論與電容觸摸傳感">電容觸摸傳感工作相關的基本概念,以及如何簡便地實現電容觸摸傳感">電容觸摸傳感功能。

  電容的相關物理性質

  為了更好地理解在電容觸摸傳感">電容觸摸傳感應用的硬件、布線和軟件開發中需要采取哪些措施,了解它內在的物理性質非常重要。控制它的是兩個基本公式和一個常識。第一個公式(見公式1)用于求電容值,它說明如何根據極板模型使用面積、距離和材料屬性來定義電容。第二個公式(見公式2)說明電容電壓電流的關系,并引入RC電路的充電速率(等于時間常數τ)。第三個公式(見公式3)說明并聯電容的總電容值等于兩者相加。



  公式1是雙極板電容的模型。它適用于觸摸傳感應用,因為在將手指靠近傳感器極板時,手指的作用也類似于一個極板。傳感器具有一定的標稱電容C1(由于走線、附近的地線等原因而產生)。將手指靠近時,距離“d”下降,而和A上升,并引入了并聯的附加電容“C2”。所產生的效果就是傳感器線路上的電容上升,上升值等于附加電容C2。然后,軟件必須通過硬件(向單片機中輸入傳感器讀數)來檢測電容變化。硬件將利用公式2(充電時間公式)的某種形式向單片機傳達傳感器讀數。

  傳感器設計

  傳感器設計通常很簡單。設計布線時,需要注意容性耦合效應及其關聯的物理性質。焊盤的面積及覆蓋在其上方的材料的厚度是最關鍵的因素。對于小鍵盤類型的應用,傳感器的大小應當至少為將手指按平時,指尖面積的大小。根據公式1中的面積“A”,傳感器較大時,其傳感能力通常也較好。此外,人們并不一定能夠恰當地控制手指的放置位置(從而控制產生的電容),而不同的兩個人也不會具有完全相同的電容。所以,傳感器的容限必須盡可能很大,可以處理遇到的各種觸摸情況,同時準確地報告按下狀態。

  有些時候,指尖大小的傳感器并不總是最佳的。作為一條準則,傳感器焊盤上方的材料越厚,焊盤就必須越大,才能檢測到是否有手指按下。這是因為根據公式1,當傳感器焊盤上方的材料厚度增加時,距離“d”就會增大,從而手指的電容就會下降。對于需要非常精確的傳感器控制的應用(例如,傳感器很小),如果材料覆蓋層很厚,則最終會限制傳感器檢查按下狀態的能力。因此,如果傳感器非常小,覆蓋層必須盡可能薄。此外,如果非常小的傳感器相互緊鄰,還會產生容性耦合,在傳感器之間布置接地電路可以減少這種耦合效應。此外,還可以使用一些軟件技巧來辨別相互耦合程度很高的傳感器。

  用于捕捉傳感器數據并將其轉換為數值(讀數)的硬件可采用許多方式開發。在電容觸摸傳感">電容觸摸傳感設計中,用硬件區分不同單片機供應商針對此應用推出的產品。根據公式2,可以測量和電流與電壓關系有關的3個基本量:

  1. 充電至固定電壓需要的時間變化量(Δt,固定V);

  2. 固定充電時間內的電壓變化量(ΔV,固定t);

  3. 固定時間周期中的頻率變化量(Δf,固定T) 。

  頻率測量方案基于充電速率公式(重復許多次),但它對應于較長的周期T,而不是單個充電周期t。所以,充電至固定電壓需要的時間變化量(Δt,固定V)和固定充電時間內的電壓變化量(ΔV,固定t),定義了檢測電容變化的基本方法。根據需要,可以基于這些基本方法來構造新的測量方案。

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

  本文以頻率測量方案為例進行說明,但每個系統都會應用后處理方案。使用一種方案時,電容讀數可能會上升,而使用另一種方案時,電容讀數可能會下降,但這可以在軟件中調整。選擇了硬件方案之后,讀數將根據請求輸入單片機,或按照軟件配置指定的其他時間間隔輸入單片機。

  單片機軟件與后處理

  單片機中的軟件負責處理電容觸摸傳感">電容觸摸傳感應用中的許多工作,前提是硬件和傳感器均正常工作。傳感器和整個系統的質量越好,軟件的實現就越簡單。開發軟件之前,需要記住每個傳感器都具有一定的固有寄生電容:Cp(或公式3中的C1)。因此,每個傳感器都可以檢測到某個標稱值。通過觀察傳感器的輸出,可以直觀方便地確定它,但必須先在軟件中設定該標稱值,然后才能以此為基準計算相對于它的偏差。實現它的最好方式是創建一個滑動平均值——即,16 點平均值。通過存儲先前16個值來計算平均值的效率很低,所以改為使用一種看起來較復雜,但計算較簡單、可節省存儲空間的求均值方法。

  與具有極強計算能力的較大的計算機處理器相比,單片機通常在這方面受到限制。與實際執行除法相比,使用移位、加法和減法可以降低性能損失。此外,這個求均值程序并不僅限用于電容觸摸傳感">電容觸摸傳感——它對于8位單片機的很多應用都非常有用。

  確定了平均值后,接下來必須構造傳感器掃描循環,目的是監視相對于平均值的偏差。從一個簡單循環開始,如圖1流程圖所示。掃描循環使用中斷來驅動,并使用兩個定時器和頻率偏移檢測方法。Timer0決定固定的時間周期T,在該時間周期內,將測量進入Timer1捕捉模塊的正邊沿數量,然后它產生一個頻率測量值。正邊沿數量越多,說明頻率越高。準備好獲取測量值時,Timer0發生溢出以觸發中斷,而Timer1會測量正邊沿數量。流程圖的“捕捉讀數”框顯示了何時獲取讀數。



  下一步是確定按鈕是否被按下。如果按鈕未被按下,則繼續對傳感器讀數求均值。如果按鈕被按下,則不對傳感器讀數求均值,也就是說它將繼續一直跟蹤讀數(通常這不是所期望的)。然后,通過在C代碼中使用位標志或通過其他方式,向應用程序代碼指示按鈕已被按下。不要在中斷服務程序(ISR)中調用需要大量進一步計算的程序——較好的做法是設置一個標志,讓主循環進行響應。

  此時,如果只有單個按鍵,則按照基本方法的描述,通過將定時器清零或將電容對地放電來重新開始測量過程。如果存在多個按鍵,則按順序掃描每個按鍵。按照圖1中的流程圖,基本的系統可以定期掃描按鍵。

  尚待討論的是如何確定按鍵是否被按下。最需要考慮和注意的是圖1中的“按鍵是否被按下?”判斷塊的細節。這將在下一步討論。

  為了確定按鍵是否被按下,需要先確定滑動平均值。確定平均值之后,根據測量值相對于平均值的偏差可以指示按鍵是否被按下。對于我們的系統,讀數下降表示按鍵按下。因為涉及到一些環境效應和其他因素(例如噪聲),所以必須設置一定的容限。但是,該系統未提供遲滯值,若讀數在均值與判決門限值之差附近上下變化,就會出現系統在判定按下與未按下之間來回振蕩這一糟糕的情形。為了避免這一點,需要包含遲滯值:

  if (reading < average – trip) {

  Buttons.SENSOR0 = PRESSED;

  } else if (reading > average – trip + hyst) {

  Buttons.SENSOR0 = UNPRESSED;

  }

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

  復雜解碼方案

  上面用于確定按鈕是否被按下的解碼方案是相當簡單的。

  對于百分比按下檢測,將繼續使用前面討論的求均值方案。但是,讀數變量將變換為如下形式:

  unsigned long percent;

  percent = average – (reading*16);

  if (percent < 0) {

  percent = 0; // 忽略電容上升

  } else {

  percent = percent * 1000; // 乘以1000

  percent = percent / average; // 結果使用100.0%的形式

  }

  結果變量percent包含0~1000的值,更具體地說,值的范圍約為0~200(代表20.0%)。結果值保持單個小數位,因為更多小數位并不會提高精度。

  更換先前的“if”語句,產生類似于以下語句的“if”語句:

  #define PCT_ON 50 // >5.0%,打開

  #define PCT_OFF 30 // <3.0%,關閉

  if (reading < PCT_ON) {

  Buttons.SENSOR0 = PRESSED;

  } else if (reading > PCT_OFF) {

  Buttons.SENSOR0 = UNPRESSED;

  }

  下一個復雜解碼方案稱為“多鍵表決”。如前面所討論,傳感器不僅會與手指和周圍的地產生耦合,而且會相互耦合。因此,觸摸一個傳感器會影響另一個傳感器,但影響程度通常會低于其他意外激勵。如果即使影響程度較低,影響仍足以觸發按下狀態,會發生什么情況?

  開發多鍵表決系統可以幫助解決該問題,以及與小鍵盤污染關聯的其他問題。多鍵表決系統會選擇按下后受影響最大的按鍵,代價是多次按下動作只能產生單個按鍵響應。例如,如果觸摸會影響兩個按鍵,但手指按下的按鍵受到的影響最大,該算法將選擇受影響最大的按鍵。

  該算法必須獲取來自所有可用傳感器的數據。舉例來說,假定使用了4個傳感器。算法還是使用百分比按下檢測方法,因為每個傳感器的讀數可能會稍有不同,采用相對與原始值的偏差可以起到一些幫助。系統必須掃描全部4個傳感器,并在掃描之后執行以下步驟:

  1. 首先,掃描所有傳感器;

  2. 在每次掃描期間,記錄每個傳感器的受影響百分比;

  3. 根據受影響程度進行排序;

  4. 基于步驟3,對索引進行排序;

  5. 位于數組單元0的傳感器的受影響程度最高;

  6. 確定是否大于最小門限值;

  7. 指示按下/未按下。

  代碼示例1(略)

  最后一個復雜解碼方案也是百分比方案。百分比計算會占用8位單片機上可用存儲器總空間中大量的程序和RAM存儲空間,占用。在可能的情況下,最好降低這種存儲器消耗。如果使用較大的數值,并可以承受一定的分辨率損失,則可以使用一種較簡單的百分比方法。

  通過使用更多的移位來代替除法(類似于求均值方案),可以用如下方式確定平均值的百分比門限值:

  threshold = average >> 3; // 傳感器

  // 門限值現在為1/8,即12.5%

  if (reading < average – threshold)

  {...}

  以下列出了一些有用的百分比。

  threshold = reading >> 1; // 1/2 = 0.500

  threshold = reading >> 2; // 1/4 = 0.250

  threshold = reading >> 3; // 1/8 = 0.125

  threshold = reading >> 4; // 1/16 = 0.063

  threshold = reading >> 5; // 1/32 = 0.031

  threshold = reading >> 6; // 1/64 = 0.016

  threshold = reading >> 7; // 1/128 = 0.008

  對于進行移位的每個位,門限值會損失一定的舍入分辨率。但是,使用較大的16位數值時,對于1/16的百分比(即6.25%),損失4個最低位是可以接受的。現在,對于簡單百分比計算,可以省去前面使用的unsigned long percent變量,以及執行除法所需的額外計算量。這是另一種并不僅限用于電容觸摸傳感">電容觸摸傳感的技術,但它對于觸摸傳感的實現非常有用。

  結論

  有許多方法可以實現電容觸摸系統,市場上針對此應用推出的各種嵌入式產品充分證明了這一點。關于這些解決方案有趣的一點是它們基于相同的物理原理,具有共同的基礎。其中一些解決方案采用了不同的布線方式(將地與傳感器組合);許多解決方案涉及到使用專有的材料。但是,電容觸摸傳感">電容觸摸傳感背后的概念是相當簡單的——關鍵在于在實現設計時需要理解應用背后隱含的物理原理。基于這種理解,結合對于所用硬件和軟件方案的良好理解,就可以簡便地實現電容觸摸傳感">電容觸摸傳感系統。
本文地址:http://m.qingdxww.cn/thread-2493-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
alpha321 發表于 2009-11-14 11:13:54
看過,學習
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲小鲜肉帅哥gary| 亚洲一区二区三区免费看| 午夜视频在线观看国产| 青春草国产视频| 最新欧美一级视频| 宅男午夜视频在线观看| 又黄又涩| 精品国产国产综合精品| 在线a视频| 欧美亚洲另类图片| 正在播放一区二区| 2022久久精品国产色蜜蜜麻豆| 久青草国产在线视频| 中文字幕日本久久2019| 欧美在线黄色| 中文字幕在线精品不卡| 18亚洲男同gay1069| 欧美人与动牲交A精品| 香蕉视频一区二区三区| 日韩三级一区二区三区| 性xxxxbbbbxxxx中国| 国产成人午夜精品免费视频| 午夜在线观看免费完整直播网| 天天插天天| 日韩在线视| 亚洲 成人 在线| 999国产高清在线精品| 妻子的秘密HD观看| 日韩不卡在线| 四虎在线观看一区二区| 亚洲日日操| 久久精品一区二区三区资源网| 日本aaa视频| 日韩欧美在线综合网高清| 天天看片天天爽国产在线| 第一次破女初国产美女| 青柠在线观看视频在线高清| 欧美特级黄| 五月激激激综合网色播胖胖| 一个人在线观看www| 恋夜秀场1234手机视频在线观看|