求助,识别按键双击、长按的功能实现
各位大大好想实现检测按键双击、长按实现触发的功能
用led闪烁做比方
采用4*4矩阵键盘,用的key的库
按一下1,led闪烁3下
按两下1,led闪烁10下
长按1,led一直闪烁
求检测按键的方法,如何识别按键是双击还是长按捏~
小弟感激不尽~ 你已经描述的够清楚了,可以采用以下方法:
1、是否有按键
2、延迟是否释放了
3、是否又有按键
4,有的是二次按键,没有的是一次按键
如果2没有释放,判断为长按
间隔时间,可以试验定(通常1S),长按的时间可以自己确定(通常2S)。 林定祥 发表于 2014-12-16 19:46 static/image/common/back.gif
你已经描述的够清楚了,可以采用以下方法:
1、是否有按键
2、延迟是否释放了
thk~谢谢这位大哥的回复 本帖最后由 tihnika 于 2015-2-4 20:31 编辑
我实现成功了。双击ok了led10
//
int a = 0 ;
int w = 0 ;
int p = 0 ;
int buttonState = 0;
void setup() {
Serial.begin(9600);
pinMode(7, INPUT);
pinMode(10,OUTPUT);
}
void loop() {
buttonState = digitalRead(7);
delay(100);
if (buttonState == 1){
if (p == 1) {
w = w + 1;
delay(2);
if (w == 8) {
w=0;
p=0;
}
}
}
if (buttonState == 0){
if (w == 0) {
p=1;
}
if (w > 0) {
digitalWrite(10, HIGH);
delay(1000);
digitalWrite(10, LOW);
w=0;
p=0;
}
}
}
页:
[1]