一、RC充放电路原理:

esp32电容触摸开关_esp32电容触摸开关


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

其中:V0为电容上的初始电压值

V1为电容最终可充到或放到的电压值

Vt为t时刻电容上的电压值

结论:同样的条件下,电容值C跟时间t成正比关系,电容越大,充电到达某个临界值的时间越长。

esp32电容触摸开关_引脚_02

二、电容触摸按键原理:

esp32电容触摸开关_#嵌入式_03

  • R:外接电容充放电电阻。
  • Cs:TPAD和PCB间的杂散电容。
  • Cx:手指按下时,手指和TPAD之间的电容。
  • 开关:电容放电开关,由STM32 IO口代替。
    检测电容触摸按键过程:
  • MCU引脚设置为推挽输出,输出0,实现电容放电到0。
  • MCU引脚设置为浮空输入(IO复位后的状态),电容开始充电。
  • 同时开启MCU引脚的输入捕获(定时器的功能)开始捕获。
  • 等待充电完成(充电到底Vx,检测到上升沿)。
  • 计算充电时间。 原理:没有按下的时候,充电时间为T1(default)。按下触摸按键,电容变大,所以充电时间为T2。我们可以通过检测充放电时间,来判断是否按下。如果T2-T1大于某个值,就可以判断 有按键按下。 程序设计:

esp32电容触摸开关_esp32电容触摸开关_04