事实上,使用单片机实现电平触摸的原理很简单,因为手指触摸是电平的变化,读取电平状态可以处理按钮。相比之下,看起来更先进的电容式触摸技术并不那么简单,所谓的更先进并不是因为它的技术复杂,而是因为它在应用程序中看起来更优雅。电容式触摸技术可以让手指不接触金属导线,给用户一种更安全的感觉。因为没有人能保证暴露的金属片会有几千伏的电压。电容式触摸技术的另一个优点是在产品设计方面。对于我们的电子爱好者来说,找到一个适合他们的DIY工作的外壳非常困难,一些外壳制作大师可以在很短的时间内制作出精致和专业的外壳,但并不是每个人都有这样的能力。在外壳上钻孔以显示微动开关是很常见的,但钻孔很难看起来很漂亮,我也对这个问题感到困惑。幸运的是,有了电容式触摸技术,我们可以在塑料外壳内设计我们的触摸片(外壳不能是金属的,否则电容式触摸不起作用),只要外壳表面贴上标签,说明这是触摸按钮,有什么功能。
部分源程序的防误判断
/******************************************************************************
函数名:触摸按钮处理函数
调 用:? = Read_R ();
参 数:无
返回值:bit 1表示有感应物,0表示没有感应物
结 果:
备 注:需要根据实现应用程序协调灵敏度和其他参数
/*****************************************************************************/
bit Read_R (void){
unsigned char R,ii,m=0,i,j,k;
bit aa;
for(ii=0;ii<3;ii
j=0;k=0;
for(i=0;i<10;i ){ ///一次收集数据的数量
DELAY_MS (3)
R = Read (0); ////ADC读取数据
if(R < 0x2F){ ///此参数可调感应灵敏度值0x01到0x2F
k
}
if(R == 0xFF){ //ADC读数的最大值必须等于0xFF
j
}
}
if(k>1 && j>1){ ///触摸波形的数量积累m的值
m ;
}else{
m=0. //如果波形条件不符合要求m=0
}
}
if(m>二、{ //根据m数值判断是否有感应对象
aa =1;
}else{
aa=0;
}
return(aa); //将aa作为返回值
}
/*****************************************************************************/