呂紅芳
(上海電機學院電氣學院,上海 200240)
觸摸技術如今已經成為信息技術發展的新趨勢,由于操控直觀、快捷,大大提升了人機互動的效率,被大量用于高端智能手機及平板電腦。觸摸控制技術又可分為觸摸屏(Touch Screen)技術和觸摸按鍵(Touch Key)技術。在觸摸按鍵技術方面,目前主要可分為電阻式觸摸按鍵與電容式感應按鍵。[1]
電阻式的觸摸按鍵由多塊導電薄膜按照按鍵的位置印制而成,需要在設備表面貼一張觸摸薄膜[2]。電阻式觸摸按鍵雖然價格低廉,但其導電薄膜耐用性較低。因此,電容式觸摸按鍵便成了一種理想的替代方案。電容式觸摸按鍵的優點在于它不易受到溫度、靜電、水、灰塵等外界因素影響,操作準確性高;靠人手感應,整個界面沒有按鍵存在,可使產品更加美觀。此外,由于按鍵沒有接點,使用壽命更為長久。
本文主要介紹一種利用PIC12F615單片機實現電容觸摸感應的方法,這種方法不需要外圍元器件,可以依托內部帶有ADC(Analog-to-Digital Converter)單元的PIC單片機,通過軟件處理,快速實現觸摸感應。這種采用單片機的ADC實現電容式觸摸感應的方式,又稱為CVD(Capacitive Voltage Divider)方式。
電容感應原理[3]是利用人體的感應電容來檢測是否有手指存在,在沒有手指按下時,按鍵(連到芯片的管腳)上由于分布電容等的存在,因此按鍵對地存在一定的靜態電容,當人的手指按下或接近按鍵時,人體存在一定電容,人體的這個寄生電容將耦合到按鍵的靜態電容上,使按鍵的最終電容值變大,該變化的電容再輸入到單片機進行信號的轉換,將變化的電容量轉換成某種電信號的變化量,再由一定的算法來檢測和判斷這個變化量的程度,當這個變化量超過一定閾值時,就認為有手指按下。
CVD實現感應的原理[4]是采用單片機 ADC的內部采樣電容以及電路板上感應點的寄生電容來產生電容電荷的分壓效應,分壓的大小則視感應點的電容量大小而定,使用單片機的ADC測量分壓,再由軟件進行處理。如圖1所示,首先把采樣電容的供電電源切換到VDD,對內部采樣電容進行充電,然后切換到感應電容端,這時采樣電容開始向感應電容放電到一個平衡電位,ADC將此時采樣電容上的電壓值進行轉換處理。

圖1 CVD模塊框圖
因為人體的觸摸會使感應電容的容量變大,這樣在取樣電容上測量到的電壓就會降低,所以必須預先設定一個有觸摸與無觸摸輸入時的閾值,當采樣到的電壓值低于閾值時,系統將認為有鍵按下,如圖2所示。

圖2 輸入采樣波形圖
在利用CVD實現電容觸摸感應技術時,單片機內部ADC的分辨率決定了觸摸感應系統的分辨率,所以在本系統的設計中,采用PIC12F615[5]中內部集成的10bitADC,選取GP0的第二功能AN0作為模擬通道,用做感應輸入端,GP4作為感應輸出端,為了便于與外部系統連接,外部利用NPN三極管,設計為開漏輸出。選取內部振蕩8MHz作為系統時鐘,外部觸摸焊盤為10mm*10mm,設定ADC采樣閾值為0x287,可實現3-5mm可靠觸摸感應,并能在20μs內做出響應,硬件電路如圖3所示。

圖3 PIC12F615實現觸摸感應的硬件電路圖
在本系統中,利用PIC12F615實現CVD觸摸感應時,采用MCU的GP0的第二功能作為模擬輸入,當外部有觸摸時,該引腳的對地電容將發生改變,并與內部的采樣電容進行分壓,然后利用片內的ADC進行采樣,與閾值進行比較,從而判斷是否有鍵按下,其具體實現過程如下:
(1)選擇系統時鐘為內部8MHz,ADC轉換時鐘為Fosc/2。
(2)設置GP0為模擬輸入,GP2、GP3、GP4為數字輸出。
(3)置GP2為數字輸出,并置1,此時對采樣電容進行充電。
(4)將采樣電容電源切換到GP0。
(5)啟動ADC,讀取GP0引腳的電壓值。
(6)比較采樣值與閾值判斷是否有鍵按下。
其程序流程圖如圖4所示:

圖4 系統的程序流程圖
CVD方法為我們利用PIC單片機實現電容觸摸感應提供了方便,與CTMU(充電時間測量單元),CSM(容性傳感模塊方式)一樣,不需要任何外圍設備,可以快速實現數據采樣,這種技術的關鍵是需要單片機的ADC模塊實現觸摸感應功能。
采用CVD實現觸摸感應,關鍵是硬件實現電路簡單,大大節約了硬件成本,可以方便的實現非接觸式感應,且響應時間更快(10μs~20μs)。利用MCU的內部ADC進行軟件處理,抗干擾能力比較強。該技術方案已正常通過電磁兼容測試并在實際中得到了應用。
[1] 方獻良.基于A/D的電容觸摸按鍵電路設計[J].寧波大學學報,2010,23(3):123-125.
[2] 趙艷秋,馮健.觸摸控制處于起步階段 MCU企業嘗試多種新方案[N].中國電子報,2008-11-04(8).
[3] 張焱焱.基于電容感應原理的手機按鍵設計[J].機械研究與應用,2007,20(4):55-56.
[4] Thomas Perme,Dieter Peter.Capacitive Touch Using Only an ADC(CVD)[EB/OL] .2009.http://www.datasheetarchive.com/datasheet-pdf/075/DSAE004486.html.
[5] PIC12F615 data sheet[EB/OL].2010.http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en027148