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位元 Sony 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