1、概述
通过红外遥控器来控制音乐播放
对于模块不了解的,可以先看一下我们的模块教程[传送门],了解掌握模块使用方法后,再尝试本小实验。因为综合实验一般涉及多个模块,我们仅对全部使用我司产品的客户做技术支持,若只是部分使用我司产品的,我们只对我司产品部分是否有故障进行排查。
2、所需材料
1、UNO主控板:官方板 或者 国产板
2、辅助配件:面包板、杜邦线
3、传感器和模块:MP3音乐播放器模块、红外接收模块、红外遥控器
3、接线
按照图上接线后,配合红外遥控器使用。
4、实验代码
/*ultirobot.com
zhongbest.taobao.com
*/
#include <IRremote.h>
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
//定义对应16进制数值的常量名
#define VOLUP 0x00FFA857 //VOL+
#define PREV 0x00FF22DD //后退/上一曲
#define PAUSE 0x00FFC23D //暂停/播放
#define NEXT 0x00FF02FD //前进/下一曲
#define VOLDOWN 0x00FFE01F //VOL-
#define ZERO 0x00FF6897 //0
#define EQ 0x00FF906F //EQ
#define REPT 0x00FF629D //ST/REPT
#define ONE 0x00FF30CF //1
#define TWO 0x00FF18E7 //2
#define THREE 0x00FF7A85 //3
#define FOUR 0x00FF10EF //4
#define FIVE 0x00FF38C7 //5
#define SIX 0x00FF5AA5 //6
#define SEVEN 0x00FF42BD //7
#define EIGHT 0x00FF4AB5 //8
#define NINE 0x00FF52AD //9
int recvPin = 2; //红外接收器到ardunio的端口
boolean a = true; //播放逻辑设定
int i = 20; //初始化音量
int z = 0; //初始化音效
IRrecv recv(recvPin); //初始化接收
decode_results res; //储存接收到的数据
void setup() {
Serial.begin(9600); //初始化串口
recv.enableIRIn(); //允许接收数据
mp3_set_serial (Serial); //设置串行DFPlayer-mini mp3模块
mp3_set_volume (i); //初始化音量
mp3_set_EQ (z); //初始化音效
}
void loop() {
if(recv.decode(&res)) { //判断是否接受到数据
switch(res.value) { //判断按下的按钮
case PREV: //上一首
if (a == true) {
a = !a;
}
mp3_prev ();
break;
case NEXT: //下一首
if (a == true) {
a = !a;
}
mp3_next ();
break;
case PAUSE: //暂停与播放(暂停具有断点播放)
if (a == true) {
a = !a;
mp3_play ();
}
else {
a = !a;
mp3_pause ();
}
break;
case VOLUP: //音量加
if (i < 30) {
i = i+1;
mp3_set_volume (i);
}
break;
case VOLDOWN: //音量减
if (i > 0) {
i = i-1;
mp3_set_volume (i);
}
break;
case EQ: //音效模式切换
if (z < 5) {
z = z+1;
}
else {
z = 0;
}
mp3_set_EQ (z);
break;
case REPT : //随机模式播放
if (a == true) {
a = !a;
}
mp3_random_play ();
break;
case ONE:
if (a == true) {
a = !a;
}
mp3_play (1);
break;
case TWO:
if (a == true) {
a = !a;
}
mp3_play (2);
break;
case THREE:
if (a == true) {
a = !a;
}
mp3_play (3);
break;
case FOUR:
if (a == true) {
a = !a;
}
mp3_play (4);
break;
case FIVE:
if (a == true) {
a = !a;
}
mp3_play (5);
break;
case SIX:
if (a == true) {
a = !a;
}
mp3_play (6);
break;
case SEVEN:
if (a == true) {
a = !a;
}
mp3_play (7);
break;
case EIGHT:
if (a == true) {
a = !a;
}
mp3_play (8);
break;
case NINE:
if (a == true) {
a = !a;
}
mp3_play (9);
break;
default:
;
}
recv.resume(); //接收下一个数据
}
}
zhongbest.taobao.com
*/
#include <IRremote.h>
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
//定义对应16进制数值的常量名
#define VOLUP 0x00FFA857 //VOL+
#define PREV 0x00FF22DD //后退/上一曲
#define PAUSE 0x00FFC23D //暂停/播放
#define NEXT 0x00FF02FD //前进/下一曲
#define VOLDOWN 0x00FFE01F //VOL-
#define ZERO 0x00FF6897 //0
#define EQ 0x00FF906F //EQ
#define REPT 0x00FF629D //ST/REPT
#define ONE 0x00FF30CF //1
#define TWO 0x00FF18E7 //2
#define THREE 0x00FF7A85 //3
#define FOUR 0x00FF10EF //4
#define FIVE 0x00FF38C7 //5
#define SIX 0x00FF5AA5 //6
#define SEVEN 0x00FF42BD //7
#define EIGHT 0x00FF4AB5 //8
#define NINE 0x00FF52AD //9
int recvPin = 2; //红外接收器到ardunio的端口
boolean a = true; //播放逻辑设定
int i = 20; //初始化音量
int z = 0; //初始化音效
IRrecv recv(recvPin); //初始化接收
decode_results res; //储存接收到的数据
void setup() {
Serial.begin(9600); //初始化串口
recv.enableIRIn(); //允许接收数据
mp3_set_serial (Serial); //设置串行DFPlayer-mini mp3模块
mp3_set_volume (i); //初始化音量
mp3_set_EQ (z); //初始化音效
}
void loop() {
if(recv.decode(&res)) { //判断是否接受到数据
switch(res.value) { //判断按下的按钮
case PREV: //上一首
if (a == true) {
a = !a;
}
mp3_prev ();
break;
case NEXT: //下一首
if (a == true) {
a = !a;
}
mp3_next ();
break;
case PAUSE: //暂停与播放(暂停具有断点播放)
if (a == true) {
a = !a;
mp3_play ();
}
else {
a = !a;
mp3_pause ();
}
break;
case VOLUP: //音量加
if (i < 30) {
i = i+1;
mp3_set_volume (i);
}
break;
case VOLDOWN: //音量减
if (i > 0) {
i = i-1;
mp3_set_volume (i);
}
break;
case EQ: //音效模式切换
if (z < 5) {
z = z+1;
}
else {
z = 0;
}
mp3_set_EQ (z);
break;
case REPT : //随机模式播放
if (a == true) {
a = !a;
}
mp3_random_play ();
break;
case ONE:
if (a == true) {
a = !a;
}
mp3_play (1);
break;
case TWO:
if (a == true) {
a = !a;
}
mp3_play (2);
break;
case THREE:
if (a == true) {
a = !a;
}
mp3_play (3);
break;
case FOUR:
if (a == true) {
a = !a;
}
mp3_play (4);
break;
case FIVE:
if (a == true) {
a = !a;
}
mp3_play (5);
break;
case SIX:
if (a == true) {
a = !a;
}
mp3_play (6);
break;
case SEVEN:
if (a == true) {
a = !a;
}
mp3_play (7);
break;
case EIGHT:
if (a == true) {
a = !a;
}
mp3_play (8);
break;
case NINE:
if (a == true) {
a = !a;
}
mp3_play (9);
break;
default:
;
}
recv.resume(); //接收下一个数据
}
}
按遥控器上的按键,实现红外遥控器控制MP3模块。
请先
!