文章目录

  • 1 简介
  • 2 红外光特性
  • 3 红外发射器
  • 4 红外接收器
  • 5 红外遥控原理
    • 5.1 红外编码
    • 5.2 红外解码
  • 6 常见的红外数据传输协议
  • 7 基于stm32的红外遥控解码
  • 8 最后

1 简介

Hi,大家好,这里是丹成学长,今天向大家详细介绍分享,单片机的红外控制原理

红外控制原理详解

大家可用于 课程设计 或 毕业设计

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

2 红外光特性


红外线光按照波长范围分为

  • 近红外
  • 中红外
  • 远红外
  • 极紅外

红外线遥控是利用近红外光传送遙控指令的,波长为0.76um ~ 1.5um

用近紅外作為遙控光源,是因為目前紅外发射器件与紅外接收器件的发光与受光峰值波長一般為0.8um~0.94um,这样可以获得较高的传输效率及较高的可靠性

3 红外发射器

4 红外接收器

5 红外遥控原理

一般的红外遥控系统是由红外遥控信号发射器、红外遥控信号接收器和微控制器及其外围电路等三部分构成的

  1. 遥控信号发射器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号
  2. 遥控接收头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲
  3. 遥控编码脉冲是一组组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部 CPU 完成对遥控指令解码,并执行相应的遥控功能

5.1 红外编码

目前应用中的各种红外遥控系统的原理都大同小异,区别只是在于各系统的信号编码格式不同。当按下遥控器上任一按键时,遥控器即产生一串脉冲编码。遥控编码脉冲对 40kHz 载波进行脉冲幅度调制(PAM)后便形成遥控信号,经驱动电路由红外发射管发射出去。红外遥控接收头接收到调制后的遥控信号,经前置放大、限幅放大、带通滤波、峰值检波和波形整形,从而解调出与输入遥控信号反相的遥控脉冲

一次按键动作的遥控编码信息为 32 位串行二进制码。对于二进制信号"0",一个脉冲占 1.2ms;对于二进制信号"1",一个脉冲占 2.4ms,而每一脉冲内低电平均为 0.6ms。从起始标志到 32 位编码脉冲发完大约需 80ms,此后遥控信号维持高电平。若按键未释放,则从起始标志起每隔 108ms 发出 3 个脉冲的重复标志

以NEC消费型遥控器为例

5.2 红外解码

红外遥控接收头解调出的编码是串行二进制码,包含着遥控器按键信息。但它还不便于CPU 读取识别,因此需要先对这些串行二进制码进行解码。接码电路主要包括遥控编码脉冲串并转换电路与 PLD 解码电路

解码步骤:

  1. 引导码: 引导码也叫起始码,由宽度为 9ms 的高电平和宽度为 4.5ms的低电平组成(不同的遥控系统在高低电平的宽度上有一定区别),用来标志遥控编码脉冲信号的开始
  2. 系统码: 系统码也叫识别码,它用来指示遥控系统的种类,以区别其它遥控系统,防止各遥控系统的误动作
  3. 系统反码
  4. 功能码: 功能码也叫指令码,它代表了相应的控制功能,接收机中的微控制器可根据功能码的数值去完成各种功能操作
  5. 功能反码等信号组成: 系统反码与功能反码分别是系统码与功能码的反码,反码的加入是为了能在接收端校对传输过程中是否产生差错

6 常见的红外数据传输协议

  • ITT 协议
  • NEC 协议
  • Nokia NRC 协议
  • Sharp 协议
  • Philips RC - 5 协议
  • Philips RC - 6协议
  • Philips RECS - 80协议
  • Sony SIRC 协议

在东亚地区比较常用的红外线传输协议是NEC协议(即6122协议)

7 基于stm32的红外遥控解码

//Ò£¿ØÆ÷½ÓÊÕ״̬
//[7]:ÊÕµ½ÁËÒýµ¼Âë±êÖ¾
//[6]:µÃµ½ÁËÒ»¸ö°´¼üµÄËùÓÐÐÅÏ¢
//[5]:±£Áô
//[4]:±ê¼ÇÉÏÉýÑØÊÇ·ñÒѾ­±»²¶»ñ
//[3:0]:Òç³ö¼ÆʱÆ÷
u8     RmtSta=0;
u16 Dval;        //ϽµÑØʱ¼ÆÊýÆ÷µÄÖµ
u32 RmtRec=0;    //ºìÍâ½ÓÊÕµ½µÄÊý¾Ý
u8  RmtCnt=0;    //°´¼ü°´ÏµĴÎÊý
//¶¨Ê±Æ÷2ÖжϷþÎñ³ÌÐò
void TIM4_IRQHandler(void)
{                  if(TIM_GetITStatus(TIM4,TIM_IT_Update)!=RESET){if(RmtSta&0x80)//ÉÏ´ÎÓÐÊý¾Ý±»½ÓÊÕµ½ÁË{    RmtSta&=~0X10;                        //È¡ÏûÉÏÉýÑØÒѾ­±»²¶»ñ±ê¼Çif((RmtSta&0X0F)==0X00)RmtSta|=1<<6;//±ê¼ÇÒѾ­Íê³ÉÒ»´Î°´¼üµÄ¼üÖµÐÅÏ¢²É¼¯if((RmtSta&0X0F)<14)RmtSta++;else{RmtSta&=~(1<<7);//Çå¿ÕÒýµ¼±êʶRmtSta&=0XF0;    //Çå¿Õ¼ÆÊýÆ÷    }                                    }                                }if(TIM_GetITStatus(TIM4,TIM_IT_CC4)!=RESET){      if(RDATA)//ÉÏÉýÑز¶»ñ{TIM_OC4PolarityConfig(TIM4,TIM_ICPolarity_Falling);        //CC1P=1 ÉèÖÃΪϽµÑز¶»ñ                TIM_SetCounter(TIM4,0);           //Çå¿Õ¶¨Ê±Æ÷ÖµRmtSta|=0X10;                    //±ê¼ÇÉÏÉýÑØÒѾ­±»²¶»ñ}else //ϽµÑز¶»ñ{            Dval=TIM_GetCapture4(TIM4);//¶ÁÈ¡CCR1Ò²¿ÉÒÔÇåCC1IF±ê־λTIM_OC4PolarityConfig(TIM4,TIM_ICPolarity_Rising); //CC4P=0    ÉèÖÃΪÉÏÉýÑز¶»ñif(RmtSta&0X10)                    //Íê³ÉÒ»´Î¸ßµçƽ²¶»ñ {if(RmtSta&0X80)//½ÓÊÕµ½ÁËÒýµ¼Âë{if(Dval>300&&Dval<800)            //560Ϊ±ê×¼Öµ,560us{RmtRec<<=1;    //×óÒÆһλ.RmtRec|=0;    //½ÓÊÕµ½0       }else if(Dval>1400&&Dval<1800)    //1680Ϊ±ê×¼Öµ,1680us{RmtRec<<=1;    //×óÒÆһλ.RmtRec|=1;    //½ÓÊÕµ½1}else if(Dval>2200&&Dval<2600)    //µÃµ½°´¼ü¼üÖµÔö¼ÓµÄÐÅÏ¢ 2500Ϊ±ê×¼Öµ2.5ms{RmtCnt++;         //°´¼ü´ÎÊýÔö¼Ó1´ÎRmtSta&=0XF0;    //Çå¿Õ¼ÆʱÆ÷        }}else if(Dval>4200&&Dval<4700)        //4500Ϊ±ê×¼Öµ4.5ms{RmtSta|=1<<7;    //±ê¼Ç³É¹¦½ÓÊÕµ½ÁËÒýµ¼ÂëRmtCnt=0;        //Çå³ý°´¼ü´ÎÊý¼ÆÊýÆ÷}                         }RmtSta&=~(1<<4);}                                                             }TIM_ClearFlag(TIM4,TIM_IT_Update|TIM_IT_CC4);
}//´¦ÀíºìÍâ¼üÅÌ
//·µ»ØÖµ:
//     0,ûÓÐÈκΰ´¼ü°´ÏÂ
//ÆäËû,°´Ïµİ´¼ü¼üÖµ.
u8 Remote_Scan(void)
{        u8 sta=0;       u8 t1,t2;  if(RmtSta&(1<<6))//µÃµ½Ò»¸ö°´¼üµÄËùÓÐÐÅÏ¢ÁË{ t1=RmtRec>>24;            //µÃµ½µØÖ·Âët2=(RmtRec>>16)&0xff;    //µÃµ½µØÖ··´Âë //if((t1==(u8)~t2)&&t1==REMOTE_ID)//¼ìÑéÒ£¿Øʶ±ðÂë(ID)¼°µØÖ· if(1){ t1=RmtRec>>8;t2=RmtRec;     if(t1==(u8)~t2)sta=t1;//¼üÖµÕýÈ·     }   if((sta==0)||((RmtSta&0X80)==0))//°´¼üÊý¾Ý´íÎó/Ò£¿ØÒѾ­Ã»Óа´ÏÂÁË{RmtSta&=~(1<<6);//Çå³ý½ÓÊÕµ½ÓÐЧ°´¼ü±êʶRmtCnt=0;        //Çå³ý°´¼ü´ÎÊý¼ÆÊýÆ÷}}  return sta;
}

控制自己家的空调

通过打印遥控器的某按键的16进制值

确认
E4 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 FF 0C B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 FF D8 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 B1 B1 B1 B1 B1 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B4 B4 B4 B4 34 34 34 B0 B1 B1 B1 B1 FF

单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052

8 最后

【毕业设计-教程】红外控制原理详解 - 单片机嵌入式 物联网 stm32 c51相关推荐

  1. 【毕业设计教程】单片机接入按键控制遥感 -嵌入式 物联网 stm32 c51

    文章目录 1 简介 2 主要器件 2.1 双轴摇杆模块 2.2 电路原理图 3 实现效果 4 测试代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍如何使用单片机接入按键遥感 单片 ...

  2. 【毕业设计】基于单片机的自动浇花灌溉系统设计 -嵌入式 物联网 stm32 c51

    文章目录 1 简介 2 主要器件 3 实现效果 4 设计原理 5 关键代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目 基于单片机的自动浇花灌溉系统设计 大 ...

  3. 【毕设项目】基于单片机的遥控小车设计与实现 - 嵌入式 物联网 stm32 c51

    文章目录 1 简介 2 主要器件与实现 2.1 电机驱动模块 2.2 蓝牙模块 2.3 蓝牙调试APP 3 实现效果 5 部分参考代码 6 最后 1 简介 Hi,大家好,这里是丹成学长,今天向大家介绍 ...

  4. 【毕设项目推荐】学长做过的那些有趣的毕设项目 - 毕设项目分享 (单片机 嵌入式 物联网 stm32)

    文章目录 0 前言

  5. h2 不能访问localhost_SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台

    SpringBoot2.x系列教程44--H2数据库详解及搭建Web控制台 作者:一一哥 我在上一章节中讲解了Spring Boot中整合Mybatis,接下来我给大家介绍一款内存数据库--H2. H ...

  6. mpc模型预测控制原理详解

    mpc模型预测控制原理详解 前言 mpc算法步骤 mpc算法推导 前言 本文是对mpc模型预测控制学习的记录,主要参照了DR_CAN老师的视频进行学习.视频专栏链接:DR_CAN老师mpc视频专栏.在 ...

  7. 如何用树莓派连接语音模块,红外模块来控制红外设备详解

    如何用树莓派连接语音模块,红外模块来控制红外设备详解 1.硬件设备 2.软件准备 3.解码 1.红外解码流程 1.连接红外设备(与TTL串口相连) 2.获取开关红外电器的码 4.我们使用树莓派如何和W ...

  8. python语言入门详解-python初级教程:入门详解

    python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...

  9. CentOS 7安装教程(图文详解)如下

    虚拟机安装 CentOS 7安装教程(图文详解)如下:

  10. mysql 实例复制_MYSQL教程MySQL 复制详解及简单实例

    <MysqL教程MysqL 复制详解及简单实例>要点: 本文介绍了MysqL教程MysqL 复制详解及简单实例,希望对您有用.如果有疑问,可以联系我们. MysqL 复制详解及简单实例 主 ...

最新文章

  1. 程序员到底为什么要掌握数据结构与算法?
  2. jekyll 博客对搜索引擎的SEO提升方法--head中的meta标签和Jekyll SEO Tag
  3. 下载Android源码流程(完整版)
  4. SpringBoot笔记:SpringBoot2.3集成Kafka组件配置
  5. 在.net 中依据页的角色验证方式产生相匹配的菜单
  6. django数据库迁移问题
  7. WPF 实现图片切成九宫格控件~
  8. jquery学习之1.10-小练习-选中下拉框内容并显示
  9. 如何按关键字搜索商品详情
  10. 小学听力测试英语软件,亲测:好用的小学英语软件有哪些?这6款通通安利给大家!...
  11. html文件类型怎么改,更改文件类型,教您文件类型如何更改
  12. css less使用
  13. android程序填空题,10道android填空题及答案
  14. 解决 uni-app编译报错 Error: No matching use for foo.js
  15. Nginx运行控制虚拟主机和访问控制
  16. sld样式文件demo
  17. coq形式化验证学习进阶
  18. 2022最令人惊艳的人工智能论文整理分享(附视频、代码)
  19. 一张图表看懂如何选购投影幕布
  20. 用echarts3和worldcloud制作炫酷的字符云图

热门文章

  1. 前端上半年工作总结、下半年工作计划
  2. xp计算机无法正常启动,修复XP系统无法正常启动进入不了计算机的解决办法
  3. KPPW系统—开源免费的威客建站系统
  4. 爬小猪短租发布的房子信息
  5. 【异常处理】devcpp编译时 “源文件未编译”
  6. 访问yy直播页面点击播放无响应分析
  7. [狗子的PM之路]PM的数据分析思路
  8. 拼写纠错原理以及模型(Spelling Correction model)
  9. 网站建设流程都有哪些?
  10. 开源APM性能检测系统技术选型与架构实战