0、结果

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

1、外观

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

cordova 获取扬声器声音pcm_单片机

2、连线 

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

引脚图:

cordova 获取扬声器声音pcm_arduino_02


cordova 获取扬声器声音pcm_嵌入式硬件_03

  • 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文件。

cordova 获取扬声器声音pcm_单片机_04

5、基本原理

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