IR - 发送 IR Sony 资料
材料准备
范例说明
介绍
在这个例子中,我们使用一个 Ameba RTL8722 模块,连接一个红外线(IR)发射器来发送和接收 IR SONY 数据“0xA90”(Sony TV power code)。对于接收端,您可以使用示波器/逻辑分析仪查看波形并进行相应解码。
图一: Grove – 红外线发射器
在传输端,发射器将发送 IR SONY 数据。更多详情请参考SB-Projects的IR Remote Control Theory专题,了解IR遥控器操作原理和IR协议说明。在此范例中,我们将使用 Sony 作为传输协议。
Sony 特色
• 12-位元版本, 7 位元命令, 5 位元地址
• 调节脉冲距离
• 载波频率为 40kHz
• Bit time 为 1.2ms 或 0.6ms
Sony SIRC 调节
SIRC 协议使用脉冲编码。代表逻辑“1”的脉冲是 40kHz 载波的 1200us,而逻辑“0”的是 600us 长。都由 600us 长的间隔隔开,如下图二所示。
图二: Sony SIRC 调节
协议
图三: 12位元 Sony SIRC 协议
图三显示了 12位元 SIRC 协议的典型脉冲序列。使用此协议,首先传输 LSB。开始是 2.4ms,后面跟着 0.6ms 的标准间隔。
除了发出 SIRC 讯息开始的信号外,还用于调整 IR 接收器讯号。然后发送 7 位元命令,后跟 5 位元设备地址。在这种情况下,地址 1 和命令 19 被传输。
只要按住遥控器上的键,命令就会每 45 毫秒重复一次(从这次开始到下次开始测量)。
流程
正确设置连接后,我们将介绍此范例的编码部分。首先,确保在Arduino IDE中选择了正确的Ameba开发板:“Tools”->“Board”。
在“File”->“Examples”->“AmebaIRDevice”->“IRSendSONY”中打开“IRSendSONY”范例(图九)并上传到与IR Emitter相连的板上:
图九: IRSendSONY 范例
成功上传 IRSendSONY 的范例代码后,您可以使用示波器或 Pulse View 查看 IR Emitter 发射的信号波形为“0xA90”,如下图所示:
程式码说明
[1] Seed Official website for Grove – Infrared Emitter
https://wiki.seeedstudio.com/Grove-Infrared_Emitter/
[2] Ken SHirriff’s blog on A Multi-Protocol Infrared Remote Library for the Arduino
http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html
[3] SB-Projects: IR Remote Control Project
https://www.sbprojects.net/knowledge/ir/index.php
[4] SONY SIRC Protocol
https://www.sbprojects.net/knowledge/ir/sirc.php