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