[KungFu8位 MCU]

常用电容触摸按键模块讲解

[复制链接]
873|3
手机看帖
扫描二维码
随时随地手机跟帖
LM莫|  楼主 | 2019-3-31 10:32 | 显示全部楼层 |阅读模式
电容触摸按键原理

RC充放电电路原理
在模拟及脉冲数字电路中,经常涉及RC电路。在这些电路中,根据电阻R和电容C的取值不同、输入和输出关系以及处理的波形之间的关系,产生了具有不同功能的RC电路,常见的电路应用包括微分电路 、积分电路、耦合电路、滤波电路及脉冲分压器。RC电路在模拟电路、脉冲数字电路中得到广泛的应用。RC电路原理是模、数电的必备基础知识。

RC充放电电路如下图所示:

195515ca026ac30f94.png

RC充放电电路原理讲解:

图中的开关起初处于开启的状态,电容器C上没有电荷,它两端的电压等于零。
当开关闭合时,压降V1通过R向电容器C充电。在电路接通的瞬间,电容器电压Vt=0,充电电流最大值等于V1/R。
随着电容器两极上电荷的积累,Vt逐渐增大,电阻器R上的电压VR=V1-Vc,充电电流i=(V1-Vc)/R,且随着时间的增大而越来越小,Vt的上升也越来越慢。当Vt=V1时,i=0,充电过程结束。
电容充电时间与电容大小关系
RC电路充放电公式:

Vt = V0+(V1-V0)* [1-exp(-t/RC)]

其中:V0 为电容上的初始电压值,V1 为电容最终可充到或放到的电压值,Vt 为t时刻电容上的电压值。

如果V0为0,也就是从0V开始充电。那么公式简化为:

Vt=  V1* [1-exp(-t/RC)]

由此公式可以看出:同样的条件下,电容值C跟时间值t成正比关系,电容越大,充电到达某个临界值的时间越长。

395685ca026becdeab.png

在同一副图中画出两条RC电路曲线,已知电容CB>CA,那么充电到达同一临界值Vth所用的时间关系为:TB>TA。

使用特权

评论回复
LM莫|  楼主 | 2019-3-31 10:34 | 显示全部楼层
电容触摸按键

电容触摸按键原理
这里是用的是检测电容充放电时间的方法来判断是否有接触,具体的原理图如下所示:



789835ca026f420604.png

图中R是外接的电容充电电阻,Cs是没有触摸按下时TPAD与PCB之间的杂散电容。而Cx则是有手指触摸按下的时候,手指与TPAD之间形成的电容,这样的话,有手指触摸按下的时候,电容是Cx+Cs(电容并联相加)。

由之前RC电路的原理讲解,不同的电容,在其他的因素都相同的情况下,充电充电到达同一临界值时需要不同的时间的。电容越大,需要的时间越长。

使用特权

评论回复
LM莫|  楼主 | 2019-3-31 10:35 | 显示全部楼层
本帖最后由 LM莫 于 2019-3-31 10:38 编辑

检测电容触摸按键过程
电容触摸按键模块中,电容放电开关,由STM32的IO口代替。具体的电路图如下:

609905ca0281d39c9f.png

由此可以得到检测电容触摸按键是否被按下的过程:

TPAD引脚设置为推挽输出,输出0,实现电容放电到0。
TPAD引脚设置为浮空输入(IO复位后的状态),电容开始充电。
同时开启TPAD引脚的输入捕获开始捕获。
等待充电完成(充电到达Vth,检测到上升沿)。
计算充电时间。
输入捕获部分的内容,可以参考学习:【STM32】通用定时器的输入捕获(实例:输入捕获)。



判断依据:没有按下的时候,充电时间为T1(default)。按下TPAD,电容变大,所以充电时间为T2。我们可以通过检测充放电时间,来判断是否按下。如果T2-T1大于某个值(阈值),就可以判断有按键按下。

使用特权

评论回复
consumption| | 2019-4-26 19:49 | 显示全部楼层
通过检测电容的变化量来判断是否有按下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

447

帖子

3

粉丝