【ESP 保姆级教程】第三方库篇 —— OneButton介绍

本文是ESP8266开发中关于OneButton库的详细教程,介绍了如何初始化、设置检测间隔以及绑定各种事件响应方法,帮助开发者实现单个按钮的精确控制。
摘要由CSDN通过智能技术生成

忘记过去,超越自己

  • ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
  • ❤️ 本篇创建记录 2021-06-04 ❤️
  • ❤️ 本篇更新记录 2022-01-22 ❤️
  • 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
  • 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
  • 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥

1. OneButton库

用于检测单个按钮(Key)上的按钮单击双击长按模式的库。

2. OneButton 头文件

源码:

class OneButton
{
   
public:
  // ----- Constructor -----
  
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用 OneButton.h 库可以很方便地实现按键的长按和短按功能。下面是一个简单的示例代码,演示了如何使用该库来检测按键的状态: ```C++ #include <OneButton.h> // 定义按键引脚 #define BUTTON_PIN 2 // 创建一个 OneButton 对象 OneButton button(BUTTON_PIN, true); void setup() { // 初始化串口 Serial.begin(9600); // 设置按键长按和短按的时间阈值(单位为毫秒) button.setClickTicks(100); button.setPressTicks(1000); // 绑定按键短按和长按的回调函数 button.attachClick(clickHandler); button.attachLongPressStart(longPressStartHandler); button.attachLongPressStop(longPressStopHandler); } void loop() { // 处理按键事件 button.tick(); } // 按键短按的回调函数 void clickHandler() { Serial.println("Short press detected."); } // 按键长按开始的回调函数 void longPressStartHandler() { Serial.println("Long press started."); } // 按键长按结束的回调函数 void longPressStopHandler() { Serial.println("Long press stopped."); } ``` 在上面的代码中,我们首先定义了按键的引脚。然后创建了一个 OneButton 的对象,并设置了按键长按和短按的时间阈值。接着,我们绑定了按键短按和长按的回调函数,这些函数将在相应的事件发生时被调用。最后,在主循环中调用 `button.tick()` 处理按键事件即可。 需要注意的是,`OneButton.h` 库使用了 `attachInterrupt()` 函数来检测按键状态,因此在使用该库时需要根据实际情况选择正确的引脚。同时,由于 Arduino 的 `loop()` 函数是一个无限循环,因此需要使用 `button.tick()` 来驱动按键事件的处理。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机菜鸟哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值