IR - 发送 IR Sony 资料

材料准备

  • AmebaD [ AMB21 / AMB22 / BW16 ] x 2

  • Grove – 红外线发射器 x1

范例说明

在这个例子中,我们使用一个 Ameba RTL8722 模块,连接一个红外线(IR)发射器来发送和接收 IR SONY 数据“0xA90”(Sony TV power code)。对于接收端,您可以使用示波器/逻辑分析仪查看波形并进行相应解码。

../../../../_images/image157.png

图一: 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 长的间隔隔开,如下图二所示。

../../../../_images/image254.png

图二: Sony SIRC 调节

协议

../../../../_images/image336.png

图三: 12位元 SIRC 协议的典型脉冲序列

图三显示了 12位元 SIRC 协议的典型脉冲序列。使用此协议,首先传输 LSB。开始是 2.4ms,后面跟着 0.6ms 的标准间隔。除了发出 SIRC 讯息开始的信号外,还用于调整 IR 接收器讯号。然后发送 7 位元命令,后跟 5 位元设备地址。在这种情况下,地址 1 和命令 19 被传输。

只要按住遥控器上的键,命令就会每 45 毫秒重复一次(从这次开始到下次开始测量)。

图四: AMB21 / AMB22 的红外发射器引脚配置

../../../../_images/image428.png

图五: BW16 的红外发射器引脚配置

../../../../_images/image520.png

Figure 6: Pin configuration of the IR Emitter and BW16-TypeC

../../../../_images/image610.png

正确设置连接后,我们将介绍此范例的编码部分。首先,确保在Arduino IDE中选择了正确的Ameba开发板:“Tools”->“Board”。

在“File”->“Examples”->“AmebaIRDevice”->“IRSendSONY”中打开“IRSendSONY”范例(图六)并上传到与IR Emitter相连的板上:

../../../../_images/image78.png

图六: IRSendSONY 范例

成功上传 IRSendSONY 的范例代码后,您可以使用示波器或 Pulse View 查看 IR Emitter 发射的信号波形为“0xA90”,如下图所示:

../../../../_images/image86.png

图七: IRSendSONY “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