红外遥控我们并不陌生,身边随处可见,最常见的就是家电中的红外遥控,那你知道其中的收发原理吗?
今天就来分享一篇关于红外解码的文章。
1 硬件连接 红外解码只需连3 根线(2 根电源 + 1 根数据)即可,如下图中tsop382。
2 nec 协议解码
本文所述的红外编解码采用 nec 协议。通信的数据帧里使用 高电平时间 来区分 0 和 1。
对于按一下然后按住不动的情况,nec 协议下是这么处理的:
上图中写的“固定重复指令”也叫作“重复引导码”。对于红外通信协议,搜关键词“ir 引导码”会比较容易搜出结果。
nec 的编码规则非常简单,如下图:
实际用逻辑分析仪抓取的波形如下,可以与上面的规则相互印证:
3 arduino 红外解码
把上图中的代码复制到下面:
#include 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(); }}
4 stm32 红外解码
1.外部中断方式
外部中断方式的优点在于:用哪个引脚都可以。因为没有使用片上定时器外设,所以需要使用 cpu 计数方式来算时间。
2.定时器捕获方式
定时器捕获方式需要使用与定时器相关的引脚,优点是 cpu 不参与计时,被解放出来的 cpu 可以做其他的事。
ps除了 nec 协议,红外通信还有很多其他的协议,这在 mixly 图形化编程软件中看得很明显,如下图:
本文选择最简单的 nec 协议谈红外解码意在简单地体现 ir 通信的应用,所以没有引入 38khz 载波的概念。
5 收、发解码差异
如上图,红外通信比较奇特的一点就是收发数据反相。这就导致虽然从发送方或接收方都能解出正确数据,但必解码时必须注意极性,极性要是反了就解不出或解不对数据。
通信实验:
如上图,作者觉得发与收之间的相位差加强了实验的真实感。作者用了两个单片机,分别是 atmega 2560 和 atmega 644,选 arduino 系单片机的原因是想偷个懒不写软件。
下面放大一个数据,仔细看一看 38khz 的载波长什么样:
上图的结论是占在“接收方”的角度写的“发送方”的行为。也就是说:
1.想让接收方接到 0,发送方就发 38khz 的载波;
2.想让接收方接到 1,发送方就停止发送载波。
这里不免有人会问:停止发送载波实际上让接收方收到了 1,那该怎么区分“停止通信”和“通信中的 1”呢?
这答案就能看出 nec 协议的作用了:数据帧有头有尾,在头尾之间的停止发送就是数据 1,不在头尾之间的就是没有通信。
小米6跑分完爆三星S8,好是好,能抢得到吗?
周立功来讲解哈希表的实现
“5G+工业互联网”十大创新应用发布!
美国NNCrystal推出远程激发产品
恒洁卫浴驱动智能马桶创新升级,以“智”提“质”为核心
结合STM32、Arduino理解红外遥控编解码通信原理
小米6白色版今日十点首卖,网友直呼:蓝瘦香菇买不到
扫描仪的主要性能指标
今年卖的最好的高端手机 居然有华为荣耀magic,小米note2
霍尔开关的工作原理 霍尔开关的优点 霍尔开关在气缸上的应用
艾普凌科推出一款零漂移运算放大器 可将偏移电压的离差降至50μV
Holtek推出单向发射SoC Flash MCU系列成员
开放核协议—IP核在SoC设计中的接口技术
TECNO 发布POVA 4系列:兼具卓越性能与未来感设计的科技单品
镭拓科普2000W手持式光纤激光焊接机能焊多厚的不锈钢板
昕诺飞宣布在中国成功部署的智能互连道路照明系统及LED路灯已突破两万套
重庆大学OpenHarmony技术俱乐部正式揭牌成立
高速PCB设计简介:FR-4是高速PCB设计的最佳板材料选择吗?
黑客窃取了3种Microsoft产品的源代码
制动系统,制动系统是什么意思