欢迎来到我司精密电阻产品网站!
红外遥控38KHz载波,收发信机调制解码工作原理
精密电阻 2024-11-25

跟随+明星公众号,不要错过令人兴奋的内容来自|的糖转移MultiMCU EDU红外遥控器对我们并不陌生,我们到处都能看到它,最常见的是家用电器中的红外遥控器,您知道发送和接收的原理吗?今天,我将分享一篇有关红外解码的文章。

1硬件连接红外解码仅需连接3根线(2个电源+ 1个数据),如下图TSOP382所示。

2NEC协议解码本文介绍的红外编解码器采用NEC协议。

在通信数据帧中使用高电平时间来区分0和1。

对于按下然后按住的时间,NEC协议的处理如下:上图中写的也称为“重复启动代码”。

对于红外通信协议,搜索关键词“ IR指导码”。

将使查找结果更加容易。

NEC的编码规则非常简单,如下图所示:逻辑分析仪捕获的实际波形如下,可以通过上述规则相互确认:3Arduino红外解码复制上图中的代码如下所示:#include const int irReceiverPin = 2; IRrecv irrecv(irReceiverPin);解码结果结果;解码结果res_last;无效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(“,”位:“)”;序列号。

println(results.bits);} irrecv.resume(); }} 4STM32红外解码1.参见“江涛带你玩STM32-CubeMX红外NEC解码实战(外部)外部中断模式”。

外部中断模式的优点关键是:可以使用任何引脚。

由于不使用片上定时器外设,因此需要使用CPU计数方法来计算时间。

2.定时器捕获方法是指“江涛带你玩STM32-CubeMX红外NEC解码实战(第二部分)-定时器TIM捕获方法”。

定时器捕获方法需要使用定时器相关的引脚。

优点是CPU不参与计时。

解放的CPU可以做其他事情。

PS除NEC协议外,还有许多其他用于红外通信的协议,可以在Mixly图形编程软件中看到,如下图所示:本文选择了最简单的NEC协议来讨论红外解码,并且旨在简单地反映红外通信的应用。

因此,没有介绍38kHz载波的概念。

如果您想了解更多,可以参考“ STM32红外遥控信号自学习实现”。

5接收和发送解码之间的区别如上图所示,红外通信的特殊方面是发送和接收数据的反转。

这导致尽管可以从发送方或接收方解析正确的数据,但是在解码时必须注意极性。

如果极性接反,则无法解析数据或无法正确解析数据。

通讯实验:如上图所示,作者认为发送和接收之间的相位差增强了实验的真实性。

作者使用两个单片机ATMega 2560和ATMega644。

选择Arduino系列单片机的原因是懒惰而不是编写软件。

让我们放大一段数据并仔细查看38KHz载波的样子:上图中的结论是“发送者”的行为。

从“接收器”的角度写的。

换句话说:1.如果您希望接收方接收到0,则发送方将发送一个38KHz的载波; 2.如果您希望接收方接收1,则发送方将停止发送载波。

不可避免地有人会在这里问:停止载波实际上会使接收器收到1,因此如何区分“停止通信”和“停止通信”。

和“通讯1”?可以从NEC协议的作用中看出这个答案:一个数据帧有一个头和一个尾,在头和尾之间发送的停止是数据1,不在头和尾之间发送的停止是no。

沟通。

------------结束------------推荐读物:专题摘要|列|目录|搜索特色摘要| ARM,Cortex-M特色摘要| ST工具,下载编程工具,关注微信公众号“嵌入式列”,在底部菜单中查看更多内容,然后在“添加组”中回复“添加组”。

按照规定加入技术交流小组。

点击“阅读原件”查看更多分享,欢迎分享,喜欢,喜欢,观看。

免责声明: