电容触摸按键实验——物联网创新实验室 2021.3.30
Dashai’s products must be excellent
实验目标:
用 TIM5 的通道 2(PA1)来做输入捕获,并实现一个简单的电容触摸按键,通过该按键控制 DS1 的亮灭。
电容触摸按键简介:
TPAD为模块上一小块覆铜区域,
Cs 是没有触摸按下时 TPAD 与 PCB板之间的杂散电容,
Cx 则是有手指按下的时手指与TPAD之间形成的电容。
注意:最前要先给电容放电……
用检测电容充放电时间的方法来判断是否有触摸
曲线A表示无手指触摸时Vc达到Vth时曲线,用时Tcs
曲线B表示有手指触摸时Vc达到Vth时曲线,用时Tcs+Tcx
所以只要能够区分 Tcs 和 Tcs+Tcx,就已经可以实现触摸检测了,当充电
时间在 Tcs 附近,就可以认为没有触摸,而当充电时间大于 Tcs+Tx 时,就认为有触摸按下(Tx为检测阀值)。
程序思想:
1.使用PA1(TIM5_CH2)来检测 TPAD 是否有触摸,
2.检测前,先配置PA1 为推挽输出,目的是给电容放电;
3.配置PA1 为浮空输入,利用外部上拉电阻给电容充电,同时开启 TIM5_CH2 的输入捕获,检测上升沿,当检测到上升沿的时候,就认为电容充电完成了,完成一次捕获检测。
4. MCU 每次复位重启,就执行一次捕获检测(可以认为没触摸),记录此时的值,记为 tpad_default_val,作为判断的依据,后续的捕获检测,我们就通过与 tpad_default_val 的
对比,来判断是不是有触摸发生。
具体程序:
tpad.c 和 tpad.h存放触摸按键驱动代码
tpad.c---------------------------------