考慮到美觀、整潔和成本效益等方面的因素,在包括消費(fèi)類電子產(chǎn)品、家用電器等在內(nèi)的許多電子產(chǎn)品中,觸摸傳感應(yīng)用正變得越來(lái)越流行。本文將討論與電容觸摸傳感">電容觸摸傳感工作相關(guān)的基本概念,以及如何簡(jiǎn)便地實(shí)現(xiàn)電容觸摸傳感">電容觸摸傳感功能。
電容的相關(guān)物理性質(zhì)
為了更好地理解在電容觸摸傳感">電容觸摸傳感應(yīng)用的硬件、布線和軟件開發(fā)中需要采取哪些措施,了解它內(nèi)在的物理性質(zhì)非常重要??刂扑氖莾蓚€(gè)基本公式和一個(gè)常識(shí)。第一個(gè)公式(見公式1)用于求電容值,它說(shuō)明如何根據(jù)極板模型使用面積、距離和材料屬性來(lái)定義電容。第二個(gè)公式(見公式2)說(shuō)明電容電壓與電流的關(guān)系,并引入RC電路的充電速率(等于時(shí)間常數(shù)τ)。第三個(gè)公式(見公式3)說(shuō)明并聯(lián)電容的總電容值等于兩者相加。
公式1是雙極板電容的模型。它適用于觸摸傳感應(yīng)用,因?yàn)樵趯⑹种缚拷?a href="http://www.www27dydycom.cn/v/tag/117/" target="_blank">傳感器極板時(shí),手指的作用也類似于一個(gè)極板。傳感器具有一定的標(biāo)稱電容C1(由于走線、附近的地線等原因而產(chǎn)生)。將手指靠近時(shí),距離“d”下降,而和A上升,并引入了并聯(lián)的附加電容“C2”。所產(chǎn)生的效果就是傳感器線路上的電容上升,上升值等于附加電容C2。然后,軟件必須通過(guò)硬件(向單片機(jī)中輸入傳感器讀數(shù))來(lái)檢測(cè)電容變化。硬件將利用公式2(充電時(shí)間公式)的某種形式向單片機(jī)傳達(dá)傳感器讀數(shù)。
傳感器設(shè)計(jì)
傳感器設(shè)計(jì)通常很簡(jiǎn)單。設(shè)計(jì)布線時(shí),需要注意容性耦合效應(yīng)及其關(guān)聯(lián)的物理性質(zhì)。焊盤的面積及覆蓋在其上方的材料的厚度是最關(guān)鍵的因素。對(duì)于小鍵盤類型的應(yīng)用,傳感器的大小應(yīng)當(dāng)至少為將手指按平時(shí),指尖面積的大小。根據(jù)公式1中的面積“A”,傳感器較大時(shí),其傳感能力通常也較好。此外,人們并不一定能夠恰當(dāng)?shù)乜刂剖种傅姆胖梦恢?從而控制產(chǎn)生的電容),而不同的兩個(gè)人也不會(huì)具有完全相同的電容。所以,傳感器的容限必須盡可能很大,可以處理遇到的各種觸摸情況,同時(shí)準(zhǔn)確地報(bào)告按下狀態(tài)。
有些時(shí)候,指尖大小的傳感器并不總是最佳的。作為一條準(zhǔn)則,傳感器焊盤上方的材料越厚,焊盤就必須越大,才能檢測(cè)到是否有手指按下。這是因?yàn)楦鶕?jù)公式1,當(dāng)傳感器焊盤上方的材料厚度增加時(shí),距離“d”就會(huì)增大,從而手指的電容就會(huì)下降。對(duì)于需要非常精確的傳感器控制的應(yīng)用(例如,傳感器很小),如果材料覆蓋層很厚,則最終會(huì)限制傳感器檢查按下狀態(tài)的能力。因此,如果傳感器非常小,覆蓋層必須盡可能薄。此外,如果非常小的傳感器相互緊鄰,還會(huì)產(chǎn)生容性耦合,在傳感器之間布置接地電路可以減少這種耦合效應(yīng)。此外,還可以使用一些軟件技巧來(lái)辨別相互耦合程度很高的傳感器。
用于捕捉傳感器數(shù)據(jù)并將其轉(zhuǎn)換為數(shù)值(讀數(shù))的硬件可采用許多方式開發(fā)。在電容觸摸傳感">電容觸摸傳感設(shè)計(jì)中,用硬件區(qū)分不同單片機(jī)供應(yīng)商針對(duì)此應(yīng)用推出的產(chǎn)品。根據(jù)公式2,可以測(cè)量和電流與電壓關(guān)系有關(guān)的3個(gè)基本量:
1. 充電至固定電壓需要的時(shí)間變化量(Δt,固定V);
2. 固定充電時(shí)間內(nèi)的電壓變化量(ΔV,固定t);
3. 固定時(shí)間周期中的頻率變化量(Δf,固定T) 。
頻率測(cè)量方案基于充電速率公式(重復(fù)許多次),但它對(duì)應(yīng)于較長(zhǎng)的周期T,而不是單個(gè)充電周期t。所以,充電至固定電壓需要的時(shí)間變化量(Δt,固定V)和固定充電時(shí)間內(nèi)的電壓變化量(ΔV,固定t),定義了檢測(cè)電容變化的基本方法。根據(jù)需要,可以基于這些基本方法來(lái)構(gòu)造新的測(cè)量方案。
對(duì)于測(cè)量充電至固定電壓需要的時(shí)間變化量這種方法,手指產(chǎn)生的附加電容會(huì)增加充電時(shí)間(C上升),所以時(shí)間讀數(shù)會(huì)相應(yīng)地上升。對(duì)于測(cè)量固定充電時(shí)間內(nèi)的電平變化量這種方法,附加電容會(huì)降低相同時(shí)間量?jī)?nèi)所能達(dá)到的電壓,所以電壓讀數(shù)會(huì)下降。最后,對(duì)于測(cè)量固定時(shí)間周期中的頻率這種方法,頻率會(huì)隨振蕩器RC常數(shù)的上升而下降。因此,頻率讀數(shù)會(huì)下降。
本文以頻率測(cè)量方案為例進(jìn)行說(shuō)明,但每個(gè)系統(tǒng)都會(huì)應(yīng)用后處理方案。使用一種方案時(shí),電容讀數(shù)可能會(huì)上升,而使用另一種方案時(shí),電容讀數(shù)可能會(huì)下降,但這可以在軟件中調(diào)整。選擇了硬件方案之后,讀數(shù)將根據(jù)請(qǐng)求輸入單片機(jī),或按照軟件配置指定的其他時(shí)間間隔輸入單片機(jī)。
單片機(jī)軟件與后處理
單片機(jī)中的軟件負(fù)責(zé)處理電容觸摸傳感">電容觸摸傳感應(yīng)用中的許多工作,前提是硬件和傳感器均正常工作。傳感器和整個(gè)系統(tǒng)的質(zhì)量越好,軟件的實(shí)現(xiàn)就越簡(jiǎn)單。開發(fā)軟件之前,需要記住每個(gè)傳感器都具有一定的固有寄生電容:Cp(或公式3中的C1)。因此,每個(gè)傳感器都可以檢測(cè)到某個(gè)標(biāo)稱值。通過(guò)觀察傳感器的輸出,可以直觀方便地確定它,但必須先在軟件中設(shè)定該標(biāo)稱值,然后才能以此為基準(zhǔn)計(jì)算相對(duì)于它的偏差。實(shí)現(xiàn)它的最好方式是創(chuàng)建一個(gè)滑動(dòng)平均值——即,16 點(diǎn)平均值。通過(guò)存儲(chǔ)先前16個(gè)值來(lái)計(jì)算平均值的效率很低,所以改為使用一種看起來(lái)較復(fù)雜,但計(jì)算較簡(jiǎn)單、可節(jié)省存儲(chǔ)空間的求均值方法。
與具有極強(qiáng)計(jì)算能力的較大的計(jì)算機(jī)處理器相比,單片機(jī)通常在這方面受到限制。與實(shí)際執(zhí)行除法相比,使用移位、加法和減法可以降低性能損失。此外,這個(gè)求均值程序并不僅限用于電容觸摸傳感">電容觸摸傳感——它對(duì)于8位單片機(jī)的很多應(yīng)用都非常有用。
確定了平均值后,接下來(lái)必須構(gòu)造傳感器掃描循環(huán),目的是監(jiān)視相對(duì)于平均值的偏差。從一個(gè)簡(jiǎn)單循環(huán)開始,如圖1流程圖所示。掃描循環(huán)使用中斷來(lái)驅(qū)動(dòng),并使用兩個(gè)定時(shí)器和頻率偏移檢測(cè)方法。Timer0決定固定的時(shí)間周期T,在該時(shí)間周期內(nèi),將測(cè)量進(jìn)入Timer1捕捉模塊的正邊沿?cái)?shù)量,然后它產(chǎn)生一個(gè)頻率測(cè)量值。正邊沿?cái)?shù)量越多,說(shuō)明頻率越高。準(zhǔn)備好獲取測(cè)量值時(shí),Timer0發(fā)生溢出以觸發(fā)中斷,而Timer1會(huì)測(cè)量正邊沿?cái)?shù)量。流程圖的“捕捉讀數(shù)”框顯示了何時(shí)獲取讀數(shù)。
下一步是確定按鈕是否被按下。如果按鈕未被按下,則繼續(xù)對(duì)傳感器讀數(shù)求均值。如果按鈕被按下,則不對(duì)傳感器讀數(shù)求均值,也就是說(shuō)它將繼續(xù)一直跟蹤讀數(shù)(通常這不是所期望的)。然后,通過(guò)在C代碼中使用位標(biāo)志或通過(guò)其他方式,向應(yīng)用程序代碼指示按鈕已被按下。不要在中斷服務(wù)程序(ISR)中調(diào)用需要大量進(jìn)一步計(jì)算的程序——較好的做法是設(shè)置一個(gè)標(biāo)志,讓主循環(huán)進(jìn)行響應(yīng)。
此時(shí),如果只有單個(gè)按鍵,則按照基本方法的描述,通過(guò)將定時(shí)器清零或?qū)㈦娙輰?duì)地放電來(lái)重新開始測(cè)量過(guò)程。如果存在多個(gè)按鍵,則按順序掃描每個(gè)按鍵。按照?qǐng)D1中的流程圖,基本的系統(tǒng)可以定期掃描按鍵。
尚待討論的是如何確定按鍵是否被按下。最需要考慮和注意的是圖1中的“按鍵是否被按下?”判斷塊的細(xì)節(jié)。這將在下一步討論。
為了確定按鍵是否被按下,需要先確定滑動(dòng)平均值。確定平均值之后,根據(jù)測(cè)量值相對(duì)于平均值的偏差可以指示按鍵是否被按下。對(duì)于我們的系統(tǒng),讀數(shù)下降表示按鍵按下。因?yàn)樯婕暗揭恍┉h(huán)境效應(yīng)和其他因素(例如噪聲),所以必須設(shè)置一定的容限。但是,該系統(tǒng)未提供遲滯值,若讀數(shù)在均值與判決門限值之差附近上下變化,就會(huì)出現(xiàn)系統(tǒng)在判定按下與未按下之間來(lái)回振蕩這一糟糕的情形。為了避免這一點(diǎn),需要包含遲滯值:
if (reading < average – trip) {
Buttons.SENSOR0 = PRESSED;
} else if (reading > average – trip + hyst) {
Buttons.SENSOR0 = UNPRESSED;
}
以上代碼在按鈕釋放中增添了遲滯值,使按鈕不會(huì)產(chǎn)生振動(dòng)。這也為電容開關(guān)構(gòu)造了最低程度的消抖功能。機(jī)械按鈕會(huì)在0-VDD之間來(lái)回抖動(dòng)。電容按鈕不會(huì)產(chǎn)生該問(wèn)題;但是,通過(guò)增添遲滯值,按鈕按下的操作與原來(lái)無(wú)異,只是加強(qiáng)了對(duì)按鈕釋放的判斷。這可以產(chǎn)生最低程度的消抖效果,因?yàn)閱未伟聪氯匀豢梢杂|發(fā)按鍵。要進(jìn)一步增強(qiáng)消抖,可以要求連續(xù)幾次的傳感器讀數(shù)均有效,才表示按鈕確實(shí)按下,然后向應(yīng)用程序指示按鈕被按下。這樣可以防止虛假的低讀數(shù)影響系統(tǒng)。
復(fù)雜解碼方案
上面用于確定按鈕是否被按下的解碼方案是相當(dāng)簡(jiǎn)單的。
對(duì)于百分比按下檢測(cè),將繼續(xù)使用前面討論的求均值方案。但是,讀數(shù)變量將變換為如下形式:
unsigned long percent;
percent = average – (reading*16);
if (percent < 0) {
percent = 0; // 忽略電容上升
} else {
percent = percent * 1000; // 乘以1000
percent = percent / average; // 結(jié)果使用100.0%的形式
}
結(jié)果變量percent包含0~1000的值,更具體地說(shuō),值的范圍約為0~200(代表20.0%)。結(jié)果值保持單個(gè)小數(shù)位,因?yàn)楦嘈?shù)位并不會(huì)提高精度。
更換先前的“if”語(yǔ)句,產(chǎn)生類似于以下語(yǔ)句的“if”語(yǔ)句:
#define PCT_ON 50 // >5.0%,打開
#define PCT_OFF 30 // <3.0%,關(guān)閉
if (reading < PCT_ON) {
Buttons.SENSOR0 = PRESSED;
} else if (reading > PCT_OFF) {
Buttons.SENSOR0 = UNPRESSED;
}
下一個(gè)復(fù)雜解碼方案稱為“多鍵表決”。如前面所討論,傳感器不僅會(huì)與手指和周圍的地產(chǎn)生耦合,而且會(huì)相互耦合。因此,觸摸一個(gè)傳感器會(huì)影響另一個(gè)傳感器,但影響程度通常會(huì)低于其他意外激勵(lì)。如果即使影響程度較低,影響仍足以觸發(fā)按下狀態(tài),會(huì)發(fā)生什么情況?
開發(fā)多鍵表決系統(tǒng)可以幫助解決該問(wèn)題,以及與小鍵盤污染關(guān)聯(lián)的其他問(wèn)題。多鍵表決系統(tǒng)會(huì)選擇按下后受影響最大的按鍵,代價(jià)是多次按下動(dòng)作只能產(chǎn)生單個(gè)按鍵響應(yīng)。例如,如果觸摸會(huì)影響兩個(gè)按鍵,但手指按下的按鍵受到的影響最大,該算法將選擇受影響最大的按鍵。
該算法必須獲取來(lái)自所有可用傳感器的數(shù)據(jù)。舉例來(lái)說(shuō),假定使用了4個(gè)傳感器。算法還是使用百分比按下檢測(cè)方法,因?yàn)槊總€(gè)傳感器的讀數(shù)可能會(huì)稍有不同,采用相對(duì)與原始值的偏差可以起到一些幫助。系統(tǒng)必須掃描全部4個(gè)傳感器,并在掃描之后執(zhí)行以下步驟:
1. 首先,掃描所有傳感器;
2. 在每次掃描期間,記錄每個(gè)傳感器的受影響百分比;
3. 根據(jù)受影響程度進(jìn)行排序;
4. 基于步驟3,對(duì)索引進(jìn)行排序;
5. 位于數(shù)組單元0的傳感器的受影響程度最高;
6. 確定是否大于最小門限值;
7. 指示按下/未按下。
代碼示例1(略)
最后一個(gè)復(fù)雜解碼方案也是百分比方案。百分比計(jì)算會(huì)占用8位單片機(jī)上可用存儲(chǔ)器總空間中大量的程序和RAM存儲(chǔ)空間,占用。在可能的情況下,最好降低這種存儲(chǔ)器消耗。如果使用較大的數(shù)值,并可以承受一定的分辨率損失,則可以使用一種較簡(jiǎn)單的百分比方法。
通過(guò)使用更多的移位來(lái)代替除法(類似于求均值方案),可以用如下方式確定平均值的百分比門限值:
threshold = average >> 3; // 傳感器
// 門限值現(xiàn)在為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
對(duì)于進(jìn)行移位的每個(gè)位,門限值會(huì)損失一定的舍入分辨率。但是,使用較大的16位數(shù)值時(shí),對(duì)于1/16的百分比(即6.25%),損失4個(gè)最低位是可以接受的?,F(xiàn)在,對(duì)于簡(jiǎn)單百分比計(jì)算,可以省去前面使用的unsigned long percent變量,以及執(zhí)行除法所需的額外計(jì)算量。這是另一種并不僅限用于電容觸摸傳感">電容觸摸傳感的技術(shù),但它對(duì)于觸摸傳感的實(shí)現(xiàn)非常有用。
結(jié)論
有許多方法可以實(shí)現(xiàn)電容觸摸系統(tǒng),市場(chǎng)上針對(duì)此應(yīng)用推出的各種嵌入式產(chǎn)品充分證明了這一點(diǎn)。關(guān)于這些解決方案有趣的一點(diǎn)是它們基于相同的物理原理,具有共同的基礎(chǔ)。其中一些解決方案采用了不同的布線方式(將地與傳感器組合);許多解決方案涉及到使用專有的材料。但是,電容觸摸傳感">電容觸摸傳感背后的概念是相當(dāng)簡(jiǎn)單的——關(guān)鍵在于在實(shí)現(xiàn)設(shè)計(jì)時(shí)需要理解應(yīng)用背后隱含的物理原理。基于這種理解,結(jié)合對(duì)于所用硬件和軟件方案的良好理解,就可以簡(jiǎn)便地實(shí)現(xiàn)電容觸摸傳感">電容觸摸傳感系統(tǒng)。
作者:Thomas Perme 微芯科技公司 應(yīng)用工程師
-
傳感器
+關(guān)注
關(guān)注
2565文章
52935瀏覽量
766911 -
觸摸傳感器
+關(guān)注
關(guān)注
0文章
125瀏覽量
23385 -
電容觸摸傳感
+關(guān)注
關(guān)注
0文章
11瀏覽量
6497
發(fā)布評(píng)論請(qǐng)先 登錄
FZH31單鍵電容式觸摸按鍵IC中文手冊(cè)
低功耗觸摸傳感器GTX314L應(yīng)用程序注釋以及觸摸檢測(cè)的感應(yīng)輸入線

深度應(yīng)用在智能冰箱觸摸屏中的電容式觸摸芯片-GT301L

電容式觸摸芯片 超強(qiáng)抗干擾 選型指南、應(yīng)用方案

電容式觸摸感應(yīng)和SYS/BIOS

觸摸傳感器的選擇與設(shè)計(jì)解決方案

電容式觸摸按鍵的按鍵擴(kuò)展方法

使用OpenSCAD腳本自動(dòng)化電容式觸摸傳感器PCB設(shè)計(jì)

電容式觸摸手勢(shì)軟件和調(diào)整應(yīng)用說(shuō)明

基于MSP430實(shí)現(xiàn)電視的電容式觸摸按鍵

MSP430電容觸摸轉(zhuǎn)輪和LED PWM輸出設(shè)計(jì)

電容式觸摸感應(yīng)技術(shù)

評(píng)論