一、BY8002 mp3模块图片
二、简单测试
简单连接:
arduino-----------------BY8002
5v----------------------------8-VCC
GND------------------------14-GND
BY8002 PIN6,PIN7(spk1,spk2)--------->小喇叭(不分正反)
TF卡存好歌曲,歌曲命名为四位数字,如:0001.mp3 , 0002.mp3
将IO1接地会自动播放0001.mp3 ,IO2接地会自动播放0002.mp3 。
三、连接arduino
arduino----------------->BY8002
5v----------------------------8-VCC
GND------------------------14-GND
2RX(软串口)----------------3TX
3TX(软串口)----------------2RX
BY8002 PIN6,PIN7(spk1,spk2)--------->小喇叭(不分正反)
插入TF卡,歌曲命名为四位数字,如:0001.mp3 , 0002.mp3
注意:如果有杂音(哒哒哒的声音),建议按下图接一个1K的电阻。
四、arduino 串口指令播放(具体指令见后面厂商文档)。
#include <SoftwareSerial.h> // 引入软串口SoftwareSerial库
byte next[]={0x7e,0x03,0x03,0x00,0xef};//下一曲
byte last[]={0x7e,0x03,0x04,0x07,0xef};//上一曲
byte play[]={0x7e,0x03,0x01,0x02,0xef};//播放
byte vmines[]={0x7e,0x03,0x06,0x05,0xef};//音量减(发送一次减少一个级别,共0-30)
byte vplus[]={0x7e,0x03,0x05,0x06,0xef};//音量加(发送一次增加一个级别,共0-30)
byte vlume20[]={0x7e,0x04,0x31,0x14,0x21,0xef};//设置音量为20
byte vlume30[]={0x7e,0x04,0x31,0x1e,0x2b,0xef};//设置音量为30
SoftwareSerial Serial2(2, 3);//RX,TX设置软串口
void setup() {
// put your setup code here, to run once:
Serial2.begin(9600);//波特率
//Serial2.write(vmines,5);
Serial2.write(vlume20,6);//设置音量为20
//Serial2.write(pl,5);
delay(100);//必须要有延迟,以便于指令生效
Serial2.write(next,5);//播放下一曲
}
void loop() {
}
五、案例:用摇杆控制的MP3播放器
下面展示一些 内联代码片
。
/*
arduino 摇杆控制 MP3模块,播放音乐
原创:详细案例文档 csdn
厂商模块说明:http://www.balway.com/showproduct.asp?pid=80&type=3
广州 南沙 2023-11-21 农历十月初九
*/
#include <SoftwareSerial.h> // 引入软串口SoftwareSerial库
byte next[] = { 0x7e, 0x03, 0x03, 0x00, 0xef }; //下一曲
byte last[] = { 0x7e, 0x03, 0x04, 0x07, 0xef }; //上一曲
byte play[] = { 0x7e, 0x03, 0x01, 0x02, 0xef }; //播放
byte pause[] = { 0x7e, 0x03, 0x02, 0x01, 0xef }; //暂停
byte vmines[] = { 0x7e, 0x03, 0x06, 0x05, 0xef }; //音量减(发送一次减少一个级别,共0-30)
byte vplus[] = { 0x7e, 0x03, 0x05, 0x06, 0xef }; //音量加(发送一次增加一个级别,共0-30)
byte vlume20[] = { 0x7e, 0x04, 0x31, 0x14, 0x21, 0xef }; //设置音量为20的串口指令
byte vlume30[] = { 0x7e, 0x04, 0x31, 0x1e, 0x2b, 0xef }; //设置音量为30的串口指令
SoftwareSerial Serial2(2, 3); //RX,TX设置软串口,用于串口指令控制MP3模块
int xValue = 500; //摇杆X初始值
int yValue = 500;//摇杆Y初始值
bool State = false;//当前播放状态记录
void setup() {
// put your setup code here, to run once:
Serial2.begin(9600); //用于发送给MP3模块的波特率初始化
Serial.begin(9600); //用于电脑串口监视器的波特率初始化
Serial2.write(vlume20, 6); //设置音量为20
delay(100); //必须要有延迟,以便于指令生效
Serial2.write(next, 5); //播放下一曲
pinMode(4, INPUT_PULLUP); //摇杆的按键在4号接口,初始化针脚上拉,不上拉非常不稳定。
}
void loop() {
xValue = analogRead(A0);//获取摇杆的x值,连接在主板A0接口
yValue = analogRead(A1);//获取摇杆的y值,连接在主板A1接口
Serial.println(digitalRead(4));//发送按键
if (digitalRead(4) == LOW) { // 如果按键被按下
delay(500);
//Serial2.write(pause, 5);
//这一块代码是实现按一下按键播放,再按一下按键暂停
if (State == false) { // 如果之前是false状态
Serial2.write(play, 5); // 播放
//delay(50);
State = true; // 记录状态为true
} else {
Serial2.write(pause, 5); // 暂停
//delay(50);
State = false; // 记录状态为false
}
}
//摇杆向右,播放上一曲
if (xValue < 100) {
delay(500);
Serial2.write(last, 5);
}
//摇杆向左,播放下一曲
if (xValue > 900) {
delay(500);
Serial2.write(next, 5);
}
//摇杆向上,增加1级音量
if (yValue < 100) {
delay(500);
Serial2.write(vplus, 5);
}
//摇杆向下,减小1级音量
if (yValue > 900) {
delay(500);
Serial2.write(vmines, 5);
}
}
六、厂商文档
参考:http://www.balway.com/showproduct.asp?pid=80&type=3
以下是截图: