我是靠谱客的博主 感动戒指,最近开发中收集的这篇文章主要介绍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)关键代码讲解

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

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

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音乐模块)更多创意作品请关注公众号:STCode的全部内容,希望文章能够帮你解决Arduino按键控制MP3模块随机播放音乐(YX5300 MP3音乐模块)更多创意作品请关注公众号:STCode所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部