音乐播放

来自Labplus盛思维基百科
跳转至: 导航搜索
黑色传感器最终版12.20-24.png

概述

MP3播放模块,可通过软串口发送指令操控播放TF卡中保存的歌曲

技术参数

  • 工作电压: VCC 3.3V -5V
  • 串口通信
  • 采用TF卡存储歌曲或语音信息
  • 输出功率3W
  • 板载双声道功放,可驱动0.5W喇叭
  • 模块尺寸:24x46x7.5mm

引脚定义

VCC 电源
RXI 串口接收
TXD 串口发送
GND

使用教程

Warning yellow.png
注意
  1. 串口设置波特率9600bps,bluebit串口tx引脚连接音乐模块的RXI引脚
  2. 由于音乐模块带喇叭功放,功率较大,bluebit主板需要采用锂电池供电方式

MP3库API

MP3驱动使用SoftwareSerial,可自定义串口引脚
MP3_SoftSerial驱动下载

        Kt540bClass(int rxPin, int txPin);     // 定义软串口引脚
	void begin();
	void play(void);     //播放(比如从暂停中恢复)
	void play(uint8_t songNum);   //播放指定序号歌曲 
	void playDir(uint8_t dir, uint8_t songNum); //播放指定文件夹指定歌曲
	void playNext(void);    //播下一首
	void playPrev(void);    //播上一首
	void setVolume(uint8_t volume);  //设置音量
	void volumeInc();       //音量+
	void volumeDec();       //音量-
	void setEQ(uint8_t eq);                  //设置EQ值
	void loop(uint8_t songNo);               //指定根文件夹下相关序号歌曲循环播放
	void loop(uint8_t dir, uint8_t songNo);  //指定目录相关序号歌曲循环播放
	void loopDir(uint8_t dir);               //指定目录循环播放
	void singleLoop(boolean onOff);         //单曲循环开关
	void radomPlay(void);  //随机播放(整个设备上的歌)
	void pause(void);   //暂停
	void stop(void);    //停止
	void setDac(bool onOff);  //DAC开关
	void enterSleep(void);    //进入睡眠__bool_true_false_are_defined
	void exitSleep(void);    //退出睡眠
	void resetDevice(void);  //设备复位
	void setPlayMedia(MEDIA playMedia);  //选择播入媒体
	uint8_t getPlayState(void); //获取播放状态

Arduino示例

Uno mp3.jpg

#include "kt540b.h"

Kt540bClass mp3Play(5,6);    //实例化对象,定义pin5为RX,pin6为TX


void setup()
{
	mp3Play.begin();        //mp3初始化开始
	mp3Play.setVolume(50);   //音量设置
    mp3Play.play(1);         //播放第1首歌曲
	delay(10000);            //等待,让其播放10秒
}

void loop()
{
	mp3Play.pause();         //歌曲暂停
	mp3Play.playNext();       //播放下首歌曲
	delay(10000);		     //等待,让其播放10秒
	mp3Play.stop();         //停止播放歌曲

}

MicroPython示例

from microbit import *

def MP3CmdWrite(cmd):
    sum = 0
    for i in range(0,6):
        sum += cmd[i]
	sum1 = ((0xFFFF - sum) + 1)
    sum_l = sum1 & 0xff
    sum_h = sum1 >> 8
	
    uart.write(bytearray([0x7E]))
    uart.write(cmd)
    uart.write(bytearray([sum_h]))
    uart.write(bytearray([sum_l]))
    uart.write(bytearray([0xEF]))
    sleep(20)

def MP3Play(num):
    var = bytearray([0xFF,0x06,0x03,0x01,0x00,num])
    MP3CmdWrite(var)

def MP3Stop():
    var = bytearray([0xFF ,0x06 ,0x0E ,0x01 ,0x00 ,0x00])
    MP3CmdWrite(var)

def MP3Start():
    var = bytearray([0xFF ,0x06 ,0x0D ,0x01 ,0x00 ,0x00])
    MP3CmdWrite(var)

def MP3StopDecode():
    var = bytearray([0xff,0x06,0x16,0x00,0x00,0x00])
    MP3CmdWrite(var)    

def MP3VolumeInc():
    var = bytearray([0xFF,0x06,0x04,0x00,0x00,0x00])
    MP3CmdWrite(var) 

def MP3VolumeDec():
    var = bytearray([0xFF,0x06,0x05,0x00,0x00,0x01])
    MP3CmdWrite(var) 
    
def MP3Volume(vol):
    var = bytearray([0xFF,0x06,0x06,0x00,0x00,vol])
    MP3CmdWrite(var) 
    
def MP3Reset():
    var = bytearray([0xFF,0x06,0x0C,0x00,0x00,0x00])
    MP3CmdWrite(var) 
   
uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin1, rx=pin0)      #设置串口引脚和波特率
MP3Volume(28)           #音量, 0-30         
sleep(1000)
MP3Play(1)              #播放第1首歌曲

图形化示例

音乐播放 example.png


版本历史记录

Version Date Note [+]新增[-]删除[^]修复
V2.0