Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

【Arduino】168种传感器模块系列实验(85)--- Mini MP3 Player模块

[复制链接]
 楼主| 发表于 2019-8-8 09:10 | 显示全部楼层
3)IO模式
本模块也支持简单的IO模式

19.jpg

 楼主| 发表于 2019-8-8 14:29 | 显示全部楼层
本帖最后由 eagler8 于 2021-2-21 16:58 编辑
  1. /*
  2. 【Arduino】66种传感器模块系列实验(85)
  3. 实验八十五:开源 Mini MP3 Player TF卡播放器模块(YX5200-24SS)
  4. 程序之一,循环播放TF卡内0003.MP3(MP3文件夹内),音量20
  5. Arduino-------dfplayer
  6. 5V-------------VCC
  7. GND-----------GND
  8. D2-----------TXD
  9. D3-----------RXD
  10. */

  11. #include "SoftwareSerial.h"
  12. #include "DFRobotDFPlayerMini.h"

  13. SoftwareSerial mySoftwareSerial(2, 3);

  14. DFRobotDFPlayerMini myDFPlayer;

  15. void setup()
  16. {
  17. mySoftwareSerial.begin(9600);

  18. myDFPlayer.begin(mySoftwareSerial);

  19. myDFPlayer.volume(20);

  20. myDFPlayer.loop(3);   
  21. }

  22. void loop()
  23. {
  24. }
复制代码


 楼主| 发表于 2019-8-8 14:47 | 显示全部楼层
20.jpg
 楼主| 发表于 2019-8-8 15:11 | 显示全部楼层
收集整理的使用<DFRobotDFPlayerMini>库的控制语句汇总


[mw_shl_code=arduino,true]//收集整理的使用<DFRobotDFPlayerMini>库的控制语句汇总
  
  myDFPlayer.start();  //播放mp3
  myDFPlayer.pause();  //暂停mp3
  myDFPlayer.next();  //播放下一个mp3
  myDFPlayer.enableLoop();  //启用循环
  myDFPlayer.disableLoop();  //禁用循环
  myDFPlayer.stopAdvertise(); //停止做广告
  mp3Player.volume(10); //音量为10(0-30)
  myDFPlayer.previous();  //播放上一个的mp3
  myDFPlayer.randomAll(); //随机播放所有mp3
  myDFPlayer.enableLoopAll(); //循环所有mp3文件
  myDFPlayer.disableLoopAll(); //停止循环所有mp3文件
  myDFPlayer.play(1);  //播放文件夹里名为0001.mp3的音乐
  myDFPlayer.loop(1);  //循环文件夹里名为0001.mp3的音乐
  myDFPlayer.loopFolder(5); //循环文件夹SD:/ 05中的所有mp3文件
  myDFPlayer.playMp3Folder(4); //在SD中播放特定的mp3:/MP3/0004.mp3;文件名(0~65535)
  myDFPlayer.advertise(3); //在SD中宣传特定的mp3广告:/ADVERT/0003.mp3;文件名(0~65535)
  myDFPlayer.playFolder(15, 4);  //在SD中播放特定的mp3:/ 15/004.mp3;文件夹名称(1~99);文件名(1~255)
  myDFPlayer.playLargeFolder(2, 999); //在SD中播放特定的mp3:/ 02/004.mp3;文件夹名称(1~10);文件名(1~1000)[/mw_shl_code]
 楼主| 发表于 2019-8-8 16:46 | 显示全部楼层
几点注意事项
1、DFPlayer Mini 可以读取MP3 & WAV 档案格式,但试过档案长度1秒以下无法播放。
2、所有音乐档案一定要放在/mp3 资料夹里
3、音乐档案名称一定要使用4 个字,如0001.mp3, 0002.mp3…..0255.mp3
4、音乐档案超过4个字后则无限制,像是0001_Bruno_Mars_Count_On Me.mp3 是没问题的。
5、如果你从SD 卡上删掉某个档案,DFPlayer Mini 还是有办法把它播出来,好怪!后来我从新格式化SD 卡才成功播放我要的音乐档案。
6、Delay(sec); 这个指是是告诉Arduino 你要播放音乐的长度,如果你给的秒数不足,而下个指令又是要播另一首,则Arduino 就会把目前播放中断,而继续播下一首。
7、mp3_play (74); 这个指令是播放0074.mp3 这个音乐档。
8、不要直接把Arduino的5V给DFPlayer Mini使用,一定要分别供给DFPlayer Mini电源,不然喇叭会发出很大的杂音。
9、测试时平均电流150ma左右,模块发烫,可能要注意控制电流。
10、偶然发现这个模块使用不同的库,相关的控制语句完全不相同。

 楼主| 发表于 2019-8-8 16:53 | 显示全部楼层
本帖最后由 eagler8 于 2021-2-21 16:59 编辑
  1. /*
  2. 【Arduino】66种传感器模块系列实验(85)
  3. 实验八十五:开源 Mini MP3 Player TF卡播放器模块(YX5200-24SS)
  4. 程序之二,每3秒切换到下一首歌曲,音量20(速播TF卡内所有MP3歌曲)
  5. 可以打印来自dfplayer的详细信息以处理不同的错误和状态。
  6. Arduino-------dfplayer
  7. 5V-------------VCC
  8. GND-----------GND
  9. D10-----------TXD
  10. D11-----------RXD
  11. */

  12. #include "Arduino.h"
  13. #include "SoftwareSerial.h"
  14. #include "DFRobotDFPlayerMini.h"

  15. SoftwareSerial mySoftwareSerial(10, 11);
  16. DFRobotDFPlayerMini myDFPlayer;
  17. void printDetail(uint8_t type, int value);

  18. void setup()
  19. {
  20.   mySoftwareSerial.begin(9600);
  21.   Serial.begin(115200);

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

  25.   if (!myDFPlayer.begin(mySoftwareSerial)) {  
  26.     Serial.println(F("Unable to begin:"));
  27.     Serial.println(F("1.Please recheck the connection!"));
  28.     Serial.println(F("2.Please insert the SD card!"));
  29.     while(true);
  30.   }
  31.   Serial.println(F("DFPlayer Mini online."));

  32.   myDFPlayer.volume(20);  
  33.   myDFPlayer.play(3);  
  34. }

  35. void loop()
  36. {
  37.   static unsigned long timer = millis();

  38.   if (millis() - timer > 3000) {
  39.     timer = millis();
  40.     myDFPlayer.next();  
  41.   }

  42.   if (myDFPlayer.available()) {
  43.     printDetail(myDFPlayer.readType(), myDFPlayer.read());
  44.   }
  45. }

  46. void printDetail(uint8_t type, int value){
  47.   switch (type) {
  48.     case TimeOut:
  49.       Serial.println(F("Time Out!"));
  50.       break;
  51.     case WrongStack:
  52.       Serial.println(F("Stack Wrong!"));
  53.       break;
  54.     case DFPlayerCardInserted:
  55.       Serial.println(F("Card Inserted!"));
  56.       break;
  57.     case DFPlayerCardRemoved:
  58.       Serial.println(F("Card Removed!"));
  59.       break;
  60.     case DFPlayerCardOnline:
  61.       Serial.println(F("Card Online!"));
  62.       break;
  63.     case DFPlayerPlayFinished:
  64.       Serial.print(F("Number:"));
  65.       Serial.print(value);
  66.       Serial.println(F(" Play Finished!"));
  67.       break;
  68.     case DFPlayerError:
  69.       Serial.print(F("DFPlayerError:"));
  70.       switch (value) {
  71.         case Busy:
  72.           Serial.println(F("Card not found"));
  73.           break;
  74.         case Sleeping:
  75.           Serial.println(F("Sleeping"));
  76.           break;
  77.         case SerialWrongStack:
  78.           Serial.println(F("Get Wrong Stack"));
  79.           break;
  80.         case CheckSumNotMatch:
  81.           Serial.println(F("Check Sum Not Match"));
  82.           break;
  83.         case FileIndexOut:
  84.           Serial.println(F("File Index Out of Bound"));
  85.           break;
  86.         case FileMismatch:
  87.           Serial.println(F("Cannot Find File"));
  88.           break;
  89.         case Advertise:
  90.           Serial.println(F("In Advertise"));
  91.           break;
  92.         default:
  93.           break;
  94.       }
  95.       break;
  96.     default:
  97.       break;
  98.   }
  99. }
复制代码


 楼主| 发表于 2019-8-8 16:55 | 显示全部楼层
21.jpg
 楼主| 发表于 2019-8-8 17:34 | 显示全部楼层
22.jpg
 楼主| 发表于 2019-8-8 18:22 | 显示全部楼层
23.jpg
 楼主| 发表于 2019-8-8 19:18 | 显示全部楼层
24.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-8 15:07 , Processed in 0.072595 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表