電容觸摸傳感的理論框架
開(kāi)發(fā)多鍵表決系統可以幫助解決該問(wèn)題,以及與小鍵盤(pán)污染關(guān)聯(lián)的其他問(wèn)題。多鍵表決系統會(huì )選擇按下后受影響最大的按鍵,代價(jià)是多次按下動(dòng)作只能產(chǎn)生單個(gè)按鍵響應。例如,如果觸摸會(huì )影響兩個(gè)按鍵,但手指按下的按鍵受到的影響最大,該算法將選擇受影響最大的按鍵。
本文引用地址:http://dyxdggzs.com/article/96947.htm該算法必須獲取來(lái)自所有可用傳感器的數據。舉例來(lái)說(shuō),假定使用了4個(gè)傳感器。算法還是使用百分比按下檢測方法,因為每個(gè)傳感器的讀數可能會(huì )稍有不同,采用相對與原始值的偏差可以起到一些幫助。系統必須掃描全部4個(gè)傳感器,并在掃描之后執行以下步驟:
1. 首先,掃描所有傳感器;
2. 在每次掃描期間,記錄每個(gè)傳感器的受影響百分比;
3. 根據受影響程度進(jìn)行排序;
4. 基于步驟3,對索引進(jìn)行排序;
5. 位于數組單元0的傳感器的受影響程度最高;
6. 確定是否大于最小門(mén)限值;
7. 指示按下/未按下。
代碼示例1(略)
最后一個(gè)復雜解碼方案也是百分比方案。百分比計算會(huì )占用8位單片機上可用存儲器總空間中大量的程序和RAM存儲空間,占用。在可能的情況下,最好降低這種存儲器消耗。如果使用較大的數值,并可以承受一定的分辨率損失,則可以使用一種較簡(jiǎn)單的百分比方法。
通過(guò)使用更多的移位來(lái)代替除法(類(lèi)似于求均值方案),可以用如下方式確定平均值的百分比門(mén)限值:
threshold = average >> 3; // 傳感器
// 門(mé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
對于進(jìn)行移位的每個(gè)位,門(mén)限值會(huì )損失一定的舍入分辨率。但是,使用較大的16位數值時(shí),對于1/16的百分比(即6.25%),損失4個(gè)最低位是可以接受的?,F在,對于簡(jiǎn)單百分比計算,可以省去前面使用的unsigned long percent變量,以及執行除法所需的額外計算量。這是另一種并不僅限用于電容觸摸傳感的技術(shù),但它對于觸摸傳感的實(shí)現非常有用。
評論