<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 物聯網與傳感器 > 設計應用 > 電容式觸摸替代機械式按鍵

          電容式觸摸替代機械式按鍵

          作者:MeenakshiSundaram 時間:2012-05-22 來源:電子產品世界 收藏

            機械式按鍵與薄膜開關的時代已經被創(chuàng)新酷炫的感應技術所替代,它容易使用而且更加耐用。大多數設計只須經過極小的修改,就能加入按鍵。設計人員很容易就可以使用簡單耐用的觸摸替代機械按鍵。

          本文引用地址:http://www.ex-cimer.com/article/132685.htm

            當今市場上有許多簡單易用的設計,可直接使用觸摸傳感器來替代按鍵。傳感器檢測到手指存在時,就會把輸出引腳切換至高或低狀態(tài),以仿真機械按鈕的啟動/關閉狀態(tài)。但這種替代還不僅止于此。有許多特殊種類的機械式用戶接口無法在1:1輸入/輸出模式下工作,包括。雖然接口結構簡單,但要替代的不只是一個個按鈕。本文將探討各種利用電容式觸摸傳感器替代的方法。

            機械鍵盤:底層基礎結構

            傳統(tǒng)機械鍵盤把許多按鈕排成數行與數列的矩陣。通過驅動列或行線(掃描線),檢查另一條線(讀取線)來檢測任何持續(xù)動作(按壓),即可發(fā)現按壓行為。這種設計概念可分成兩類:

            輪詢式(Polling-based)
            中斷式(Interrupt-based)

            輪詢式:

            獨立式按鍵掃描控制器通常會持續(xù)輪詢掃描線,并檢查讀取線是否有任何持續(xù)/按壓動作。讀取線通常會通過一個電阻上拉至電源(Vcc) 或邏輯狀態(tài)‘1’,系統(tǒng)會一次輪詢一條掃描線,輪詢后將線路切換至‘0’狀態(tài),其他線路則維持為 “1”的邏輯狀態(tài)。每當有按鈕按壓時,掃描與讀取線就會短路,掃描線的 ‘0’會傳送到讀取線,代表有按鈕按壓(如圖1所示)。當檢測到按壓時,控制器會通過I2C或SPI等通訊接口把事件報告給主控端,而不是讓主控端自己執(zhí)行按鍵掃描任務,因此對單芯片系統(tǒng)而言缺乏效率且不實用?! ?/p>


          圖1:機械鍵盤工作模式

            中斷式:

            這種方法通常用在host/master自己掃描按鍵的系統(tǒng),所有掃描線都接地,而讀取線則上拉至Vcc。當按鈕被按壓后,掃描線的 ‘0’就會通過物理短路(按鍵按壓)傳送到讀取線。讀取線讀取到 ‘0’時,會觸發(fā)一個中斷。host此時會輪詢掃描線,找出按壓的按鍵。host不必持續(xù)對掃描線進行輪詢,因此能改善CPU的帶寬使用情況。

            機械鍵盤:頂尖替代方案

            前面所介紹的方法中,系統(tǒng)會輪詢掃描線,找出按壓的按鈕,或是持續(xù)輪詢或是當發(fā)生中斷時才輪詢。這就構成了替代方法的基礎。大多數電容式觸摸控制器都屬于微控制器,它不只是有電容感應的功能。電容式觸摸控制器的MCU部分還會負責執(zhí)行替代/模擬的部分。

          電容相關文章:電容原理
          電容式觸摸屏相關文章:電容式觸摸屏原理
          電容傳感器相關文章:電容傳感器原理
          上拉電阻相關文章:上拉電阻原理

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();