IR - 發送 IR Sony 資料

材料準備

範例說明

介紹

在這個例子中,我們使用一個 Ameba RTL8722 模塊,連接一個紅外線(IR)發射器來發送和接收 IR SONY 數據“0xA90”(Sony TV power code)。對於接收端,您可以使用示波器/邏輯分析儀查看波形並進行相應解碼。

圖一: Grove – 紅外線發射器

1

在傳輸端,發射器將發送 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 調節

1

協議

圖三: 12位元 Sony SIRC 協議

1

圖三顯示了 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 範例

1

成功上傳 IRSendSONY 的範例代碼後,您可以使用示波器或 Pulse View 查看 IR Emitter 發射的信號波形為“0xA90”,如下圖所示:

1

程式碼說明

[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

請先確認已安裝QQ通訊軟體