我是靠谱客的博主 感动戒指,这篇文章主要介绍Arduino按键控制MP3模块随机播放音乐(YX5300 MP3音乐模块)更多创意作品请关注公众号:STCode,现在分享给大家,希望可以做个参考。

设计者:STCode (公众号同名)

在这里插入图片描述

1)功能描述

这个设计主要是通过按键来控制播放音乐,主要涉及到的内容有按键和YX5300 MP3音乐模块的使用,通过按压按键来达到随机播放音乐曲目的目的。

2)使用主要器件

1、Arduino Uno控制板
2、YX5300 MP3音乐模块
3、SD卡
4、读卡器
5、按键
6、面包板
7、导线
8、扬声器

3)元件介绍

1、YX5300 MP3音乐模块
该模块是一个基于高音质MP3音乐芯片的MP3音乐播放器模块。支持采样率是8KHz ~ 48KHz的MP3、WAV格式文件。
板载Micro SD卡座,可插上存了音乐文件的micro SD卡。单片机可以通过串口发送命令进行切换音乐、调节音量、播放模式等操作。用户也可以通过USB转串口模块对该模块进行调试。模块与UNO/AVR/ARM/PIC等单片机系统兼容。UART TTL串口控制播放模式,串口波特率为9600bps, 供电电源可为3.2 ~ 5.2V DC.
在这里插入图片描述

4)电路设计

4)电路设计
Arduino--------------------YX5300 MP3
D4----------------------------TX
D5----------------------------RX
按键一端接D2,另一端接到GND,整体简易接线图如下所示:
在这里插入图片描述

5)关键代码讲解

复制代码
1
2
3
#include <SoftwareSerial.h> //添加软串口头文件 SoftwareSerial mySerial(4,5); // 音乐模块TX接4,音乐模块RX接5

首先引入软串口头文件,定义音乐模块TXRX端口的接线

复制代码
1
2
3
unsigned char play_song1[8] = {0x7E,0xFF,0x06,0x08,0x00,0x00,0x01,0xEF}; //1 unsigned char play_song2[8] = {0x7E,0xFF,0x06,0x03,0x00,0x00,0x02,0xEF}; //2

上面定义两个字符变量,用于存储指令,其中play_song1[8]指令为播放歌曲1,play_song2[8]指令播放歌曲2,可以从倒数第二个16进制数据看出,播放歌曲1用0x01,播放歌曲2用0x02,以此类推;整数第四个16进制数据为设置循环播放还是播放一次,其中0x08指令为单曲循环,0x03为只播放一次。
相关指令可以参考下图:
在这里插入图片描述

复制代码
1
2
3
4
5
unsigned char pause[8]={0x7E,0xFF,0x06,0x0E,0x00,0x00,0x00,0xEF}; //暂停播放 unsigned char play[8]={0x7E,0xFF,0x06,0x0D,0x00,0x00,0x00,0xEF}; //恢复播放 unsigned char stop_play[8] = {0x7E,0xFF,0x06,0x16,0x00,0x00,0x00,0xEF}; //停止播放指令 unsigned char top_volume[8]={0x7E,0xFF,0x06,0x06,0x00,0x00,0x1E,0xEF}; //设置最大音量

此代码同时用到了上述指令

复制代码
1
2
3
4
mySerial.write(top_volume, 8); //设置音量为最大 mySerial.write(stop_play, 8); //开机静音 randomSeed(analogRead(A0)); //随机数种子A0

上述指令设置了播放的音量以及开机默认静音,还设置了随机数种子,用于按键按下后,随机播放一首歌曲。

随机播放歌曲可以用switch语句

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
switch (num) //根据随机数随机播放曲目 { case 1: mySerial.write(play_song1,8); break; case 2: mySerial.write(play_song2,8); break; case 3: mySerial.write(play_song3,8); break; default: break; }

下面是按键扫描子函数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
void key_scan() //按键扫描子函数 { if(digitalRead(keypin)==LOW) { delay(20); //消抖 if(digitalRead(keypin)==LOW) { num=random(1,11); //随机数获取 start_flag=1; //播放标志位置1 } } }

6)效果演示

在这里插入图片描述

更多创意作品请关注公众号:STCode

最后

以上就是感动戒指最近收集整理的关于Arduino按键控制MP3模块随机播放音乐(YX5300 MP3音乐模块)更多创意作品请关注公众号:STCode的全部内容,更多相关Arduino按键控制MP3模块随机播放音乐(YX5300内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部