文档详情

arduino遥控接收(mini遥控器全部按键响应).doc

发布:2019-09-22约3.27千字共5页下载文档
文本预览下载声明
//初学时注意: // 无线遥控模块发射的高电平,接受时接收到的是低电平响应。为提高响应遥控灵敏度,//本文放宽了对时间的约束。 //使用时: //请先编辑功能模块函数(workfun),后添加到(switch)按键下。 //------------------------workfun------------------- Void mode1()//模块一 { } Void mode2()//模块二 { } //................ //可编辑需要遥控下执行的模块 //-------------------------------------------------------- //--------------默认接收引脚为数字8----------------------- int Pulse_Width=0;//存储脉宽 int ir_code=0x00;//命令值 //---------------timer------------------ void timer1_init(void)//定时器初始化函数 { TCCR1A = 0X00; TCCR1B = 0X05;//给定时器时钟源 TCCR1C = 0X00; TCNT1 = 0X00; TIMSK1 = 0X00; //禁止定时器溢出中断 } //--------------deal------------------------- void remote_deal(void)//执行译码结果函数 { switch(ir_code) { case 0xff00://停止按键 //要执行的函数例如 Mode1(); break; case 0xf30c:// 0 //要执行的函数 break; case 0xef10:// 1 //要执行的函数 break; case 0xee11:// 2 //要执行的函数 break; case 0xed12:// 3 //要执行的函数 break; case 0xeb14:// 4 //要执行的函数 break; case 0xea15:// 5 //要执行的函数 break; case 0xe916:// 6 //要执行的函数 break; case 0xe718:// 7 //要执行的函数 break; case 0xe619:// 8 //要执行的函数 break; case 0xe51a:// 9 //要执行的函数 break; case 0xfe01:// vol+ //要执行的函数 break; case 0xfd02:// stop //要执行的函数 break; case 0xfb04:// 上一曲 //要执行的函数 break; case 0xfa05:// 暂停 //要执行的函数 break; case 0xf906:// 下一曲 //要执行的函数 break; case 0xf708:// 下三角 //要执行的函数 break; case 0xf609:// vol- //要执行的函数 break; case 0xf50a:// 上三角 //要执行的函数 break; case 0xf20d:// EQ //要执行的函数 break; case 0xf10e:// ST //要执行的函数 break; } } //-------------------------------------- char logic_value()//判断逻辑值“0”和“1”子函数 { while(!(digitalRead(8))); //低等待 Pulse_Width=TCNT1; TCNT1=0; if(Pulse_Width=5Pulse_Width=12)//低电平560us { while(digitalRead(8));//是高就等待 Pulse_Width=TCNT1; TCNT1=0; if(Pulse_Width=5Pulse_Width=12)//接着
显示全部
相似文档