新闻中心

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

电容触摸传感的理论框架

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

  对于测量充电至固定电压需要的时间变化量这种方法,手指产生的附加电容会增加充电时间(C上升),所以时间读数会相应地上升。对于测量固定充电时间内的电平变化量这种方法,附加电容会降低相同时间量内所能达到的电压,所以电压读数会下降。最后,对于测量固定时间周期中的频率这种方法,频率会随振荡器RC常数的上升而下降。因此,频率读数会下降。

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

  本文以频率测量方案为例进行说明;但每个系统都会应用后处理方案。使用一种方案时,电容读数可能会上升,而使用另一种方案时,电容读数可能会下降,但这可以在软件中调整。选择了硬件方案之后,读数将根据请求输入单片机,或按照软件配置指定的其他时间间隔输入单片机。对于本文中的示例,读数下降代表按键按下。

  单片机软件与后处理

  单片机中的软件负责处理应用中的许多工作,前提是硬件和均正常工作。和整个系统的质量越好,软件的实现就越简单。开发软件之前,需要记住每个传感器都具有一定的固有:Cp(或公式3中的C1)。因此,每个传感器都可以检测到某个标称值。通过观察传感器的输出,可以直观方便地确定它。但必须先在软件中设定该标称值,然后才能以此为基准计算相对于它的偏差。实现它的最好方式是创建一个滑动平均值——即,16点平均值。通过存储先前16个值来计算平均值的效率很低,所以改为使用一种看起来较复杂,但计算较简单、可节省存储空间的求均值方法。以下代码执行求均值过程。是传感器读数值,作为16位无符号值或变量。

reading  = ; // 传感器

bigval   = reading << 4; // 乘以16

smallavg = average >> 4; // 除以16

average += reading – smallavg; // 求均值

 

  与具有极强计算能力的较大的计算机处理器相比,较小的单片机通常在这方面受到限制。与实际执行除法相比,使用移位、加法和减法可以降低性能损失。此外,这个求均值程序并不仅限用于——它对于8位单片机的很多应用都非常有用。

  在本文提供的大多数示例和算法中,每次将仅讨论一个传感器。只需在软件中使用值的数组,通过添加数组中的元素来增加传感器数量,即可使之与硬件匹配(即,average[0]..average[N])。

  现在,已经确定了平均值,接下来必须构造传感器扫描循环,目的是监视相对于平均值的偏差。从一个简单循环开始,如图1中的流程图所示。扫描循环使用中断来驱动,并使用两个定时器和检测方法。Timer0决定固定的时间周期T,在该时间周期内,将测量进入Timer1捕捉模块的正边沿数量,然后它产生一个频率测量值。正边沿数量越多,说明频率越高。准备好获取测量值时,Timer0发生溢出以触发中断,而Timer1会测量正边沿数量。流程图的“捕捉读数”框显示了何时获取读数。



评论


相关推荐

技术专区

关闭