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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于嵌入式技術(shù)的感應(yīng)按鍵設(shè)計 (2)

          基于嵌入式技術(shù)的感應(yīng)按鍵設(shè)計 (2)

          作者: 時間:2012-10-10 來源:網(wǎng)絡(luò) 收藏

          3 硬件設(shè)計

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

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

          1.jpg
          圖2 采用金屬彈簧延伸的感應(yīng)電極

          2.jpg
          圖3 硬件原理圖

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

          4 函數(shù)庫安裝與軟件配置

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

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

          3.jpg
          圖4 AVR Studio工程配置界面

          D_QTOUCH_:需要使用QTouch函數(shù)庫。

          DSNSK=C和DSNS=C:表示將ATmega48 PC口設(shè)置為感應(yīng)按鍵口。

          DQT_NUM_CHANNELS=4:表示最大可用通道數(shù)量。

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

          另外,在應(yīng)用系統(tǒng)源程序中需要加入庫函數(shù)的頭文件。代碼如下:

          #include touch_api.h

          5 系統(tǒng)應(yīng)用

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

          4.jpg
          圖5 QTouch應(yīng)用流程

          需要注意的是,感應(yīng)按鍵采集使用了系統(tǒng)的一個定時器中斷,因此,應(yīng)用系統(tǒng)中的中斷程序會對其造成一定的影響。這就要求在按鍵感應(yīng)的過程中,應(yīng)用系統(tǒng)的中斷服務(wù)程序的處理時間越短越好。在電容感應(yīng)工作的時候,中斷服務(wù)程序處理時間不應(yīng)該超過1 ms,否則將嚴(yán)重影響感應(yīng)按鍵的靈敏度,甚至?xí)?dǎo)致感應(yīng)按鍵失靈。

          應(yīng)用系統(tǒng)程序如下:

          int main( void ){

          init_system();/*系統(tǒng)初始化*/

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

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

          qt_set_parameters();/*感應(yīng)參數(shù)設(shè)置*/

          init_timer_isr();/*用于感應(yīng)按鍵的定時器設(shè)置*/

          qt_filter_callback = 0;/*濾波參數(shù)選擇*/

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

          while (1) {

          if( time_to_measure_touch ) {

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

          qt_measure_sensors( current_time_ms_touch );/*感應(yīng)檢測 */

          }

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

          ……/*系統(tǒng)應(yīng)用程序*/

          }

          }

          6 結(jié)語

          基于Atmel QTouch技術(shù)的嵌入式感應(yīng)按鍵設(shè)計,簡化了設(shè)計難度,降低了系統(tǒng)的應(yīng)用成本,節(jié)省了印刷電路板的尺寸空間,系統(tǒng)應(yīng)用穩(wěn)定,可靈活應(yīng)用于各類電子產(chǎn)品中。



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();