红外遥控NEC协议

红外遥控技术在我们的日常生活中应用非常广泛,比如我们的遥控器。通过遥控器发射红外光,电视,空调装有红外接收管,负责接受红外光。那么本节将重点介绍其中的原理。

一、工作原理

上图的HS0038便是装在空调,电视上的红外接收端,用于接收红外信号。

下面我们重点介绍遥控器的工作原理

 原始信号的频率比较低,一般在通信领域不适合用来传输信号。为了让信号传输出去,那么我门就需要一个高频信号去装载低频信号。我们的遥控器通常采用38k的载波信号作为这个高频信号。于是,38k载波信号与原始信号装载就成了调制信号当原始信号为0时,装载38k,为1时就保持原有信号。

接着看接收端,为了实现遥控,接收端也得保持着与原始信号相同的信号(注意:此处是原始信号,不是调制信号,原始信号只是无法传输,但执行命令时,依然依靠原始信号)当HS0038接收到调制信号时,如果为38k,就把输出引脚清0,反之,则置1。(这个过程称为解调如下图

二、NEC协议

NEC协议:红外遥控器在发送数据时,传送那些数,这些数,哪个先发,哪个后发,都是根据这个协议

上图便是NEC协议的规定。

引导码:可以理解为告诉接收端,“你要准备接收信号了”。其中引导码分为9ms的38k载波信号和4.5ms的空闲信号。并且在有载波时输出低电平0,无载波时(即为空闲状态)输出高电平1。

接下来的4个码,每个码占一个字节,但NEC协议中有着一套自己的编码规则,即逻辑“0”与逻辑“1”如下图。

560的载波与560的空闲被定义为逻辑0,560的载波与1.68的空闲被定义为逻辑1。而HS0038接收到的信号便是有载波置0,无载波置1(如下图)。

接下来我们看一下完整的信号。

重点来看一下红色框里的键码。前2个方波信号为逻辑0,中间发生了变化产生2个逻辑1,后面依旧是逻辑0。而上图为发送信号,HS0038接收的信号要与其镜像(接收到的键码为00001100)

对于键码和键码反码,我们一直都用16进制表示。

键码:00001100——0xCH

只要我们掌握了NEC协议,那么就可以把遥控器上的每个键码,以便控制它们。如下图

三、总结

重点:NEC协议

难度:NEC协议

NEC协议与我们之前学习的串口有异曲同工之妙。所以学会了UART,再来学它就较为轻松。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571810.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis中的事件(三)

时间事件 事件的调度与执行 因为服务器中同时存在文件事件和时间事件两种事件类型,所以服务器必须对这两种事件进行调度,决定何时应该处理文件事件,何时有应该处理时间事件,以及花多少事件来处理它们等等。事件的调度和执行由ae…

YOLOv9改进策略:卷积魔改 | PConv减少冗余计算和内存访问可以更有效地提取空间特征 |CVPR2023 FasterNet

💡💡💡本文改进内容:CVPR2023 提出的一种新的partial convolution(PConv),通过同时减少冗余计算和内存访问可以更有效地提取空间特征,最后引入到YOLOv9。在detect前加入PConv&#x…

php反序列化——pop链构造[SWPUCTF 2021 新生赛]pop [NISACTF 2022]babyserialize

构造pop链 [SWPUCTF 2021 新生赛]pop 用反推法 从后往前推 这题的最后一步很明显 只要给$admin和$passwd赋值 就会echo flag 所以反推法第一步就是要调用Getflag()函数 找到$this->w00m->{$this->w22m}(); $this->mw00->{$this->w22m}();的意思是调用当…

Linux课程____shell脚本应用

:一、认识shell 常用解释器 Bash , ksh , csh 登陆后默认使用shell,一般为/bin/bash,不同的指令,运行的环境也不同 二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件,简单内容 #!/bin/bash …

C++ :STL中vector扩容机制

vector是STL提供的动态数组,它会在内部空间不够用时动态的调整自身的大小,调整过程中会有大量的数据拷贝,为了减少数据拷贝的次数vector会在调整空间的时候尽量多申请一些空间,这些预留出的空间可以很大程度上减少拷贝的发生。 在…

WPF —— ContextMenu右键菜单 Canvas控件详解

ContextMenu右键菜单的实例 ​​​​​​​WPF中的右键菜单主要是通过ContextMenu来实现&#xff0c; 在控件中使用ContextMenu 直接在控件的ContextMenu属性中关联即可。 <Label Content"右键弹出内容菜单" FontSize"20" Width"200" Heig…

Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 解释&#xff1a;请求的数据既不在Redis中也不在数据库中&#xff0c;这时我们创建一个黑名单来存储该数据&#xff0c;下次再有类似的请求进来…

Go第三方框架--gin框架(二)

4. gin框架源码–Engine引擎和压缩前缀树的建立 讲了这么多 到标题4才开始介绍源码&#xff0c;主要原因还是想先在头脑中构建起 一个大体的框架 然后再填肉 这样不容易得脑血栓。标题四主要涉及标题2.3的步骤一 也就是 标题2.3中的 粗线框中的内容 4.1 Engine 引擎的建立 见…

MySQL语句(补充)

目录 一、子查询 1.1.select 语句 1.1.1.相同表查询 1.1.2.多表查询 1.1.3.NOT 1.1.4. insert 1.1.5. update 1.1.6.delete 1.1.7.exists 1.1.8.as别名 二、MySql视图 2.1.视图与表的区别和联系 2.2.建立视图 2.3.修改视图表数据 三、NULL值 四、连接查询 4…

Android Studio详细安装教程及入门测试

Android Studio 是 Android 开发人员必不可少的工具。 它可以帮助开发者快速、高效地开发高质量的 Android 应用。 这里写目录标题 一、Android Studio1.1 Android Studio主要功能1.2 Android应用 二、Android Studio下载三、Android Studio安装四、SDK工具包下载五、新建测试…

以实践助力《银行保险机构数据安全管理办法》规范落地

日前&#xff0c;金融监管总局网站显示&#xff0c;为规范银行业保险业数据处理活动&#xff0c;保障数据安全&#xff0c;促进数据合理开发利用&#xff0c;金融监管总局起草了《银行保险机构数据安全管理办法&#xff08;征求意见稿&#xff09;》&#xff08;下称《办法》&a…

【C语言】strcmp 的使⽤和模拟实现

前言 这篇文章将要带我们去实现模拟一个strcmp函数 首先我们要知道strcmp函数的定义 strcmp()定义和用法 我们先看一下strcmp在cplusplus网站中的定义 链接: link int strcmp ( const char * str1, const char * str2 );比较两个字符串将 C 字符串 str1 与 C 字符串 str2 …