设计者: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)关键代码讲解

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

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

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为只播放一次。
相关指令可以参考下图:

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};   //设置最大音量

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

  mySerial.write(top_volume, 8); //设置音量为最大mySerial.write(stop_play, 8);  //开机静音randomSeed(analogRead(A0));    //随机数种子A0

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

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

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;}

下面是按键扫描子函数

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音乐模块)相关推荐

  1. arduino按键控制LED 灯(按一下切换一次状态)

    物联网实验一 2021.3.24 arduino按键控制LED 灯(按一下切换一次状态) #define led 13 //定义led灯为13引脚 #define button 3 //定义butto ...

  2. fl2440——按键控制madplay音乐播放器

    今日诗词分享:该段诗词描述的是国产武侠游戏<剑侠情缘三>中的职业--天策(游戏中对唐朝军人的称呼). 天策 长河落日东都城,铁马戍边将军坟. 尽诛宵小天策义,长枪独守大唐魂. ====== ...

  3. STM32F40实现 按键密码锁、按键控制LED 、串口选择菜单 、串口控制LED开关 、串口控制蜂鸣器开关及响度 、串口控制蜂鸣器播放音乐 、按键控制LED的亮度

    本人第一次发文,很多都不懂,尤其害怕版权问题,如果有人质疑我有盗权行为,请联系我,因为项目也遇到很多问题,然后就解决嘛,可印象中只有播放音乐代码有借鉴,所以如果有质疑盗了权的,请务必联系我.板子是使用 ...

  4. Arduino串口控制DY-SV5W音频播放

    以下为DY-SV5W介绍摘抄模块应用手册 1.产品概述 DY-SV5W是本司自主研发的一款智能语音模块,集成IO分段触发,UART串口控制,ONE_line单总线串口控制,标准MP3等7种工作模式,简 ...

  5. 安卓接收耳机按键控制音频播放

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 如今连接移动设备的耳机上基本都有按键,来控制音频的播放,暂停,下一首,上一首,或电话的拨打,视频的播放等功能.而外置媒体按键的按下,安卓系统接收到这个 ...

  6. Android音乐播放器开发(5)—播放界面(播放、暂停、上一首、下一首,顺序播放、随机播放、拖拽进度条…)

    1. 说明 源码已同步到Gitee仓库,Github仓库,觉得还不错的话帮忙点个"star"吧,非常感谢. Android播放器专栏其它文章: 服务端:Android音乐播放器开发 ...

  7. Flash:关键帧中调用自建的音乐类,进行播放、关闭、循环音乐+按键播放或者关闭外部音乐+循环播放背景音乐+播放按钮音乐+停止+加载外部音乐文件+AS2播放背景音乐

    目录 一.关键帧里面:调用自建的音乐类, 循环播放外部音乐.进行播放.关闭.循环音乐 1.代码:自建音乐类 2.关键帧中创建.播放.暂停背景音乐+按钮音乐 3.文件布置 二.关键帧中:按键播放或者关闭 ...

  8. html 不间断背音乐代码,请参考不用框架结构做出 “页面间跳转而不间断的背景音乐”每次进去还是随机播放...

    同事问的如果不用Frame怎么让背景音乐不间断播放呢 于是撒网在百度里搜··· 搜到了这个··真是高手呀·· var Media = new ActiveXObject("MediaPlay ...

  9. android 小型音乐播放器(实现播放、下一首、上一首、自动播放、随机播放按钮、当前播放歌曲界面)

    该文章主要针对 android 的音乐播放器软件进行简单的功能添加:播放.断点播放.停止.上一曲.下一曲.随机播放.显示当前播放歌曲(后续会为当前显示的播放添加动画): 软件开发流程: 1.先向内存卡 ...

最新文章

  1. TCP/IP详解--第十六章
  2. C#编程语言之读取网页内容(微软官网方法)
  3. java B2B2C Springcloud电子商城系统-通过消息队列传输zipkin日志
  4. android 去锯齿
  5. VmWare下安装CentOS6
  6. android studio Cmake undefine func
  7. 用实际的软件编程示例解释C#中的装饰器模式
  8. BZOJ4247挂饰
  9. 【RLchina第二讲】汪军老师推荐的强化学习理论学习资料
  10. 19. 星际争霸之php设计模式--迭代器模式
  11. arcgis开发笔记【silverlight 发布rest地图服务】
  12. 在线读取office 文件(Word excel 等)
  13. OpenDDS 配置文件详解
  14. php与mysql毕业设计_基于PHP的毕业设计管理系统设计与实现毕业论文+项目源码及数据库文件...
  15. 小程序 轮播图样式设置
  16. springboot发送短信验证码
  17. Python网络爬虫(一):爬虫基础
  18. 去中心化交易所与中心化交易所的优劣势对比
  19. 使用免费OA系统,让你成为职场锦鲤
  20. 记一次mac 黑屏,无法点亮,不稳定,待机后无法唤醒等故障维修。(驱动)

热门文章

  1. HTML5表单:工具箱中的可靠工具
  2. 计算机在机械设制造中的应用实例,机械设计与制造毕业设计一体化分析
  3. 网页嵌入其他网站或新打开其他网页并发送消息
  4. SpringBoot实体类返回JEON属性值排空返回
  5. 通过组策略编辑器关闭Windows自动更新
  6. 矩阵计算 Armadillo Eigen Matcom
  7. MySql 获取文件后缀名
  8. 十分钟快速掌握 Base 64 | Java JS 密码系列
  9. 【数据结构课程设计】关键路径问题
  10. 优锘科技:企业架构管理平台荣获2021年度创新产品奖