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

网站建设书籍湖南建设人力

网站建设书籍,湖南建设人力,知名手机网站,佛山网站快速排名提升ESP32蓝牙EC11旋转编码器实现对电脑音量控制✨本项目基于Arduino开发框架下功能实现。 🛠蓝牙设备添加和连接 ⚡需要有带蓝牙硬件支持的电脑才能实现连接并控制,当然手机也可以连接但是不能实现对手机音量控制, 🌿以Win10系统电脑…

ESP32蓝牙+EC11旋转编码器实现对电脑音量控制


  • ✨本项目基于Arduino开发框架下功能实现。

🛠蓝牙设备添加和连接

⚡需要有带蓝牙硬件支持的电脑才能实现连接并控制,当然手机也可以连接但是不能实现对手机音量控制,

在这里插入图片描述

  • 🌿以Win10系统电脑为例。在设置里面找到,添加蓝牙和其他设备
  • 🌿会搜索到ESP32-keyboard设备。

在这里插入图片描述

  • 🌿已连接设备
    在这里插入图片描述

⛳功能介绍

支持静音功能以及音量增加或减少.

  1. 按压EC11编码器,静音功能。
  2. 顺时针旋转,音量+,旋钮一格,音量增加+2.
  3. 逆时针旋转,音量-,旋钮一格,音量增加+2.

在这里插入图片描述

🌻EC11旋转编码器

在这里插入图片描述
在这里插入图片描述

  • 🌼EC11旋转编码器模块

在这里插入图片描述

  • 🔰原理图
    在这里插入图片描述

  • 🔧接线图原理图
    在这里插入图片描述

  • 接线说明

🎉参照上面的原理图进行接线,滤波电容没有可以忽略。

EC11 A ---->ESP32 GPIO 22
EC11 B ---->ESP32 GPIO 23
EC11 E ---->ESP32 GPIO 19
EC11 D 和 C---->ESP32 GND

📚所需库

  • 📌BleKeyboard库:https://github.com/T-vK/ESP32-BLE-Keyboard//需要自行前往下载并导入Arduino IDE库当中。
  • 🌾OneButton库:

在这里插入图片描述

  • 🌾ESP32Encoder库:
    在这里插入图片描述

📝代码实现

/** * *  ESP32-BLE-Keyboard:  https://github.com/T-vK/ESP32-BLE-Keyboard*/#include <Arduino.h>
#include "BleKeyboard.h"//需要到github下载并导入
#include "OneButton.h"//点击这里会自动打开管理库页面: http://librarymanager/All#OneButton
#include <ESP32Encoder.h>//点击这里会自动打开管理库页面: http://librarymanager/All#ESP32Encoder//按键配置
#define EC11_A_PIN 22
#define EC11_B_PIN 23
#define EC11_K_PIN 19//按键引脚//键盘名称:ESP32-BleKeyboard
BleKeyboard bleKeyboard("ESP32-Keyboard", "Espressif", 100);
ESP32Encoder encoder;
OneButton SW(EC11_K_PIN, true);int lastEncoderValue = 0;
int now_count = 0;
int mode = 0;   //0,1两种mode,可自行添加
bool activate = true;//按键单击回调函数
void click() {if (mode == 0) {Serial.println("Click: MUTE");bleKeyboard.write(KEY_MEDIA_MUTE);}if (mode == 1) {Serial.println("Enter");bleKeyboard.write(KEY_RETURN);}
}//按键长按回调函数
void longclick() {if (activate) {   //如果旋钮转动,则不切换状态Serial.println("Longclick: Mode Change");Serial.print("current mode: ");if (mode == 0) {mode = 1;Serial.println("Arrow");return;}if (mode == 1) {mode = 0;Serial.println("Media");return;}}activate = true;
}//按键双击回调函数
void doubleclick() {if (mode == 0) {Serial.println("Doubleclick: Input test");bleKeyboard.print("ESP32-BLEKeyboard Input Test");}if (mode == 1) {Serial.println("Doubleclick: Input test");bleKeyboard.print("ESP32-BLEKeyboard Input Test");}
}void setup() {Serial.begin(115200);ESP32Encoder::useInternalWeakPullResistors = UP;encoder.attachSingleEdge(EC11_A_PIN, EC11_B_PIN);pinMode(EC11_K_PIN, INPUT_PULLUP);//初始化按键事件检测SW.attachClick(click);SW.attachDoubleClick(doubleclick);SW.attachLongPressStop(longclick);SW.setDebounceTicks(20);//滤波(ms)SW.setClickTicks(200);SW.setPressTicks(500);Serial.println("Starting BLE work");bleKeyboard.begin();
}void loop() {SW.tick();if (bleKeyboard.isConnected()) {if (lastEncoderValue != encoder.getCount()) {now_count = encoder.getCount();if (now_count != lastEncoderValue) {if (!SW.isIdle()) {         //检测按键是否空闲activate = false;Serial.print("(Long_pressed)Encoder value: ");Serial.println(now_count);} else {Serial.print("Encoder value: ");Serial.println(now_count);}}if (now_count > lastEncoderValue) {if (!SW.isIdle()) {         //检测按键是否空闲if (mode == 0) {}     //模式0按钮按下顺时针功能if (mode == 1) {    //模式1按钮按下顺时针功能bleKeyboard.write(KEY_DOWN_ARROW);Serial.println("DOWN_ARROW");}} else {if (mode == 0) {  //模式0顺时针功能bleKeyboard.write(KEY_MEDIA_VOLUME_UP);Serial.println("MEDIA_VOLUME_UP");}if (mode == 1) {  //模式1顺时针功能bleKeyboard.write(KEY_RIGHT_ARROW);Serial.println("RIGHT_ARROW");}}}if (now_count < lastEncoderValue) {if (!SW.isIdle()) {         //检测按键是否空闲if (mode == 0) {}    //模式0按钮按下逆时针功能if (mode == 1) {  //模式1按钮按下逆时针功能bleKeyboard.write(KEY_UP_ARROW);Serial.println("UP_ARROW");}} else {if (mode == 0) {  //模式0逆时针功能bleKeyboard.write(KEY_MEDIA_VOLUME_DOWN);Serial.println("MEDIA_VOLUME_DOWN");}if (mode == 1) {  //模式1逆时针功能bleKeyboard.write(KEY_LEFT_ARROW);Serial.println("LEFT_ARROW");}}}lastEncoderValue = now_count;}}
}
  • 📋编译信息
使用 0.3.2  版本的库 ESP32-BLE-Keyboard 在文件夹: C:\Users\Administrator\Documents\Arduino\libraries\ESP32-BLE-Keyboard 
使用 2.0.0  版本的库 BLE 在文件夹: C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.5\libraries\BLE 
使用 2.0.4  版本的库 OneButton 在文件夹: C:\Users\Administrator\Documents\Arduino\libraries\OneButton 
使用 0.10.1  版本的库 ESP32Encoder 在文件夹: C:\Users\Administrator\Documents\Arduino\libraries\ESP32Encoder 
"C:\\Users\\Administrator\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32-elf-gcc\\gcc8_4_0-esp-2021r2-patch3/bin/xtensa-esp32-elf-size" -A "d:\\arduino\\MyHexDir/ESP32_BLE_Keyboard.ino.elf"
项目使用了 1055409 字节,占用了 (80%) 程序存储空间。最大为 1310720 字节。
全局变量使用了32988字节,(10%)的动态内存,余留294692字节局部变量。最大为327680字节。

文章转载自:

http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://00000000.pjtnk.cn
http://www.dtcms.com/wzjs/602401.html

相关文章:

  • 自学编程的网站米拓建站官网怎么用不了
  • 培训类网站建设东莞网站搜索排名
  • 做外贸平台还是网站汉语资源建设相关网站
  • 2019做什么类型网站成都市城乡建设管理局网站
  • 微网站开发项目合作协议wordpress视频链接
  • 网站怎样做自适应分辨率大小网页打不开但是微信和qq都可以上
  • 网站开发的税率是多少钱营销型网站建设有哪些平台
  • 网站seo新闻潜江网页设计
  • 超酷 flash 网站网站描述怎么写好
  • 网站做外链的具体步骤免费一键logo设计
  • 广告传媒建设网站标书制作软件
  • 哪家网站建设服务好啊中国新闻社是事业编制吗
  • 福田网站建设费用预算可不可以免费创建网站
  • 建设银行网站打不开 显示停止工作网站开发中背景图片怎么弄全屏
  • 泉州有哪些公司是做网站网网站建设
  • 建网站的公司公司十大免费跨境网站
  • 温州企业网站建设怀化网站优化公司有哪些
  • 安全网站建设情况企业营销策略
  • 单页面 网站怎么做的厦门网站建设哪家便宜
  • 企业建设门户网站的目的横琴网站建设
  • 泰安网站建设制作服务网站设计一个月多少钱
  • 大型网站建设公司优化一个网站
  • 网站建设布吉大连甘井子区二手房
  • 应用公园是免费的吗西安网站优化排名案例
  • 专门做简历的网站软件食品行业网站源码
  • 学做网站哪里学seo短视频网页入口引流网站推荐
  • 岳阳手机网站建设网站做动态图片
  • 网站模块下载温州网站建设得花多少钱
  • 做外贸网站卖什么好如何登陆wordpress
  • 推广企业网站域名政务中心网站建设方案