概述
Introduction
DFPlayer Mini是一款MP3模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,可作为Arduino UNO的一个模块。
这里主要配合Uno讲解使用
IO Pin
Arduino Uno Sample
这里以DFRobotDFPlayerMini 库的GetStarted案例(每3秒切换下一首)作为示范
Material - 所需材料
- Arduino Uno x1
- DFPlayer Min ix1
- SD卡 x1
- 小喇叭 x1 (我用的是8Ω 0.5W,声音小的一匹,看来需要功放)
- 1k欧姆电阻 x1
库文件下载链接DFRobotDFPlayerMini 库安装,当然也可以直接从Arduino IDE的库文件管理器下载(推荐介个)
注意:文件夹命名需要是mp3,放置在SD卡根目录下,而mp3文件命名需要是4位数字,例如"0001.mp3",放置在mp3文件夹下。
如需中英文命名,可以添加在数字后,例如"0001hello.mp3"或者"0001后来.mp3"。
SD卡
我这里没有按照规则进行命名,实测是可以播放的,但是没有数能不能全部播放.
接线图
如果有“嘟嘟”的电流声,需要在DFPlayer Mini的RX上加上一个1K电阻。(没加的话真的只能听到噪声)
这里的电源根据网友的博客建议,使用单独电源供电较好,用Uno供电会产生噪音,我这里实测单独供电不响应????
实物图
我买的为啥不能正好插进面包板???
Code
这里我把每三秒切歌换成了15s,
修改位置为Loop里面的if (millis() - timer > 15000),15000ms切歌一次,可以打开串口监视器(默认波特率115200)查看提示
#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){
delay(0); // Code to compatible with ESP8266 watch dog.
}
}
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 > 15000) {
timer = millis();
myDFPlayer.next(); //Play next mp3 every 3 second.
Serial.println(F("Playing Next one"));
}
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 DFPlayerUSBInserted:
Serial.println("USB Inserted!");
break;
case DFPlayerUSBRemoved:
Serial.println("USB Removed!");
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;
}
}
Conclusion
播放出来没有太大杂音就hin开心了,刚好能够配合nfc做一个假唱片机,下期预告
如果要更大点声音的或还是需要功放板滴
Else
USB串口使用模式、IO模式、AD按键模式,请浏览DFROBOT学习
AD按键模式可以做一个成品MP3 0.0(加上电池的话),
FAQ
- 问 :Arduino控制DFPlayer mini时,喇叭有杂音,如何处理? |
答:在TX,RX与MP3模块的RX,TX之间连一个1k电阻。因为DFPlayer Mini模块工作电压应该是3.3V,而主控板传入电压为5V,因此需要1K左右电阻分压。 答: 如果效果不好,可以在mp3播放的代码后面增加一条语句,将RX引脚置为低电平。
- 问 :为什么 play(1) 播放的不是 0001.mp3, 而是其他的的音乐? 为什么播放的顺序不是按照文件名播放? |
答:play(1)是播放TF卡中的第一首歌, 播放顺序是由mp3放入TF卡的顺序决定的, 而不是按照文件名排序播放的, 如果需要按照文件名播放, 可以参考下面的playMp3Folder(1)
- 问 :是否可以按照文件名播放? |
答:可以使用函数playMp3Folder (1); 播放文件的格式为"0001***.mp3(或支持其他格式)". 您可能需要注意这些:
(1). 该音频文件的名称应该命名一个四位数字开始,如:
0001.mp3
0002Chasing The Sun.mp3
0003.mp3
0004Try.mp3
0010FourFiveSeconds.mp3
(2).该音频文件应该放在“MP3”‘它坐落在TF卡的根目录’’’'文件夹;
- 问 :想用下插播广告的功能,请问有样例吗? |
答:推荐阅读——【英文】如何实现插播广告的功能?
References
- [入门教程]Microt:bit 玩转 DFPlayer Mini制作自己的mp3 精
- DFPlayer Mini Introduction
- DFPlayer Mini
- 开发文档
最后
以上就是野性帅哥为你收集整理的DFPlayer Mini单片机-让你的Arduino Uno会唱歌IntroductionArduino Uno SampleElseFAQReferences的全部内容,希望文章能够帮你解决DFPlayer Mini单片机-让你的Arduino Uno会唱歌IntroductionArduino Uno SampleElseFAQReferences所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复