红外遥控38KHz载波,收发调制解码工作原理

关注+星标公众,不错过精彩内容

作者 | sugar

转自 | MultiMCU EDU

红外遥控我们并不陌生,身边随处可见,最常见的就是家电中的红外遥控,那你知道其中的收发原理吗?

今天就来分享一篇关于红外解码的文章。

1硬件连接

红外解码只需连3 根线(2 根电源 + 1 根数据)即可,如下图中TSOP382

2NEC 协议解码

本文所述的红外编解码采用 NEC 协议。通信的数据帧里使用 高电平时间 来区分 01

对于按一下然后按住不动的情况,NEC 协议下是这么处理的:

上图中写的“固定重复指令”也叫作“重复引导码”。对于红外通信协议,搜关键词“IR 引导码”会比较容易搜出结果。

NEC 的编码规则非常简单,如下图:

实际用逻辑分析仪抓取的波形如下,可以与上面的规则相互印证:

3Arduino 红外解码

把上图中的代码复制到下面:

#include <IRremote.h>
const int irReceiverPin = 2;
IRrecv irrecv(irReceiverPin);decode_results results;decode_results res_last;
void setup() {  Serial.begin(9600);  irrecv.enableIRIn();}
void loop() {  if(irrecv.decode(&results)){    if(res_last.value != results.value){      res_last.value = results.value;      Serial.print("irCode: ");      Serial.print(results.value, HEX);      Serial.print(", bits: ");      Serial.println(results.bits);     }    irrecv.resume();  }}


4STM32 红外解码

1.外部中断方式

参考《江涛带你玩STM32-CubeMX红外NEC解码实战(上)—外部中断方式》

外部中断方式的优点在于:用哪个引脚都可以。因为没有使用片上定时器外设,所以需要使用 CPU 计数方式来算时间。

2.定时器捕获方式

参考《江涛带你玩STM32-CubeMX红外NEC解码实战(下)—定时器TIM捕获方式》

定时器捕获方式需要使用与定时器相关的引脚,优点是 CPU 不参与计时,被解放出来的 CPU 可以做其他的事。

PS

除了 NEC 协议,红外通信还有很多其他的协议,这在 Mixly 图形化编程软件中看得很明显,如下图:

本文选择最简单的 NEC 协议谈红外解码意在简单地体现 IR 通信的应用,所以没有引入 38kHz 载波的概念,如果想深入了解可以参考《STM32之红外遥控信号自学习实现》。

5收、发解码差异

如上图,红外通信比较奇特的一点就是收发数据反相。这就导致虽然从发送方或接收方都能解出正确数据,但必解码时必须注意极性,极性要是反了就解不出或解不对数据。

通信实验:

如上图,作者觉得发与收之间的相位差加强了实验的真实感。作者用了两个单片机,分别是 ATMega 2560 和 ATMega 644,选 Arduino 系单片机的原因是想偷个懒不写软件。

下面放大一个数据,仔细看一看 38KHz 的载波长什么样:

上图的结论是占在“接收方”的角度写的“发送方”的行为。也就是说:

1.想让接收方接到 0,发送方就发 38KHz 的载波;

2.想让接收方接到 1,发送方就停止发送载波。

这里不免有人会问:停止发送载波实际上让接收方收到了 1,那该怎么区分“停止通信”和“通信中的 1”呢?

这答案就能看出 NEC 协议的作用了:数据帧有头有尾,在头尾之间的停止发送就是数据 1,不在头尾之间的就是没有通信

------------ END ------------

推荐阅读:

精选汇总 | 专栏 | 目录 | 搜索

精选汇总 | ARM、Cortex-M

精选汇总 | ST工具、下载编程工具

关注微信公众号『嵌入式专栏』,底部菜单查看更多内容,回复“加群”按规则加入技术交流群。

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

Multisim是一款强大的电子电路仿真软件,可以用于设计、模拟和测试各种类型的电子电路。在Multisim中,我们可以设计红外发射接收电路,并进行仿真和测试。 红外发射接收电路通常由红外发射二极管和红外接收二极管组成。发射电路用于产生红外光信号,接收电路用于接收并解码红外光信号。 在Multisim中,我们可以使用相应的电子元件符号和模型来建立红外发射接收电路。例如,我们可以选择适当的二极管模型作为红外发射二极管和红外接收二极管。然后,我们可以将这些元件放置在电路图中,并用连线进行连接。根据需要,我们还可以添加其他元件,如电阻、电容和集成电路等。 完成电路设计后,我们可以使用Multisim的仿真功能来模拟红外发射接收电路的行为。通过设置电源电压和输入信号等参数,我们可以模拟发射电路产生红外光信号,并模拟接收电路接收和解码红外光信号的过程。仿真结果可以显示电路中各个元件的电流、电压等重要参数,以及输出信号的波形和频谱等信息。 通过Multisim的仿真和测试,我们可以评估和优化红外发射接收电路的性能。例如,我们可以调整电路中的元件数值,以实现更好的发射和接收效果。此外,我们还可以通过观察整个仿真过程中各个信号的变化,来理解红外发射接收电路的工作原理和特性。 总之,Multisim是一个非常有用的工具,可以帮助我们设计和仿真红外发射接收电路。它提供了丰富的电子元件库和仿真功能,使我们能够更加高效和准确地进行电路设计和性能评估。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值