//实验
- //检测A1按钮上的点击事件。 单击、双击、长按。 低电平有效。
- //使用millis();loop中不使用delay();函数防止程序卡,出现按键按完不执行。
- #include "OneButton.h"
- OneButton button1(A1, true);
- int a=1;
- uint32_t t=0;
- boolean b=1;
- void setup() {
- pinMode(13, OUTPUT);
- digitalWrite(13, LOW);
- t=millis();
-
- button1.attachClick(click1);//按键1单击
- button1.attachDoubleClick(doubleclick1);//按键1双击
- button1.attachDuringLongPress(longPress1);//按钮1长按
-
- }
- // the loop function runs over and over again forever
- void loop() {
- //这个函数必须在loop按键才能正常检测
- button1.tick();
-
- //单击长亮
- if (a==2 ) digitalWrite(13, HIGH);
- //双击长灭
- if (a==3 ) digitalWrite(13, LOW);
- //长按闪灯
- if (a==4 ){
- if(((millis()-t)>1000)&&b==1){digitalWrite(13, HIGH); b=0; t=millis();}
- if(((millis()-t)>1000)&&b==0){digitalWrite(13, LOW ); b=1; t=millis();}
- }
-
- }
- void click1() { a=2;}
- void doubleclick1() { a=3;}
- void longPress1() { a=4;}
复制代码 |