双源电子

在线客服
 工作时间
周一至周五 :8:30-17:30
周六至周日 :9:00-17:00

ARDUINO学习10

作者:双源电子

按键软件除抖动。
实际应用中,经常会使用按键来触发不同的事件,按键的电路很简单,就是把一个IO置高或者置底,稍微复杂一些会用到扫描按键或者AD按键。在这些应用中,由于电源或者外界的干扰,经常会造成信号的抖动而引起误判。如果你有示波器,耐心观察IO上的波形,很容易看到三角形的毛刺抖动现象。
如果我们的程序直接写成下面的样子:
if(IOBTN==0)//如果按键按下
{
   doSometing();//执行某项操作
}
这样代码很可能就会误判,没有达到我们的预期效果。该如何忽略这些外界干扰引起的抖动呢?
我们用手按下按键的过程一般都是毫秒级的,而通过示波器观察,毛刺的波形宽度都是微秒甚至纳秒级的,利用这个时间段特性,可以在程序中加入这样的判断:
第一次检测到按键变化后,不要立刻执行对应的操作,延时10ms,再次判断,如果按键还是处于按下状态,那就执行对应的操作。
代码如下:
if(IOBTN==0)//如果按键按下
{
   delay(10);//等待10ms
   if(IOBTN==0)//再次判断按键是否按下
       doSometing();//执行某项操作
}
这是代码比较简单的情况,如果你的代码很复杂,这10毫秒对你很宝贵,需要做其他的事情,那就要使用定时器了。

联系方式
_faiMaterial_000045

联系人:ANTBOT001

QQ:584860790

邮 箱:584860790@qq.com

交流群: 615486305