最近群里有问红外信号采集相关问题,我以为他问 arduino,原来他问米思齐,然后我居然忘了之前我用米思齐也试过。今天再把资料整理一下,备战新项目。
红外遥控器应用非常广泛,大部分家电都使用它来控制 ,具有价格低,省点等特点。一般红外遥控器发送数据采用 NEC 格式,今天我们用示波器抓取一下 NEC 格式的红外信号,看看他长什么样子。
工具
arduino
红外接收模块(2 元左右的,这个没必要非得买模块,直接买元件也可以,因为模块上也只是焊了个接收元件)
红外遥控器(2 元左右的)
杜邦线
示波器
NEC 格式
NEC 格式的特征:(网上找的资料,不用深究,我们用创客思维 DIY,出现问题才需要看这个)
1:使用 38 kHz 载波频率
2:引导码间隔是 9 ms + 4.5 ms
3:使用 16 位客户代码
4:使用 8 位数据代码和 8 位取反的数据代码
下面的波形是从红外接收头上得到的波形:
下边是引导码放大图(简单理解,看到这个就认为是 NEC 格式信号就行了)
抓取信号
硬件连接完成后,设置示波器,主要由以下几步骤:
设置时间(根据要采集的信号周期)
设置电压(根据要采集的信号电压,和个人喜好,只要别设置的太小就行)
选择触发方式和通道(上升沿下降沿,采集红外信号时无所谓,不用深究,通道别选错了,错了死活出不来)
点击单次触发(然后示波器就在那等你给他信号了)
发射信号(遥控器对着红外按)
简单来说就是上图中的按钮,从上往下依次设置,设置不对对也没事,按照上述步骤改一下,重新测一遍,直到看到满意的效果为止。注意硬件连线,这个要是出问题了,是十分不好找的。上图是我设置的参数,可以参考。
感谢瑞迅电子的朋友提供的便携示波器,上边这些漂亮的图都是用这个示波器直接在 PC 上截取的,非常方便好用
通过上述方法,我们可以很容易的在示波器上抓取红外遥控器发射的信号,一般用这种方法来查找问题,比如单片机死活接收不到数据,这时就可以通过这种方法看看是不是遥控器没电了,根本没发出信号。
一般分析数据不用这种方法,方法太原始工作量大,效率比较低。以后介绍分析红外遥控器信号的简单方法,敬请关注。
arduino 库:IRremote 米思齐测试程序: