首页 > 编程知识 正文

电磁铁可以控制触摸摁键吗,电容式触摸开关原理

时间:2023-05-03 10:18:14 阅读:61318 作者:164

文章目录RC充放电电路原理硬件连接程序设计思路函数实验代码

RC充放电电路原理

R:电阻

C:电源

RC电路充放电式:

vt=v0(v1-v0) [1-exp(-t/RC ) ]

V0:电容器的初始电压值

V1:电容器最终可充电或接通的电压值

v ) t时刻电容器上的电压值

====V0为0,即从0V开始充电。 表达式简化如下

vt=v1*[1-exp(-t/RC] )

因此,在相同条件下,电容值c与时间值t成比例,容量越大则充电达到某阈值的时间越长。 图:

硬件连接

电容触摸键原理

r :外置电容器充放电电阻

Cs:TPAD和PCB之间的杂散电容

Cx :用手指按下时手指与TPAD之间的静电容量

开关:用电容器放电开关、STM32 IO端口代替

按下和未按下的静电电容的变化作为一个信号传递,静电电容越大,充电时间越长,与原始时间t1不同的时间t2在IO端口被检测到,是判断按下的依据。

具体流程:

将 TPAD引脚设置为推挽输出,输出0,电容器放电为0;

将 TPAD引脚设为浮动输入(IO复位后的状态),开始电容器充电。

同时打开TPAD端子的输入捕捉,开始捕捉。

等待充电完成(充电至Vx,检测上升沿) )。

计算充电时间

编程思路不同的平台的区别在于定时器基础关联和IO端口的初始化

函数将IO端口设定为推挽输出0,使电容器放电。 等待放电完成后,设为浮动输入开始充电。

同时将计数器的CNT设定为零

voidTPAD_reset(void )函数:复位TPAD复位TPAD,等待捕获的启动,捕获后,得到定时器的值计算充电时间。

TPAD_ Get_Val (函数:获取一次捕获值(获取充电时间) )多次调用TPAD_ Get_Val函数获取充电时间。 取得最大值

TPAD_Get_MaxVal ()函数关系图:

实验代码# include ' sys.h ' # include ' delay.h ' # include ' usart.h ' # include ' led.h ' # include ' tpad.h ' int mart //设置系统中断优先级组2 delay _ init (168 ); //初始化延迟函数UART_init(115200 ); //初始化串行端口的波特率115200LED_Init (初始化//ledtpad_init); //初始化了触摸键,并以84/4=21Mhz的频率成功捕获了while(1) if (tpad _ scan )0) /上升沿(此函数的运行时间至少为15ms ) {LED1=LED1; //LED1相反(t; if(t==15 ) t=0; LED0=! LED0; //LED0反转,指示程序正在运行(Delay_ms(10 ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。