内容介绍
内容介绍
此作品选择的是“智能可穿戴”主题,但是在实物验证时方便焊接导致打板较大,做的是一个放大版,后期可设计成一个可穿戴的设备。
作品名称:基于ESP32的多媒体蓝牙控制器,可以通过蓝牙连接到手机 电脑等多媒体设备实现音量控制的功能。
实现功能
- 通过编码器旋钮实现控制功能
- 编码器左旋减小音量,编码器右旋增加音量。
- 编码器单击控制开关,双击实现音乐切换。
- 编码器按下左旋实现向上翻页,按下右旋实现向下翻页。
- 通过蓝牙连接电脑,并将设备识别成一个键盘输入设备。
硬件介绍
功能电路:
1.主控
ESP32最小系统仅需要简单的供电
2.自动下载电路
3.编码器连接
4.震动马达
通过一颗MOS管控制震动马达实现扭旋钮时的反馈,提高体验
5.稳压电路
采用ADI公司的ADP151AUJZ芯片进行稳压,将输入的电压以3.3V输出,给ESP32供电。
该芯片具有如下优点:压降仅230mv,能满足3.7V锂电池供电的条件下的降压输出。同时其应用电路简单,方便集成占据空间少。
6.电池充电电路
充电芯片采用美信的MAX1811ESA芯片,该芯片优点在于可以通过简单的外部电路实现充电电压和充电电流的选择,非常简单易用。并且带有充电指示引脚,能方便的知道充电状态。
其典型应用电路如下:
7.供电切换电路
并联一颗肖特基二极管D2,该肖特基二极管D1的正向导通压降约为0.3V,比MOS管的体二极管要小。在MOS管完全打开之前,VBAT通过肖特基二极管D1对VOUT进行供电,可以缓解VOUT电压下降过多的问题。
8.供电连接
设计将下载接口和供电分离开,通过铜柱连接,更美观同时将电源分开,在连接电脑进行程序烧录时可以避免因为焊接问题导致短路等原因烧坏电脑等问题,适合焊接小白,避免不必要的损失。
设计软件:arduino
关键性代码:
void ClockChanged(){
//Serial.println("count:"+String(count));
bool a = digitalRead(Pin_A);//读取CLK引脚的电平
bool b = digitalRead(Pin_B);//读取DT引脚的电平
static bool last_a;
static unsigned long last_time;
//digitalWrite(18, LOW);
if(last_a!=a&&millis()-last_time>4){
last_a=a;
if(++c==2){
c=0;
old_count=count;
count+=(a!=b?1:-1);
// Serial.println("count:"+String(count));
}
last_time=millis();
}
}
通过该代码我们实现对编码器的底层操作,获取编码器的值为下一步判断正反转做准备。
void xuanniu(){
if(old_count!=count){
TIME=0;
if(old_count>count)
{digitalWrite(18, HIGH);
bleKeyboard.write(KEY_MEDIA_VOLUME_DOWN);
delay(30);
digitalWrite(18, LOW);
}
else
{digitalWrite(18, HIGH);
bleKeyboard.write(KEY_MEDIA_VOLUME_UP);
//DELAY_TIME=millis();
delay(30);
digitalWrite(18, LOW);
}
old_count=count;
}
}
通过该代码我们进行判断编码器旋钮的左转还是右转,进而通过蓝牙模拟键盘实现音量的加减操作。
功能演示:视频中显示该设备可以通过蓝牙连接多媒体设备,并实现音量的控制,并能实现电池的充电。该设计具有可行性。
心得体会:非常感谢硬禾学堂和Digi-Key举办的这次活动,学到了不少东西,第一次一个人完成整个项目,超满足。
也非常感谢各种开源平台提供的各种库,前人栽树后人乘凉,为项目的功能提供了非常大的帮助,点赞。
电子森林里有非常多的大佬,很多好的项目,能在这个环境下学习特别开心,爱了爱了,
非常好的活动,希望以后多次举办。
也非常感谢各种开源平台提供的各种库,前人栽树后人乘凉,为项目的功能提供了非常大的帮助,点赞。
电子森林里有非常多的大佬,很多好的项目,能在这个环境下学习特别开心,爱了爱了,
非常好的活动,希望以后多次举办。
软硬件
附件下载
JIANPAN_1.ino
工程代码
基于ESP32的多媒体旋钮+600422A_2021-10-19.pdf
主板原理图
基于ESP32的多媒体旋钮电源+600422A_2021-10-19.pdf
电源板原理图
团队介绍
评论
0 / 100
查看更多