当前位置: 首页 > news >正文

北海市建设局官方网站百度一下手机版

北海市建设局官方网站,百度一下手机版,asp 手机网站,wordpress 查看全文Arduino OneButton按键处理库实现单击/双击长按功能 ✨在Arduino开发平台下,按键的单击/双击/长按功能,在通过使用OneButton库,很容易就可以轻松实现。这就是支持C/C模块化设计的好处,避免重复性开发的工作。 🔖本文将…

Arduino OneButton按键处理库实现单击/双击长按功能


✨在Arduino开发平台下,按键的单击/双击/长按功能,在通过使用OneButton库,很容易就可以轻松实现。这就是支持C/C++模块化设计的好处,避免重复性开发的工作。

  • 🔖本文将具体接收OneButton库的相关调用函数介绍说明以及有关常用按键操作的使用方法。
  • 📍 OneButton库github地址:https://github.com/mathertel/OneButton

OneButton接口函数

  • 🌿 OneButton(const int pin, const boolean activeLow = true, const bool pullupActive = true);//实例化OneButton对象
  • pin,必填参数,指定引脚号。
  • bool,类型,可选,默认参数是true:按下为低电平; false : 按下为高电平
  • bool,类型,可选,默认参数是true,也就是将引脚上拉开启。
  • 🌿setClickTicks(const unsigned int ms):设置单击时间
  • 🌿setDebounceMs(const unsigned int ms):设置双击时间
  • 🌿setPressTicks(const unsigned int ms):设置长按时间
  • 🌿attachClick(callbackFunction newFunction);:单击时调用的函数。
  • 🌿attachDoubleClick(callbackFunction newFunction);:双击时调用的函数。
  • 🌿attachMultiClick(callbackFunction newFunction);:多次按此单击时调用的函数。
  • 🌿attachLongPressStart(callbackFunction newFunction);:长按开始时调用的函数。
  • 🌿attachLongPressStop(callbackFunction newFunction);:长按结束调用的函数。
  • 🌿attachDuringLongPress(callbackFunction newFunction);:长按期间调用的函数。
  • 🌿tick(void);按键扫描函数。
  • 🌿tick(bool level);:重新给按键引脚电平状态。
  • 🌿reset(void);:重启按键状态。
  • 🌿getNumberClicks(void);:获取按键次数(单击或多击)。
  • 🌿bool isIdle() :查询当前按键状态。如果当前正在处理按钮按流,则返回true。(这允许对电源敏感的应用程序知道何时可以安全地关闭主CPU)
  • 🌿isLongPressed():当检测到长按时为True

📝测试代码

  • 🌿测试对象:ESP32S3
  • 📋单击按下esp32板上的 boot0按键时,板载ws2812变为红色,双击按钮变成绿色,长按之后变成蓝色。
#include <Arduino.h>
#include "OneButton.h"  //https://github.com/mathertel/OneButton
#include <FastLED.h>  //https://github.com/FastLED/FastLED#define KEY 0 //esp32 BOOT0按键引脚#define LED_PIN 48  //ESP32-S3-DevKitC-1 RGB GPIO38 /YD:GPIO48
#define NUM_LEDS 1
OneButton button(KEY, true);CRGB leds[NUM_LEDS];void click();/******单击******/
void doubleclick();/******双击******/
void longPressStart();/******长按开始******/
void duringLongPress();/******长按期间******/
void longPressStop();/******长按结束******/
void attachPressStart();void setup()
{Serial.begin(115200);FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);// pinMode(RGB_PIN,OUTPUT);// digitalWrite(RGB_PIN,LOW);button.reset();//清除按钮状态机的状态button.attachClick(click);//注册单击button.attachDoubleClick(doubleclick);//注册双击button.attachLongPressStart(longPressStart);//注册长按开始button.attachDuringLongPress(duringLongPress);//注册长按button.attachLongPressStop(longPressStop);//注册长按结束button.attachDuringLongPress(attachPressStart);//按下键就会持续触发leds[0] = CRGB(255, 0, 0); // 设置颜色为红色FastLED.show();delay(1000);leds[0] = CRGB(0, 255, 0); // 设置颜色为绿色FastLED.show();delay(1000);leds[0] = CRGB(0, 0, 255); // 设置颜色为红色FastLED.show();delay(1000);leds[0] = CRGB(0, 0, 0); // 关闭FastLED.show();
}
void loop()
{button.tick();delay(10);
}
/******单击******/
void click()
{Serial.println("click");leds[0] = CRGB(255, 0, 0); // 设置颜色为红色FastLED.show();
}
/******双击******/
void doubleclick()
{Serial.println("Doubleclick");leds[0] = CRGB(0, 255, 0); // 设置颜色为绿色FastLED.show();
}
/******长按开始******/
void longPressStart()
{Serial.println("LongPressStart");
}
/******长按期间******/
void duringLongPress()
{if (button.isLongPressed()){Serial.printf("DuringLongPress,KEY STATE:%d\r\n",digitalRead(KEY));delay(50);//稍作延时处}
}
/******长按结束******/
void longPressStop()
{Serial.println("LongPressStop"); leds[0] = CRGB(51, 51, 153); // 设置颜色为靛蓝FastLED.show();}
void attachPressStart()
{Serial.printf("attachPressStart,KEY STATE:%d\r\n",digitalRead(KEY));
}
http://www.dt0577.cn/news/3882.html

相关文章:

  • 做商业网站绍兴seo排名收费
  • 俄罗斯做电商网站游戏推广代理加盟
  • 换接入商网站备案什么是核心关键词
  • 网站搭建详细步骤百度小程序
  • 如何用vs2012做网站上海最新事件
  • 哔哩哔哩网页版怎么回到旧版百度竞价关键词优化
  • centos7.2做网站黄冈网站建设收费
  • 暴力破解网站后台密码湖州网站建设制作
  • 免费mac做ppt模板下载网站建网站的流程
  • 大型网站 开发语言站长工具樱花
  • 做编程的网站一个月多少钱广告推广
  • 上海做网站哪家公司好网站客服系统
  • php抽奖网站源码seo网站优化工具
  • wordpress sql 注入北京seo公司网站
  • 南充市住房和城乡建设厅网站seo站外推广有哪些
  • 哪里有做时时彩网站搭建的无锡百度
  • 网站托管服务商查询湖南seo优化服务
  • 威海高区有没有建设局的网站泰州网站优化公司
  • 做营销的网站推广cms建站
  • 服装行业网站建设及推广磁力猫引擎入口
  • 济南哪里有做网站的哪个浏览器不屏蔽网站
  • 中小企业网站提供了什么信息流广告优化师
  • 电商网站制作流程图做网页的网站
  • 国家城乡建设部网站百度卖货平台
  • 合作做网站的总结和心得推广普通话作文
  • 保山网站开发此网站三天换一次域名
  • 企业邮箱在哪查看标题优化方法
  • 济南房产信息网站官网快速优化seo
  • wordpress custom css手机网站排名优化软件
  • 做兼职上什么网站营业推广案例