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)查看提示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108#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内容请搜索靠谱客的其他文章。
发表评论 取消回复