您当前的位置:五五电子网电子知识电子学习基础知识传感器电容触摸传感技术简介 正文
电容触摸传感技术简介

电容触摸传感技术简介

点击数:7909 次   录入时间:03-04 11:58:30   整理:http://www.55dianzi.com   传感器

  目前,电容触摸传感已越来越易于实现,且应用也越来越广泛。触摸灯是电容触摸开关的经典示例。触摸灯由一个简单的电容式开关来开启、关闭灯泡.以及调节灯的亮度。

  电容触摸传感技术在消费电子产品应用中也深受欢迎。本文介绍基于MICroChip单片机的电容触摸传感解决方案,主要针对PIC16F616、PIC16F690及PIC16F887系列8位单片机。

  目前,已有好几种电容触摸传感技术应用,多数技术是基于测量原理,主要是由于人手指触摸产生额外电容而改变频率或占空比。此外,还有使用电荷平衡或是充电上升及下降时间的测量。而PIC单片机中的解决方案,则是使用自激RC振荡器来测量频率。

  改变振荡频率的触摸技术,使得可以对触摸按钮实现更为复杂的控制。其关键是要具有混合信号外设的单片机。单片机提供了完成电容触摸传感、决策、响应以及其他系统相关任务的能力。

  1、构建良好的传感器
  
  触摸传感器的应用,主要包括PCB焊盘的自然电容和当手指触压焊盘时将发生的情况。常见的触摸传感器主要应用电容基础原理,其分解图见右图。下图是简单的RC电路,电容量的计算则为:

  右图中,由于玻璃-手指-地之间产生电容,才能够检测到接触电压变化,该电容与电路对地的自然寄生电容并联。当手指接近焊盘时,总电容将变大。

  电容增量的百分比是:C%=((cp+Cf)-Cp)/Cp=Cf/Cp。分解图

  电容增量是检测依据,手指将引入额外的电容,导致振荡器的RC时间常数改变。RC时间常数增加,振荡器频率减小,单片机将检测这一频率变化。

  值得注意的是,希望Cp比较小,因为Cf非常小。如果Cp较小,则电容和频率的增量百分比将比较大。已知手指触压产生的电容范围在5pF~15pF。手指电容不是常数,并且与环境有关。

RC电路

  应用时还需要一个振荡器,其频率取决于电容器的感应极板Cs。下图的电路能够实现这一目标。该应用使用一个松弛振荡器,其振荡频率取决于电容器的容量,而阻值是设计参数,用来确保振荡频率在l00kHz~400kHz范围内。

  频率的精确值并不重要,但是在测量过程中,较高的频率将产生更多的计数,因而精度要比较低频率的高。

  为了检测按钮是否按下,首先必须恰当地配置系统。然后有下列几个关键步骤:

  (I)通过传感器电容发出振荡信号。
  
  (2)使用TICKI对正沿进行计数。
  
  (3)在固定的测量周期结束时,获取读数(频率计数值)。

  (4)判断当前频率是否低于未触压时的平均值。



www.55dianzi.com

  2、振荡器工作原理

  松弛振荡器是一个自激RC振荡器,它使用2个带SR锁存的比较器来改变感应电容器电压的充电方向,进行充电或者放电。充放电的速率由RC时间常数确定,通过比较器的正输入端来设置充电的上下限。从下限充电到上限,然后放电回到下限的时间,就是振荡器的周期。

  振荡器电路如下图虑线左侧所示。

  比较器的正输入端决定充电的上下限。

  Cl+是内部信号,但C2+必须接外部信号以设置充电下限。l000pF电容用来滤除电源的高频噪声并确保有一个稳定的下限。电压V-将在上下限之间充电放电.它由C20UT的逻辑电平信号驱动。比较器2的输出C20UT配置为Q,以便获得相应的充放电过程。反馈电阻R与传感器极板(用Cs表示)一起形成RC回路。当电容器Cs上的电压V-低于下限时,C20UT为高电平,系统开始充电;V-在上下限之间,系统保持前一状态(充电或放电);V-超过上限,则C20UT变低,系统将开始放电,然后在中间区域持续放电。输出Q(的反)及它表示的充电或放电状态,要根据每个比较器负输入端对正输入端相对值以及SR锁存值来确定。

  3.测量频率
  
  振荡器构建好了,还必须监测是否有手指触压导致的频率下降。下图中C20UT不仅驱动振荡器,还连接Timerl的时钟输入端TICKI。每次当C20UT从0变到l时,Timerl都将增加一。

  为了使Timerl计数变得有用,还需要令其在一段确定时间内测量频率。该时间周期由Timer0提供。

  开始测量时,Timer0清零,然后计数至255,而后将溢出。溢出时,中断TOIF使程序眺转到Timer0中断服务程序,然后读取TMR1的值,与前一个读数进行比较,完成对按钮的一次扫描。如果TMR1的当前值明显变低,说明电容增加,频率下降,有按钮按下。

  考虑到周围电路影响,可把新值进行平均,得到一个滑动平均值,作为比较的基准值。一旦确定按钮按下且设置了对应标志位后,Timerl和Timer0都将被清零,开始准备读取下一个读数。

  注:必须设置Time10的预分频器, 使Timer0比Timerl先溢出。

振荡器电路

  4、检测按钮是否按下
  
  剩下的工作是检测并报告是否有按钮按下。在每次扫描完成后,由TOIF发出常规中断来调用中断服务程序,以完成该工作。

  这里使用了三个无符号整型变量:

  变量average存放前面16个采样值的滑动平均值;raw是从Timerl读取的当前传感器数据;trip是按钮按下时频率与平均值的差。最简单的算法是测试raw是否比平均值小某个固定值,其代码示例如下:

  作为演示示例,假设在手指没有按下按钮时,振荡器读数是10,000.则aver-age和raw都将是10,000。设计假定trip取值是1000。一旦按下按钮,raw值马上下降至8500,而averge仍然是10,000,因为8500小于9000。“if语句”将为真。按钮按下。而后,由于按钮按下,可以设置标志位或者进行响应。具体示例电路见下图。

  5.配置PIC MCU
  
  目前,有三个系列PIC单片机能实现上述功能,即PIC16F616、PIC16F690和PIC16F887系列。用于电容触摸传感的基本寄存器设定是一样的,尽管系列之间的差异可能导致寄存器设定值上有小小的不同。

14785

 

 




本文关键字:技术  触摸  传感器电子学习 - 基础知识 - 传感器