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

上传人:F****n 文档编号:98023511 上传时间:2019-09-07 格式:DOC 页数:5 大小:22.50KB
返回 下载 相关 举报
arduino遥控接收(mini遥控器全部按键响应)_第1页
第1页 / 共5页
arduino遥控接收(mini遥控器全部按键响应)_第2页
第2页 / 共5页
arduino遥控接收(mini遥控器全部按键响应)_第3页
第3页 / 共5页
arduino遥控接收(mini遥控器全部按键响应)_第4页
第4页 / 共5页
arduino遥控接收(mini遥控器全部按键响应)_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《arduino遥控接收(mini遥控器全部按键响应)》由会员分享,可在线阅读,更多相关《arduino遥控接收(mini遥控器全部按键响应)(5页珍藏版)》请在金锄头文库上搜索。

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;/给定时器时钟源

2、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 /要执行的函数 b

3、reak; 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 0

4、xf906:/ 下一曲 /要执行的函数 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、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_val

6、ue()!= 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

7、_Width=30&Pulse_Width=5&Pulse_Width=12)/560us return; /-void setup() /- pinMode(8,INPUT);/设置红外接收引脚为输入 /其他初始化void loop() timer1_init();/定时器初始化 while(1) remote_decode(); /译码 remote_deal(); /执行译码结果 在能力与知识结构方面,要求学生应具有扎实的专业和日语语言基础,熟练掌握日语听、说、读、写、译的基本技能;了解日本社会及日本文化等方面的基本知识,熟悉日本国情,具有一定的日本人文知识及运用这些知识与日本人进行交流的能力。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号