8.1 電容觸摸簡(jiǎn)介
8.1.1 電容觸摸概述
隨著科技的發(fā)展,傳統(tǒng)的機(jī)械按鍵正在逐步從設(shè)備上面消失,這個(gè)原因主要有機(jī)械按鍵由于是采用機(jī)械接觸的方式,壽命比較短,從用戶體驗(yàn)上看,機(jī)械按鍵也顯得操作復(fù)雜,對(duì)比現(xiàn)在的電容按鍵,電容按鍵具有壽命長(zhǎng),因?yàn)椴淮嬖跈C(jī)械接觸,占用空間少,以前的機(jī)械按鍵在設(shè)計(jì)外殼的時(shí)候需要考慮尺寸,現(xiàn)在換成電容按鍵后這個(gè)問題不再需要考慮。
8.1.2 檢測(cè)原理
常規(guī)的檢測(cè)方式一般是通過(guò)計(jì)算電容放電時(shí)間來(lái)判斷是否有手指按下,這是因?yàn)槭种笗?huì)與線路板的銅箔接觸面上產(chǎn)生電容效應(yīng),當(dāng)手指沒有放在銅箔上的時(shí)候,銅箔與PCB之間存在雜散電容,這兩個(gè)狀態(tài)的電容值差別很大,檢測(cè)原理如下圖所示。
在檢測(cè)之前首先用開關(guān)將電容Cs里面的電荷放盡,然后此時(shí)CPU開始計(jì)算Cs的充電時(shí)間,這一部分是采用捕捉信號(hào)來(lái)測(cè)量,盡管單片機(jī)屬于數(shù)字電路,但是數(shù)字電路的邏輯電平也是有電壓限制的,比如在3.3V供電環(huán)境下,當(dāng)電壓大于2.4V則被認(rèn)為是邏輯電平1,當(dāng)電壓小于0.4V則被認(rèn)為是邏輯電平0,單片機(jī)的輸入捕獲功能來(lái)判斷輸入信號(hào)的電平是否為邏輯電平1,如果檢測(cè)到邏輯電平1,則認(rèn)為電容此時(shí)充電達(dá)到了2.4V以上,將這個(gè)時(shí)間記錄下來(lái),當(dāng)手指放在銅箔上的時(shí)候,相當(dāng)于增加了Cs的容值,此時(shí)我們繼續(xù)進(jìn)行輸入捕獲采樣,將這個(gè)捕獲的時(shí)間記錄下來(lái),兩個(gè)時(shí)間求差值,這個(gè)差值高于某個(gè)閾值的時(shí)候就可以認(rèn)為此時(shí)手指按下了電容按鍵,用這種方式就可以實(shí)現(xiàn)虛擬按鍵的使用了。這種檢測(cè)原理實(shí)際是采用了在電路分析中學(xué)習(xí)到的RC電路的零狀態(tài)響應(yīng)來(lái)實(shí)現(xiàn)的。根據(jù)RC電路的零狀態(tài)響應(yīng)可以得出電容的充電公式為
其中Vc表示電容的充電電壓,VDD為RC電路的輸入電壓,R為電阻的阻值,C為充電電容的容值,通過(guò)這個(gè)公式我們可以反推得到充點(diǎn)電容的容值。也就是說(shuō)我們可以利用這個(gè)公式實(shí)現(xiàn)電容的測(cè)量。
8.1.3 預(yù)備知識(shí)
首先我們?cè)谶M(jìn)行電容觸摸檢測(cè)的時(shí)候需要用到STM32的輸入捕獲功能,從這一章開始,關(guān)于寄存器文件的添加,驅(qū)動(dòng)文件的添加不再作為重點(diǎn),重點(diǎn)開始轉(zhuǎn)為程序的編寫及小算法的編寫。
輸入捕獲的工作原理如下圖所示。
首先設(shè)置定時(shí)器的輸入通道為上升沿捕獲,檢測(cè)到上升沿之后,將計(jì)數(shù)寄存器CNT中的數(shù)據(jù)存儲(chǔ)在CCRx1中并清空CNT的數(shù)據(jù),然后設(shè)置定時(shí)器的輸入通道為下降沿捕獲,檢測(cè)到下降沿后將計(jì)數(shù)寄存器CNT中的數(shù)據(jù)存儲(chǔ)在CCRx2中并清空CNT的數(shù)據(jù),此時(shí)將CCRx2的值與CCRx1的值做差值就可以得到1個(gè)波形中高電平的時(shí)間,由于這兩個(gè)數(shù)值獲取的過(guò)程中,會(huì)由于高電平時(shí)間過(guò)長(zhǎng)導(dǎo)致定時(shí)器產(chǎn)生多次中斷,這個(gè)多次中斷的值記為N,此時(shí)高電平的時(shí)間計(jì)算公式如下所示:
其中M為定時(shí)器的計(jì)數(shù)周期,N為定時(shí)器的溢出次數(shù),ARR為自動(dòng)重裝載計(jì)數(shù)器的值,CCRx2為捕獲到的數(shù)據(jù)。
8.2 常用寄存器
8.2.1 捕獲/比較寄存器1:TIMx_CCMR1
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IC2F[3:0] | IC2PSC[1:0] | CC2S[1:0] | IC1F[3:0] | IC1PSC[1:0] | CC1S[1:0] |
ICxF[3:0]:輸入捕獲x濾波器(定義輸入采樣頻率及數(shù)字濾波器長(zhǎng)度)
ICxPSC[1:0]:輸入/捕獲x預(yù)分頻器(一旦CCxE=0,則預(yù)分頻器復(fù)位)
00:每1個(gè)事件觸發(fā)一次捕獲
01:每2個(gè)事件觸發(fā)一次捕獲
10:每4個(gè)事件觸發(fā)一次捕獲
11:每8個(gè)事件觸發(fā)一次捕獲
CCxS[1:0]:捕獲/比較x選擇(用于定義通道x輸入還是輸出)
00:輸出模式
01:輸入模式,映射在TI1上
10:輸入模式,映射在TI2上
11:輸入模式,映射在TRC上,此模式引用于內(nèi)部觸發(fā)器輸入被選中時(shí)
8.2.2 捕獲/比較使能寄存器:TIMx_CCER
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
- | CC4P | CC4E | - | CC3P | CC3E | - | CC2P | CC2E | - | CC1P | CC1E |
CCxP:輸入/捕獲x輸入/輸出極性
通道在輸出模式下
0:高電平有效
1:低電平有效
通道在輸入模式下
0:不反相,上升沿觸發(fā)
1:反相,下降沿觸發(fā)
CCxE:輸入/捕獲x輸入/輸出使能
通道在輸出模式下
0:關(guān)閉輸出
1:開啟輸出
通道在輸入模式下
0:禁止捕獲
1:使能捕獲
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44499瀏覽量
632163 -
STM32
+關(guān)注
關(guān)注
2264文章
10858瀏覽量
354384 -
電容觸摸
+關(guān)注
關(guān)注
0文章
70瀏覽量
16437
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論