arduino实现一个按键检测库-Arduino中文社区 - Powered by Discuz! Archiver

cxg 发表于 2021-1-22 19:58

arduino实现一个按键检测库

本帖最后由 cxg 于 2021-1-29 20:18 编辑

参照OneButton库, 我实现了一个自己的按键检测库, 实现了按键的按下,抬起,长按,双击功能, 代码简洁明了。目前只在esp32上测试过,在stm32, arduino uno上应该也没问题.


demo代码:

#include <Arduino.h>
#include "cxg_Btn.h"

static int btn1_pin = 39;
static CxgBtn btn1(btn1_pin, false);

void setup() {
Serial.begin(115200);

//按钮按下回调
btn1.setBtnKeydown([]() {
    Serial.println("keyDown");
});
//按钮抬起回调
btn1.setBtnKeyUp([]() {
    Serial.println("keyUp");
});
//按钮长按回调
btn1.setBtnLongPress([]() {
    Serial.println("longPress");
});
//双击回调
btn1.setBtnDoubleClickCallback([]() {
    Serial.println("doubleClick");
});
}

void loop() {
//循环检查状态
btn1.check();
}




可以设置类的这几个属性, 以达到最佳的按键效果。




新版将构造方法初始化改为调用attach方法初始化



z01228 发表于 2021-1-23 19:41

不错哈 ......

cxg 发表于 2021-4-8 11:33

本帖最后由 cxg 于 2021-4-8 15:01 编辑

1.双击bug修复
2.实现虚拟按键检测(把一个bool变量 值为:0-1 当成按钮)

沐雨橙风 发表于 2021-12-9 14:53

刚好需要这个,下载学习一下~;P
页: [1]
查看完整版本: arduino实现一个按键检测库