一、硬件:
二、软件:
使用Arduino IDE

三、操作:
1、接线-使用模拟引脚
| Arduino 引脚 | DFPlayer Mini MP3 模块引脚 | 接线说明 |
| D10 (数字引脚 10) | RX (接收引脚) | Arduino TX → 模块 RX |
| D11 (数字引脚 11) | TX (发送引脚) | Arduino RX → 模块 TX |
| 5V (电源引脚) | VCC (电源正极) | 接 5V,模块供电 |
| GND (接地引脚) | GND (电源负极) | 共地,保证通信正常 |

关于mp3模块,引脚要用右下角的那个GND。具体接线可以参考最前面的那个照片。
若需要播放声音,模块的 SPK1、SPK2 接扬声器正负极,无需外接功放。
2、程序
// 引入软件串口库(用于和MP3模块通信)
#include <SoftwareSerial.h>
// 引入DFPlayer Mini专用库(简化控制逻辑)
#include <DFRobotDFPlayerMini.h>
// 定义软件串口:RX(D11)接MP3模块TX,TX(D10)接MP3模块RX
SoftwareSerial mySerial(11, 10);
// 创建MP3模块对象
DFRobotDFPlayerMini myMP3;
void setup() {
// 初始化硬件串口(和电脑通信),波特率9600
Serial.begin(9600);
// 初始化软件串口(和MP3模块通信),波特率9600(模块默认波特率)
mySerial.begin(9600);
// 等待MP3模块初始化
delay(1000);
// 初始化MP3模块
if (!myMP3.begin(mySerial)) {
Serial.println("MP3模块初始化失败!");
while (1); // 初始化失败则卡住,提示用户检查接线
}
Serial.println("MP3模块初始化成功!");
// 设置音量(0-30,数值越大音量越高)
myMP3.volume(15);
Serial.println("请输入音频编号(001-005):");
}
void loop() {
// 检查串口是否有数据输入
if (Serial.available() > 0) {
// 读取串口输入的字符串(如"001")
String input = Serial.readStringUntil('\n');
// 去除字符串中的空格、换行等无效字符
input.trim();
// 判断输入的编号,播放对应音频
if (input == "001") {
myMP3.play(1); // 播放第1首音频(对应001.mp3)
Serial.println("正在播放:001.mp3");
} else if (input == "002") {
myMP3.play(2); // 播放第2首音频(对应002.mp3)
Serial.println("正在播放:002.mp3");
} else if (input == "003") {
myMP3.play(3);
Serial.println("正在播放:003.mp3");
} else if (input == "004") {
myMP3.play(4);
Serial.println("正在播放:004.mp4"); // 笔误,应为004.mp3,修正:
Serial.println("正在播放:004.mp3");
} else if (input == "005") {
myMP3.play(5);
Serial.println("正在播放:005.mp3");
} else {
// 输入无效编号的提示
Serial.println("输入错误!请输入001-005之间的编号。");
}
// 清空串口缓冲区,避免残留数据干扰
while(Serial.available()) Serial.read();
}
// 小延迟,降低CPU占用
delay(100);
}
3、串口显示
串口输入001-005,播放对应的歌曲
四、备注
内存卡要提前准备对应文件名字的歌曲


423

被折叠的 条评论
为什么被折叠?



