arduino遥控接收(mini遥控器全部按键响应).doc_第1页
arduino遥控接收(mini遥控器全部按键响应).doc_第2页
arduino遥控接收(mini遥控器全部按键响应).doc_第3页
arduino遥控接收(mini遥控器全部按键响应).doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/初学时注意: / 无线遥控模块发射的高电平,接受时接收到的是低电平响应。为提高响应遥控灵敏度,/本文放宽了对时间的约束。/使用时: /请先编辑功能模块函数(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=5&Pulse_Width=5&Pulse_Width=22&Pulse_Width=30) /接着高电平1.7ms return 1; return -1;/-void pulse_deal()/接收地址码和命令码脉冲函数 int i; /执行8个0 for(i=0; i8; i+) if(logic_value() != 0) /不是0 return; /执行6个1 for(i=0; i6; i+) if(logic_value()!= 1) /不是1 return; /执行1个0 if(logic_value()!= 0) /不是0 return; /执行1个1 if(logic_value()!= 1) /不是1 return; /解析遥控器编码中的command指令 ir_code=0x00;/清零 for(i=0; i16;i+ ) if(logic_value() = 1) ir_code |=(1=1800) /当高电平持续时间超过100ms,表明此时没有按键按下 ir_code = 0xff00; return; /如果高电平持续时间不超过100ms TCNT1=0X00; while(!(digitalRead(8); /低等待 Pulse_Width=TCNT1; TCNT1=0; if(Pulse_Width=130&Pulse_Width=60&Pulse_Width=30&Pulse_Width=5&Pulse_Width=12)/560us return; /-void setup() /- pinMode(8,INPUT);/设置红外接收

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论