KE0092 Keyes Player Mini MP3模块 红色 环保

来自KEYES
跳转至: 导航搜索

概述

KE0092.png

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

规格参数

  • 支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
  • 24位DAC输出,动态范围支持:90dB,信噪比支持:85dB
  • 完全支持FAT16、FAT32文件系统,最大支持32G的TF卡,支持32G的U盘、64M字节的NORFLASH
  • 多种控制模式可选。IO控制模式、串口模式、AD按键控制模式
  • 广播语插播功能,可以暂停正在播放的背景音乐。广告播放完毕回到背景音继续播放
  • 音频数据按文件夹排序,最多支持100个文件夹,每隔文件夹可以分配255首曲目
  • 30级音量可调,6级EQ可调

引脚说明

KE0092-1.png

引脚号 引脚名称 引脚描述 备注
1 VCC 模块电源输入 3.3-5V,建议5V,不要超过5.2V
2 RX UART串行数据输入
3 TX UART串行数据输出
4 DAC_R 音频输出右声道 驱动耳机、功放
5 DAC_L 音频输出左声道 驱动耳机、功放
6 SPK_1 接小喇叭 驱动小于3W喇叭
7 GND 电源地
8 SPK_2 接小喇叭 驱动小于3W喇叭
9 IO_1 触发口 默认上一曲(长按音量减)
10 GND 电源地
11 IO_2 触发口 默认下一曲(长按音量加)
12 ADKEY_1 AD口1 当触发时是第一首(长按循环第一首)
13 ADKEY_2 AD口2 当触发时是第五首(长按循环第五首)
14 USB+ USB+ DP 接U盘或插电脑的USB口
15 USB- USB+ DM 接U盘或插电脑的USB口
16 BUSY 播放状态 有音频,输出低;无音频;输出高

连接图

KE0092-2.png

测试代码

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void setup()
{
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);

  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    while(true);
  }
  Serial.println(F("DFPlayer Mini online."));

  myDFPlayer.volume(10);  //Set volume value. From 0 to 30
  myDFPlayer.play(1);  //Play the first mp3
}

void loop()
{
  static unsigned long timer = millis();

  if (millis() - timer > 30000) {
    timer = millis();
    myDFPlayer.next();  //Play next mp3 every 30 second.
  }

  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
  }
}

void printDetail(uint8_t type, int value){
  switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
      break;
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
      break;
    case DFPlayerPlayFinished:
      Serial.print(F("Number:"));
      Serial.print(value);
      Serial.println(F(" Play Finished!"));
      break;
    case DFPlayerError:
      Serial.print(F("DFPlayerError:"));
      switch (value) {
        case Busy:
          Serial.println(F("Card not found"));
          break;
        case Sleeping:
          Serial.println(F("Sleeping"));
          break;
        case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
          break;
        case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
          break;
        case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
          break;
        case FileMismatch:
          Serial.println(F("Cannot Find File"));
          break;
        case Advertise:
          Serial.println(F("In Advertise"));
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
}

测试结果

按照接线方法接好线,烧录好代码,上电,利用代码控制MP3模块,过3秒钟的左右,能听到喇叭里面发出声音,并以30秒的速度切换下一首MP3. 再将RX TX接线拔掉,利用按键测试。上电时,能听到声音,按S1是上一首,长按S1是减小音量。按S2是下一首,长按S2是增加音量。按S3第五首,长按S3是循环第五首。按S4第一首,长按循环第一首。

相关资料链接

http://url.cn/5yfu0SZ