传感器开发平台
直播中

贺楠

7年用户 948经验值
私信 关注

如何添加电容式触摸按钮或接近传感器?

电容触摸传感用户接口已经变得广受欢迎。不过,与机械式按钮不同,电容触摸并不是纯粹的双位信号,电容触摸解析的是模拟信号。

回帖(2)

张志诚

2019-10-23 15:03:27
由于电容触摸技术不需要直接的电连接,而是通过材料进行检测,它还可以用作接近传感器,用在当用户靠近接口时(而不是在触摸接口时)就进行反应的用户接口中。
由于许多系统和用户接口控制电路中已经有单片机存在,采用电容触摸用户接口可以降低系统成本和元件数。电容式传感器可以替代按钮、滑动条和拨号盘,电容式传感器可以简单到只是电路板上的导电焊盘。其成本基本上可忽略不计,而可靠性却要大很多。
当用户按压面板表面时,电容触摸传感电路开始工作,形成对地的电容,电容的一个极板是电路板上的导电焊盘,另一极板是用户的手指。导电焊盘还有寄生电容,把焊盘连接到单片机的电路走线同样也有寄生电容。寄生电容值可随环境改变(诸如温度和湿度)而变化。由于这两个电容是并联的,如图1所示,我们不能同时测量它们。

用户手指产生的电容取决于极板和手指的面积以及面板材料的厚度和介电常数,如公式1所示。

公式1:平行极板的电容
其中:
Cf 是用户手指产生的电容;
e0是自由空间的介电常数为8.85 × 10-12;
er 是两极板间材料的介电常数;
A是两极板重叠区域的面积;
d是两极板之间的距离。
产生的电容越大,检测到触摸或感应到接近就越容易。从公式1中,我们可以看出,决定所产生电容的因素是:挑选用于用户接口面板的材料和材料的厚度。材料的选择决定了介电常数,厚度决定了用户手指和导电焊盘之间的距离。增大板上导电焊盘的面积会产生一定的效果,但面积超过用户手指面积后就不再有用,因为重要的是重叠区域的面积。不过,对于接近感应,导电焊盘可设计得大些,这样不仅能与用户的手进行耦合,而且多出来的面积可提高感应范围。
出于机械的原因,比如接口面板上的支撑肋,可能无法紧贴接口面板安装电路板。在电路板上安装弹簧而不是导电焊盘可以克服这一问题。弹簧应紧压接口面板上的按钮区域,桥接面板与电路板之间的空隙。用户手指于是经由面板与弹簧进行耦合。这一方法最小化了电容极板间距,避免了出现气隙,气隙可能显著减弱响应的灵敏度。
电容触摸接口不断地测量导电焊盘的电容,跟踪由于环境逐步变化而导致的寄生电容变化,记录下可用来判断触摸是否发生的内部估计值(触摸发生时电容频率改变)。
举报

汪潇潇

2019-10-23 15:03:33
测量方法
适用于单片机测量导电焊盘电容的方法如下:
1. 电容分压器;
2. 充电时间测量;
3. 电容检测模块。
所有这三种方法都不需要外部元件;但在测量和解析电容时确实对单片机有一些要求。
1. 电容分压器
此方法需要具有内部具有ADC的单片机,对于多数系统而言这已经是普通要求了,对单片机不再有其他功能要求。此方法使用ADC的内部保持电容以及电路板上导电感应焊盘的电容来产生电压,电压取决于传感器的电容。然后使用ADC测量电压,再由软件进行处理。
正常工作期间,在进行模数转换时,图2中的模拟多路开关用来选择、测量单片机引脚(称作选取的通道)上的电压。允许保持电容器充电至引脚电压,充电时间为采集时间,然后采样开关断开,ADC产生保持电容上电压的数字表示。

当单片机的引脚被模拟多路开关选中时,它们还可以配置成数字I/O,这使得我们能够把保持电容充电或放电至电源电压的上下轨值。
这种测量方法需要若干步骤。一些步骤的时序可能是至关重要,因为电容的泄漏和延时将导致读数漂移。
i) 要为测量初始化系统,我们需要在系统中对电容进行适当的充放电。通过使用模拟多路开关选择未占用引脚并把它配置为高输出驱动,我们可以对内部保持电容器进行充电。同时我们需要确保传感器没有充电。我们把连接传感器的引脚配置为低输出驱动,它使传感器接地。
ii) 一旦传感器电容已经放电,且保持电容器已经充电至正电源电压,连接到传感器的引脚上的输出驱动被禁用。这时,至电容的线路浮空,电容可以通过引脚或板泄漏获得一些电荷。正因为如此,这一步的时间应尽可能短。
iii) 使用模拟多路开关选中连接到传感器的引脚,这将使保持电容与传感器并联。保持电容充电至Vdd,而传感器则完全放电。其结果就是电流从保持电容流至电容传感器。模拟多路开关允许双向电流,尽管其阻抗确实会导致一些电流损耗。
iv) 在足以使系统稳定下来的时间之后,模数转换启动,采样开关断开,如图2所示。然后测量保持电容上的电压。这个稳定时间非常短,转换通常可以在下一条指令处开始。

保持电容上的电压取决于传感器电容,即传感器寄生电容和用户手指电容之和,如果触摸的话。这引出了下面的关系式,电压由ADC测得。

公式2:保持电容上的电压
其中:
VChold是由ADC测得的电压
Vdd是单片机电源电压
Chold是保持电容的电容,对于测试器件而言是10pF
Cp是传感器寄生电容
Cf 是手指产生的电容
从公式中可以看到,手指按压加入的电容将导致保持电容上的电压下降。这将转换为ADC输出结果的较低值。
读数的分辨率由ADC分辨率决定。由于这个原因,推荐使用10位ADC。可以使用较低分辨率的ADC,但它将需要更大的电容改变量,而这通常要求较小的极板间距和更薄的接口面板。因为测得的电压通常要低很多,为了提高ADC分辨率,可以使用比电源电压更低的参考电压来进行转换。该参考电压的改变将增大每一数字位能够分辨的电压,但要小心避免饱和。当被转换电压超过参考电压,而ADC只能以其最大输出码进行响应,这样就会出现饱和。因为电容式测量非常快,通常为10~20µs,可以对传感器进行过采样,以便提高分辨率。
上述文字讨论的是使用未占用引脚对保持电容进行充电的情况。但是,如果要测量多个电容触摸传感器,连接另一传感器的引脚可以暂时用来对保持电容进行充电。用于该输入的传感器此时不会被测量,由于涉及的电容小,并且数字输出的输出阻抗也较低,所以可将该输入驱动为高电平。至ADC的任何内部参考电压也可用来给保持电容充电。
2. 充电时间测量
一些单片机集成了恒流源,它可用来给传感器电容充电一段固定时间,然后测量得到的电压,如图4。

用户手指加入的电容(它与传感器耦合)将减小ADC测得的电压。

公式3:传感器上产生的电压
其中:
V 是ADC测得的电压
i 是来自恒流源的电流
tcharge 是传感器充电的固定时间长度
Chold是保持电容的电容值,对于测试器件而言为10pF
Cp是传感器的寄生电容
Cf 是手指按压产生的电容
此方案使用ADC的模拟通道多路开关(见图5),选择单片机的不同引脚。这使它能够扫描多个传感器,而且保持电容充电时是与传感器电容并联的,从而避免形成电容分压器。

在使能电流源之前,电容的电荷应该是已知值。因此,可将电容通过单片机中的内部门接地,确保它完全放电。在软件中可调节电流,形成快速充电时间,从而允许在扫描多个传感器时进行快速测量。在引脚数较高的很多Microchip单片机上都实现了恒流源,这些单片机还拥有很多模拟通道,允许实现多个电容式传感器。
3. 电容检测模块
若干更新款的通用单片机还提供电容检测模块,集成了用于检测电容的特殊电路。这些新款单片机包含一个大模拟多路开关, 允许对用于多按钮接口的多个电容式传感器进行扫描;除了CSM(电容检测块振荡器)之外,此类单片机还使用一对内部计数器/定时器。

模块根据较低和较高触发点交替使用内部恒流源和吸流阱对传感器电容进行充放电,产生图6所示的波形。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分