第二十九篇、基于Arduino uno,控制MP3Player mini模块播放音乐——结果导向

0、结果

说明:通电后播放对应的歌曲,可以选择循环播放还是播放一次,也可以通过串口指定播放对应的音乐,如果是你想要的,可以接着往下看。

1、外观

说明:虽然MP3Player mini模块有很多型号,但是原理和代码都是适用的。


2、连线 

说明:只需要连接六根线。
引脚图:


  • uno————MP3Player mini模块
  •  5V--------------VCC
  • GND--------------GND
  • 6--------------RX
  • 5--------------TX
  • 小喇叭任意一端--------------SKP1
  • 小喇叭任意一端--------------SPK2

3、源程序

说明:通电之后,播放第一首音乐,之后循环播放列表的音乐,也可以通过串口调试器输入对应的音乐。并将对应功能进行函数化,方便移植。

/****************************************mp3mini part****************************************/
/*
  注意:
  存储卡内的文件应该有相应的格式,
  最好先格式化存储卡
*/
#include "Arduino.h"                                //调用库文件
#include "SoftwareSerial.h"                         //调用库文件
#include "DFRobotDFPlayerMini.h"                    //调用库文件

#define volume1 20                                  //控制mp3音量,范围从0到30
SoftwareSerial mySoftwareSerial(5, 6);              //连接模块的TX和RX引脚
DFRobotDFPlayerMini myDFPlayer;                     //实例化对象

int receiveData = 0;                                //接收的数据
/****************************************set up and loop part*********************************/
void setup() {
  Serial.begin(9600);                               //设置串口波特率为9600
  mySoftwareSerial.begin(9600);                     //初始化软串口

  if (!myDFPlayer.begin(mySoftwareSerial)) {        //使用serial软件与mp3通讯。
    while (millis() <= 1000) {
      Serial.println("设备即将上线。");
    }
  }
  myDFPlayer.volume(volume1);                        //设置音量值。从0到30
  //myDFPlayer.loop(1);                              //循环播放第一个mp3
  //myDFPlayer.pause();                              //暂停mp3
  //myDFPlayer.next();                               //播放下一个mp3
  myDFPlayer.play(1);                                //播放第一个mp3
  myDFPlayer.enableLoopAll();                        //循环播放列表
}
void loop() {
  uartReceiveData();                                 //从串口接收数据
}
/****************************************mp3mini part****************************************/
/*从串口接收数据*/
void uartReceiveData() {
  if (Serial.available() > 0) {                      //如果串口发送数据,执行以下操作
    delay(10);
    if (Serial.read() == '*') {
      receiveData = Serial.parseInt();
      myDFPlayer.play(receiveData);                   //播放指定的音乐
      Serial.println(String("当前音乐") + receiveData);//串口打印对应的内容
    }
  }
}

4、注意事项

说明:需要在线下载对应的库文件才不会编译报错,可以在管理库中很方便的搜到,如果搜不到可以评论@我,我将私发给你。将mp3格式的音乐复制到内存卡中有一定的方式,首先需要将音频文件转成mp3格式,然后在电脑上将名字改成这种形式的,如下图,再在SD卡建立一个mp3文件夹,最后将改好名称的音频文件复制到这个mp3文件。

5、基本原理

        DFPlayer Mini是一款小,且价格低廉的MP3模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为FXduino UNO或者是任何有串口的单片机的一个模块。模块的集成了MP3、WAV、WMA的硬解码。同时软件支持TF卡驱动,支持FAT16、FAT32文件系统。通过简单的串口指今即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。

  • 6
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
MP3音频解决方案介绍: 本设计介绍的是MP3音频解决方案,该解决方案包含有Arduino可兼容AVR单片机,MP3(还有许多其他格式)音频解码器芯片,微型sd卡插槽插座,立体声音频放大器以及一些外接转接线。该音频解决方案可以用来制作音乐生日礼物,同时还可以将歌曲下载到微型SD卡,播放自己喜欢的音乐。 该MP3音频解决方案可以通过3.7V的Lipo电池供电(充电电路内置)或者外接3.5-6V电源。当5个触发输入任何一个接地时,该MP3将播放SD卡里特定的音频文件。或者你可以焊接上RGB旋转编码器(当前不包括)或者导入新的固件来增加用户界面,便于用户跟踪选择和音量控制MP3音频解决方案具体特性: 电路采用Atmel公司的ATmega328p作为主控制芯片,ATmega328P高性能、低功耗的 8 位AVR 微处理器; Arduino引导装载程序(支持3.3V、8Mhz); 电路采用VS1053B芯片作为MP3解码器芯片; TPA2016D2立体声放大器; MCP73831 3.7V Lipo电池用于充电(默认为500mA,充电速度可以根据自己需要做更改); 该MP3音频输出接口耳机插座; 五个触发输入,也可用模拟、串行和I2C连接通信; 5V FTDI用于电池再充电和再重组; 实物图片展示(详见附件MP3音频解决方案用户指南): 附件内容包括: MP3硬件电路设计源文件(包括整个硬件电路设计原理图和PCB源文件,用Eagle软件打开或者查看原理图PDF档); Arduino源代码以及例程和库文件等; 相关重要芯片数据手册; 用户指南链接(有详细的文字和图片说明);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值