资讯详情

使用TTP224触摸芯片时出现的一些问题

踩一些坑,总结一下

    • 1.对数据的一些简单分析
    • 2.触摸太灵敏/触摸不灵敏
    • 3.这些脚位怎么写比较简单(个人)?
    • 4.点动低电平输出模式完成后出现的一些问题
    • 5.总结

1.对数据的一些简单分析

  1)TTP224对比TTP223来说,提供了更多的触摸端口,脚位相应多了许多。	2)TTP223只有一个触摸端口,TTP224有四个。	3)TTP223是6Pin的,而TTP224是16Pin。

2.触摸太灵敏/触摸不灵敏

这两点都可以通过改变触摸端口连接的电容来解决。电容量越大,不连接电容的灵敏度越低。(根据实际情况,电容值范围为 0~50pF。)

3.这些脚位怎么写比较简单(个人)?

1)TTP224的TP0~TP3口触摸按钮2TTP224的TPQ0~TPQ3口接单片机(我用的是STC15)3)除1、2外不焊接口(模式:点动高电平输出)4)AHLB口焊,其他口不焊(我用的,模式:点动低电平输出)5)TOG口焊,其它口不焊(自高电平输出)6)AHLB和TOG口焊,其他口不焊(自锁低电平输出)

4.点动低电平输出模式完成后出现的一些问题

#include  <stdio.h>#include  <STC15F2K60S2.H>sbit key1 =  P1^4;        //加sbit key2 =  P1^5;        //减sbit key3 =  P1^6;        //乘sbit key4 =  P1^7;        //除int  a,b,c;void  delay(int  num){       int  x,y;  for(x =  0;x<num;x    )  {         for(y =  0;y<100;y    );  }}/* 加 */int  set_add(){       if(key1 ==  0)  {         delay(10);    if(key1 ==  0)    {           while(key1 ==  0);			delay(10);			c = a+b;		}	}	return c;}/* 减 */int set_subtract(){
     	if(key2 == 0)	{
     		delay(10);		if(key2 == 0)		{
     			while(key2 == 0);			delay(10);			c = a-b;		}	}	return c;}/* 乘 */int set_multiply(){
     	if(key3 == 0)	{
     		delay(10);		if(key3 == 0)		{
     			while(key3 == 0);			delay(10);			c = a*b;		}	}	return c;}/* 除 */int set_devide(){
     	if(key4 == 0)	{
     		delay(10);		if(key4 == 0)		{
     			while(key4 == 0);			delay(10);			if(b != 0)			{
     				c = a/b;				//先确定b!=0			}			else			{
     				printf("输入的参数有错误,请重新输入!");			}		}	}	return c;}void main(){
     	while(1)	{
     		set_add();		set_subtract();		set_multiply();		set_devide();	}}
问题1:触摸按键很快的轻点才有反应问题2:经常触摸不到问题3:触摸这个按钮实现了另一个按钮的功能解决方案:把每个按钮的功能函数下面的第一个delay(10)改为delay(1000),然后把按钮之间的距离拉大一点,然后就稳定了。

5.总结

1.触摸按键之间距离不能太近,会互相干扰,容易误操作。2.两次判断中间的延时不能太短,这点感觉跟机械按键有点区别,我的机械按键延时只用了delay(10),这个得再长一些。3.按键的灵敏度之前设置的太高,一点就疯狂运算,然后加了个防抖,稳定多了。

标签: 电容触摸stc

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台