欢迎光临
我们一直在努力

基于Arduino的按键控制音乐播放器实验(MP3音乐播放器模块)

1、概述

MP3音乐播放器之前我们已经实现了通过红外遥控来实现对MP3播放器的控制,今天就做一个按键控制的MP3播放器。通过按键控制MP3的播放、暂停、上一曲、下一曲等功能。

对于模块不了解的,可以先看一下我们的模块教程[传送门],了解掌握模块使用方法后,再尝试本小实验。因为综合实验一般涉及多个模块,我们仅对全部使用我司产品的客户做技术支持,若只是部分使用我司产品的,我们只对我司产品部分是否有故障进行排查。

2、所需材料

1、UNO主控板:官方板 或者 国产板
2、辅助配件:面包板杜邦线
3、传感器和模块:MP3播放模块(可配喇叭和电阻、TF卡)、按键开关

3、指令表

4、接线方式

MP3模块 Arduino
VCC 5V
RX–1K电阻 D11
TX–1K电阻 D10
GND GND

MP3模块 小喇叭
SPL_1 红线
SPL_2 黑线

单个喇叭属于单声道,喇叭导线没有正负极之分。


按键开关 Arduino
按键1 D2–GND
按键2 D3–GND
按键3 D4–GND

5、例子程序



//arduino源码地址:http://educ8s.tv/arduino-mp3-player/ //整理:ZBST ROBOT //购买地址zhongbest.taobao.com #include "SoftwareSerial.h"//引用软串口库文件 SoftwareSerial mySerial(10, 11);//定义引脚,D10为RX,D11为TX # define Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Acknowledge 0x00 //定义指令的相关参数 # define ACTIVATED LOW int buttonNext = 2;//定义按键下一曲为D2 int buttonPause = 3;//定义按键播放/暂停为D3 int buttonPrevious = 4;//定义按键上一曲为D4 boolean isPlaying = false;//布尔型isPlaying为假。 void setup () { pinMode(buttonPause, INPUT); digitalWrite(buttonPause,HIGH); pinMode(buttonNext, INPUT); digitalWrite(buttonNext,HIGH); pinMode(buttonPrevious, INPUT); digitalWrite(buttonPrevious,HIGH);//定义引脚通信,默认拉高。 mySerial.begin (9600);//软串口初始化,波特率9600. delay(1000);//延时1秒 playFirst();//开始播放第一首歌曲 isPlaying = true;//isPlaying为真 } void loop () { if (digitalRead(buttonPause) == ACTIVATED)//判断暂停键如果为低电平 { if(isPlaying)//判断isPlaying状态 { pause();//暂停播放 isPlaying = false;//isPlaying为假 }else { isPlaying = true;//反之isPlaying为真 play();//开始播放 } } if (digitalRead(buttonNext) == ACTIVATED)//判断下一曲键为低电平 { if(isPlaying)//判断isPlaying状态 { playNext();//播放下一曲,此处不管isPlaying是什么状态,均播放下一曲。 } } if (digitalRead(buttonPrevious) == ACTIVATED)//判断上一曲键为低电平 { if(isPlaying)//判断isPlaying状态 { playPrevious();//播放上一曲,此处不管isPlaying是什么状态,均播放上一曲。 } } } void playFirst() { execute_CMD(0x3F, 0, 0);//发送初始化参数指令 delay(500);//延时500ms setVolume(20);//设置音量为20 delay(500);//延时500ms execute_CMD(0x11,0,1);//全部循环播放指令触发。 delay(500);//延时500ms } void pause() { execute_CMD(0x0E,0,0);//暂停指令触发。 delay(500);//延时500ms } void play() { execute_CMD(0x0D,0,1);//播放指令触发。 delay(500); } void playNext() { execute_CMD(0x01,0,1);//下一曲指令触发 delay(500);//延时500ms } void playPrevious() { execute_CMD(0x02,0,1);//上一曲指令触发 delay(500);//延时500ms } void setVolume(int volume) { execute_CMD(0x06, 127, volume); // 音量指令,这里设置了127响一点~~ delay(2000);//延时2秒 } void execute_CMD(byte CMD, byte Par1, byte Par2) // 执行的命令和参数 { // Calculate the checksum (2 bytes) word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2); // Build the command line byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge, Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte}; //Send the command line to the module for (byte k=0; k<10; k++) { mySerial.write( Command_line[k]);//软串口输入命令行 } }

6、实验效果

7、相关下载

此程序使用官方softwareSerial库文件,为官方编译器(IDE)自带库文件。无需添加或下载。

未经允许不得转载:Arduino-Maker » 基于Arduino的按键控制音乐播放器实验(MP3音乐播放器模块)

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 1

评论前必须登录!

 

  1. #1

    666

    chituzongzi6个月前 (03-12)

线上商城

中贝斯特创客空间蘑菇云创客教育