|
马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
今天给大家介绍下去抖动的按键库——Debounce
Debounce.zip
(67.13 KB, 下载次数: 7)
我们之间也说过了,按键按下会发生抖动,抖动?为什么?因为按键里面有块小触片,我们按下按键的时候,我们明显会听到“嘀嗒”一声。声音为什么会产生,那是因为触片震动发出的。扯远了
让大家先感性认识下:
硬件 按键接在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]
|
|