新闻中心

EEPW首页 > 物联网与传感器 > 设计应用 > 电容触摸传感的理论框架

电容触摸传感的理论框架

——
作者:Thomas Perme 微芯科技公司 应用工程师时间:2009-08-06来源:电子产品世界收藏

  开发多键表决系统可以帮助解决该问题,以及与小键盘污染关联的其他问题。多键表决系统会选择按下后受影响最大的按键,代价是多次按下动作只能产生单个按键响应。例如,如果触摸会影响两个按键,但手指按下的按键受到的影响最大,该算法将选择受影响最大的按键。

本文引用地址:http://www.eepw.com.cn/article/96947.htm

  该算法必须获取来自所有可用的数据。举例来说,假定使用了4个。算法还是使用百分比按下检测方法,因为每个的读数可能会稍有不同,采用相对与原始值的偏差可以起到一些帮助。系统必须扫描全部4个传感器,并在扫描之后执行以下步骤:

  1. 首先,扫描所有传感器;

  2. 在每次扫描期间,记录每个传感器的受影响百分比;

  3. 根据受影响程度进行排序;

  4. 基于步骤3,对索引进行排序;

  5. 位于数组单元0的传感器的受影响程度最高;

  6. 确定是否大于最小门限值;

  7. 指示按下/未按下。

  代码示例1(略)

  最后一个复杂解码方案也是百分比方案。百分比计算会占用8位单片机上可用存储器总空间中大量的程序和RAM存储空间,占用。在可能的情况下,最好降低这种存储器消耗。如果使用较大的数值,并可以承受一定的分辨率损失,则可以使用一种较简单的百分比方法。

  通过使用更多的移位来代替除法(类似于求均值方案),可以用如下方式确定平均值的百分比门限值:

  threshold = average >> 3; // 传感器

  // 门限值现在为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

  对于进行移位的每个位,门限值会损失一定的舍入分辨率。但是,使用较大的16位数值时,对于1/16的百分比(即6.25%),损失4个最低位是可以接受的。现在,对于简单百分比计算,可以省去前面使用的unsigned long percent变量,以及执行除法所需的额外计算量。这是另一种并不仅限用于触摸传感的技术,但它对于触摸传感的实现非常有用。



评论


相关推荐

技术专区

关闭