最近做一个项目,用C8051F单片机的电容感应模块CS0来做触摸按键的项目,刚开始做的时候,因为程序中是用固定阈值来判断是否有键被触摸,这个方式在高温和低温测试时,会出现误动作或者不动作的情况,后来修改成动态跟踪当前测得的电容值,即当前读到的电容转换数据与上一次读到的电容转换数据进行比较,如果当前读到的电容转换值超过上一次的电容转换值100以上,那么就认为有键被按了,否则就把当时的转换的电容值更新进保存上次的电容转换值的变量中(为了与下次转换值进行比较用)。这种做法目前 测试除了在营光灯的照射下有误动作外,高温、低温测试都能正常使用且没有任何误动作。但是当我把产品放到某种特殊材质的桌子上面,手去触摸按键区,产品没有任何响应。以上描述是把产品装成成品的测试情况。
拿出PCBA放在普通桌子上面测试,可以看到,手指与感应焊盘之间有2-3mm的距离,而把PCBA放在那张特殊材质的桌子上面以后,感应距离变得很短,几乎要用手摸到感应焊盘,PCBA板子才做出响应(这个问题有时候早上不会出现,到了下午就出现了)。
不知道有没有经历过这种问题的朋友们,希望各位专家、高手能给小弟提点宝贵意见
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
就是通过算法不断去校正环境变量。
一周热门 更多>