<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式技術(shù)支持的感應按鍵設計

基于嵌入式技術(shù)支持的感應按鍵設計

作者: 時(shí)間:2012-02-09 來(lái)源:網(wǎng)絡(luò ) 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/149742.htm

技術(shù)是一項新興的技術(shù),如今已經(jīng)被廣泛用于各種產(chǎn)品。特別是近兩年來(lái),采用的家電產(chǎn)品呈現雨后春筍般的繁盛景象。目前,市面上的這類(lèi)產(chǎn)品主要有智能電冰箱、數字液晶電視、熱水器、電熱爐等家電產(chǎn)品。采用的家電產(chǎn)品,可以出靚麗的控制面板,同時(shí),與機械式按鍵相比具有更長(cháng)的使用壽命。

目前,感應按鍵的應用方式主要有兩大類(lèi):

① 采用專(zhuān)用芯片,比如昆騰公司的感應按鍵芯片QT240、QT1101,以及康拓斯公司的CT1008等。這類(lèi)芯片內部固化了處理感應按鍵的軟件,能夠對按鍵感應電極(金屬彈簧或導電海綿)的信號進(jìn)行采集和分析,最終將分析的結果以高低電平形式輸出到應用系統的處理器I/O口。比如,當手靠近感應電極的時(shí)候輸出高電平,遠離感應電極的時(shí)候輸出低電平。這類(lèi)芯片外圍需要少量的分立器件,實(shí)際使用時(shí)要根據應用場(chǎng)合對這些外圍器件的參數進(jìn)行微調,以達到最佳效果。

② 采用集成式芯片。推出這種方式的芯片廠(chǎng)家將處理感應按鍵的軟件部分嵌入到單片機程序中,用戶(hù)如果需要用到感應按鍵,只需要在單片機開(kāi)發(fā)環(huán)境里將需要的I/O口配置為感應按鍵的輸入口,同時(shí)系統通過(guò)調用芯片廠(chǎng)家提供的函數庫接口來(lái)讀取感應按鍵的結果。Atmel公司ATmega系列單片機的感應按鍵就是屬于這種應用方式,它是將其QTouch技術(shù)的軟件代碼以庫函數接口形式提供給用戶(hù)使用。

2 QTouch技術(shù)

QTouch技術(shù)是Atmel公司觸摸技術(shù)部前身Quantum開(kāi)發(fā)的一項技術(shù)。所開(kāi)發(fā)的集成電路技術(shù)是電荷的傳輸電容式感測。QTouch IC檢測用傳感器芯片和簡(jiǎn)單按鍵電極之間連接來(lái)檢測觸摸,如圖1所示。QTouch器件對未知電容的感測電極充電到已知電位。電極通常是印刷電路板上的一塊銅區域,該電極可以通過(guò)金屬彈簧或者導電海綿來(lái)延伸應用空間。在1個(gè)或多個(gè)電荷傳輸周期后測量電荷,就可以確定感測板的電容。在觸摸表面按手指,導致在該點(diǎn)影響電荷流的外部電容,作為一個(gè)觸摸記錄;也可確定QTouch微控制器來(lái)檢測手指的接近度,而不是絕對觸摸。判斷邏輯中的信號處理使QTouch健全和可靠,同時(shí)可以消除靜電脈沖或瞬時(shí)無(wú)意識觸摸/接近引起的假觸發(fā)。

QTouch技術(shù)示意圖

圖1 QTouch技術(shù)示意圖

QTouch傳感器可以驅動(dòng)單按鍵或多按鍵。在用多按鍵時(shí),可以為每個(gè)按鍵設置一個(gè)單獨的靈敏電平??梢杂貌煌笮『托螤畹陌存I來(lái)滿(mǎn)足功能和審美要求。QTouch技術(shù)可以采用兩種模式:正?;?ldquo;觸摸”模式,以及高靈敏度或“接近”模式。用高靈敏電荷傳輸接近感測來(lái)檢測末端用戶(hù)接近的手指,用用戶(hù)接口中斷電子設備或電氣裝置來(lái)啟動(dòng)系統功能。為了實(shí)現良好的電磁兼容,QTouch傳感器采用擴頻調制和稀疏、隨機充電脈沖(脈沖之間具有長(cháng)延遲)。單個(gè)脈沖可以比內部串脈沖間隔短5%或更短。這種方法的優(yōu)點(diǎn)是交叉傳感器干擾較小,功耗較低,且降低了RF輻射和極化率。QTouch器件對于慢變化(由于老化或環(huán)境條件改變)具有自動(dòng)漂移補償。這些器件不需要線(xiàn)圈、振蕩器、RF元件、專(zhuān)門(mén)纜線(xiàn)、RC網(wǎng)絡(luò )或大量的分立元件。

3 硬件

ATmega48的感應按鍵,在硬件上非常簡(jiǎn)單,每路按鍵只需要一個(gè)電阻和一個(gè)電容即可實(shí)現。通常情況下,感應電極一般以銅箔形式分布在印刷電路板上,可以根據具體的應用需要將感應電極設計成不同的尺寸和形狀。同時(shí),采用金屬彈簧或者導電海綿等具有導電功能的介質(zhì),能夠將按鍵延伸到合適的長(cháng)度或高度,如圖2所示。

 采用金屬彈簧延伸的感應電極

圖2 采用金屬彈簧延伸的感應電極

硬件原理圖

圖3 硬件原理圖

典型應用情況下,采樣電容C1或C2采用22 nF,限流電阻R1或R2采用1 kΩ。但是實(shí)際應用系統中需要根據感應按鍵的靈敏度,對采樣電容的容值和限流電阻的阻值進(jìn)行調整,以達到最佳效果。硬件原理圖如圖3所示。

4 函數庫安裝與軟件配置

要把ATmega48單片機的I/O口作為感應按鍵輸入口來(lái)使用,首先需要安裝QTouch函數庫Atmel_QTouch_Libraries,目前比較新的函數庫版本是4.3。安裝完畢后,需要將與單片機對應的庫文件加載到工程中。Atmel公司的集成開(kāi)發(fā)環(huán)境AVR STudio提供了便捷的設置,新建一個(gè)工程后,可在Project→CONfiguration OptioNS→Libraries界面中添加函數庫鏈接文件。

其次,需要對I/O口進(jìn)行配置。在工程配置(Project→Configuration Options→Custom Options)界面設置相應的宏定義參數即可,如圖4所示。

AVR Studio工程配置界面

圖4 AVR Studio工程配置界面

D_QTOUCH_:需要使用QTouch函數庫。

DSNSK=C和DSNS=C:表示將ATmega48 PC口設置為感應按鍵口。

DQT_NUM_CHANNELS=4:表示最大可用通道數量。

DQT_DELAY_CYCLES=1:表示采樣電容充放電周期時(shí)間。

另外,在應用系統源程序中需要加入庫函數的頭文件。代碼如下:

#include touch_api.h

5 系統應用

應用流程如圖5所示。在系統初始化之后,首先調用config_sensors()函數將需要的I/O口配置成感應按鍵的采樣口,并對各個(gè)感應按鍵的各個(gè)狀態(tài)進(jìn)行初始化。然后是設置感應參數,這些參數包括按鍵校準閾值、正向漂移值、負向漂移值、最大連續感應時(shí)間等。最后,在應用系統的主程序中,需要周期地調用庫函數qt_measuer_channels()對感應信號進(jìn)行測量,并檢測按鍵的狀態(tài)。

QTouch應用流程

圖5 QTouch應用流程

需要注意的是,感應按鍵采集使用了系統的一個(gè)定時(shí)器中斷,因此,應用系統中的中斷程序會(huì )對其造成一定的影響。這就要求在按鍵感應的過(guò)程中,應用系統的中斷服務(wù)程序的處理時(shí)間越短越好。在電容感應工作的時(shí)候,中斷服務(wù)程序處理時(shí)間不應該超過(guò)1 ms,否則將嚴重影響感應按鍵的靈敏度,甚至會(huì )導致感應按鍵失靈。

應用系統程序如下:

  int main( void ){

  init_system();/*系統初始化*/

  config_sensors();/*將I/O口配置成感應按鍵*/

  qt_init_sensing();/*初始化感應傳感器*/

  qt_set_parameters();/*感應參數設置*/

  init_timer_isr();/*用于感應按鍵的定時(shí)器設置*/

  qt_filter_callback = 0;/*濾波參數選擇*/

  __enable_interrupt();/*使能定時(shí)器中斷*//*應用程序主循環(huán) */

  while (1) {

  if( time_to_measure_touch ) {

  time_to_measure_touch = 0u; /*繼續下一個(gè)采集周期*/

  qt_measure_sensors( current_time_ms_touch );/*感應檢測 */

  }

  KeyBuff = (qt_measure_data.qt_touch_status.sensor_states[0]);/*獲取感應按鍵狀態(tài)*/

  ……/*系統應用程序*/

  }

  }

6 結語(yǔ)

基于A(yíng)tmel QTouch技術(shù)的感應按鍵設計,簡(jiǎn)化了設計難度,降低了系統的應用成本,節省了印刷電路板的尺寸空間,系統應用穩定,可靈活應用于各類(lèi)電子產(chǎn)品中。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
電能表相關(guān)文章:電能表原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>