音乐盒三(红外遥控)
853387039@qq.com(讨论 | 贡献)2015年10月14日 (三) 03:58的版本 (Created page with "{{Language| 音乐盒一(红外控制)}} {| style="width: 800px;" |- | ==目的== 搭建一个音乐盒,可播放TF卡中的音乐文件,用遥控器进行选歌,及...")
Language | English |
---|
目的搭建一个音乐盒,可播放TF卡中的音乐文件,用遥控器进行选歌,及音量操作,同时也可以用Joystick进行控制。 原理检测是否有对应的红外遥控信号,根据不同红外信号控制播放音乐。同时检测摇杆X-Y方向的动作,通过读取模拟值来判断。同时判断停留时间长短来选择控制方式。 设备
加载代买
软件调试
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
#define AUDIO_PORT mySerial
int uiStep() //切歌
{
if (analogRead(A0) < 100) //Y-up
{
delay(50); //延迟50毫秒输出
if (analogRead(A0) < 100) //
return 1; //回到动作1
}
if (analogRead(A1) < 100) //
{
delay(50); //延迟50毫秒输出
if (analogRead(A1) < 100) //X-Right
return 2; //回到动作2
}
if (analogRead(A1) > 900) //X-Left
{
delay(50); //延迟50毫秒输出
if (analogRead(A1) > 900) //
return 3; //回到动作3
}
return 0;
}
//主界面,可自由定义
void draw()
{
setFont_L;
u8g.setPrintPos(4, 16);
u8g.print("Music_sta:");
u8g.print(music_status ? "play" : "pause");
u8g.setPrintPos(4, 16 * 2);
u8g.print("Music_vol:");
u8g.print(music_vol);
u8g.print("/30");
u8g.setPrintPos(4, 16 * 3);
u8g.print("Music_num:");
u8g.print(music_num);
u8g.print("/");
u8g.print(music_num_MAX);
u8g.setPrintPos(4, 16 * 4);
u8g.print("....Microduino....");
//u8g.print(rtc.formatTime(RTCC_TIME_HMS));
}
搭建硬件
如何操作你可以通过点按遥控器的相应按钮控制音乐盒的歌曲切换以及音量。 你也可以通过Joystick对音乐盒进行控制,方法如下。 也可以选择Duo-V进行堆叠,这样OLED就不需要连接在Hub上,整个应用的高度也会降低。 结果通过红外遥控器或Joystick摇杆来控制音乐的播放、暂停与切歌。你也可以通过乐高搭建一个漂亮的外观。 视频 |