创客联盟网
标题:
去抖动的按键库——Debounce
[打印本页]
作者:
CCFIVE
时间:
2013-8-26 12:15
标题:
去抖动的按键库——Debounce
今天给大家介绍下去抖动的按键库——Debounce
(, 下载次数: 7)
上传
点击文件名下载附件
下载积分: 贡献 -1
我们之间也说过了,按键按下会发生抖动,抖动?为什么?因为按键里面有块小触片,我们按下按键的时候,我们明显会听到“嘀嗒”一声。声音为什么会产生,那是因为触片震动发出的。扯远了
让大家先感性认识下:
硬件 按键接在D5
[mw_shl_code=cpp,true]#define SWITCH 5
#define LED 13
int flag=0;
void setup()
{
pinMode(SWITCH,INPUT);
pinMode(LED,OUTPUT);
}
void loop()
{
if(digitalRead(SWITCH)==LOW)
{
flag = !flag;
digitalWrite(LED, flag);//亮,灭LED
}
}[/mw_shl_code]
下载代码到板子之后,你会发现,本来我们想按一下亮,再按一下灭。实际我们得不到这个效果,按下有时候亮了又灭了。其实就是那个抖动导致程序误判,我们虽然按下一次,实际那个抖动相当于按下了很多次。好了。这时候就轮到这个Debounce库上场啦!
[mw_shl_code=cpp,true]// This code turns a led on/off through a debounced switch
#include <Debounce.h>
#define SWITCH 5
#define LED 13
// Instantiate a Debounce object with a 20 millisecond debounce time
Debounce debouncer = Debounce( 20 , SWITCH );
void setup() {
pinMode(SWITCH,INPUT);
pinMode(LED,OUTPUT);
}
void loop() {
// Update the debouncer
debouncer.update ( );
// Get the update value
digitalWrite(LED, debouncer.read() );
}
[/mw_shl_code]
欢迎光临 创客联盟网 (https://immaker.org/)
Powered by Discuz! X3.3