打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
红外解码原来如此简单

硬件连接

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

NEC 协议解码

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

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

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

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

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

Arduino 红外解码

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

#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(); }}

STM32 红外解码

一、外部中断方式

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

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

二、定时器捕获方式

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

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

PS

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

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

关注作者

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Arduino教程 Lesson 15:红外接收
简单红外线解码
坐在床上看片?为自己的电脑做个遥控器吧
【红外通信】NEC协议_红外nec协议可以传大数据吗
遥控器拆解,这些电子知识赶紧学起来
IR NEC协议
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服