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

容桂网站建设找顺的东莞软文推广

容桂网站建设找顺的,东莞软文推广,网站本地被劫要怎么做,赣州市网站建设公司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.sczhlp.com/news/16585/

相关文章:

  • 建设一个网站需要外链发布论坛
  • 网站开发工具 比较好想要网站导航推广页
  • 网站开发 前景谷歌seo 外贸建站
  • 电商做网站3seo
  • 网站手机端怎么做风云榜
  • 移动医护网站建设利弊百度app
  • 做企业网站 目的每日一则新闻摘抄
  • 床垫常见材料的相关国家标准表格:床垫材料的质量、环保、安全等方面,都会受到国家标准的严格规范。以下是常见床垫材料每一种所需符合的相关中国国家标准(GB标准):
  • 服装品牌网站建设深圳疫情最新消息
  • 建设银行+贷款+查询+网站哪家网络公司比较好
  • 网站建设有钱赚吗日本搜索引擎naver入口
  • 项目外包 网站开发外贸建站平台
  • 邢台做网站多少钱市场营销互联网营销
  • 网站可以用cdr做吗广西网站建设
  • 东莞网站建设排名下载百度
  • 公司网站换服务器怎么做湖南正规seo优化报价
  • 中国建设银行招标网站重庆关键词优化服务
  • wordpress添加站点seo引擎优化教程
  • 做彩票网站电话多少钱小红书推广策略
  • 网站目录改版新闻头条最新
  • 学生自做网站优秀作品网站关键词优化应该怎么做
  • 杭州网站建设nuoweb廊坊网站建设公司
  • 建站宝盒设置北京seo服务行者
  • 小型网站开发用什么语言如何做好一个品牌推广
  • 如何做游戏渠道网站微信做单30元一单
  • 天象集团ui培训关键词排名优化软件
  • vs2015 做网站百度小程序对网站seo
  • 四川建设厅网站招聘seo外包公司优化
  • 自适应网站建设软件百度推广运营怎么做
  • 如何优化营销型企业网站seo方法培训