一、模塊尺寸和接口說明
備註:GPIO4,GPIO5設計為紅外學習和發射按鍵接口,通過接兩個按鍵就可以測試模塊的學習和發射功能。按下學習按鍵,模塊進入紅外學習功能,按下發射鍵,模塊發射學習過的紅外碼。掉電後學習內容不會丟失。模塊其按鍵連接圖如下
二、模塊特點
1.采用高速32位arm處理器,處理速度快,學碼精度高;內置看門狗,可靠性高。
2.學習型,指令簡單,適用於市面上大多數家用電器(如電視,機頂盒,空調,風扇)等紅外遙控設備。
3.采用波形存儲,最大可以存儲512個學習按鍵,能夠滿足多個遙控器的學習需要。
4.接口RS232(TTL),兼容3.3V和5V。波特率9600,到115200均可設置。
5.工作電壓:3.3V或5V
6.全向發射,發射距離≥10米
7.紅外碼讀取和寫入功能,模塊學習之後的紅外碼可以通過串口讀取出來,並可以通過指令寫入到其他學習按鍵。
8.紅外碼發射間隔時間設置功能,可以調整兩紅外碼發射的時間間隔。
9.兩按鍵紅外碼發射功能,一個指令可以發射任意兩個紅外碼按鍵。10.遍歷按鍵紅外碼發射功能,發射起始按鍵到結束按鍵的所有紅外碼,紅外碼間隔時間可以通過設置間隔時間指令修改。
11.校驗碼可設置功能,通過指令可以設置是否檢查指令數據校驗碼,方便單片機簡化編程控制。
12.LED2燈可開關控制功能,板上有模塊LED2工作指示燈,可以通過指令設置是否開啟指示燈閃爍。
13.按鍵測試功能,模塊上預留有兩個按鍵接口,只需簡單的接上兩個按鍵,即可完成模塊的學習,發射測試。在不需要其他硬件和軟件的條件上快速完成模塊的性能檢驗功能。
14.配套設置和測試軟件
二、幀格式定義:
幀頭(2) + 幀長度(2) + 命令碼(2) +內容(N) +校驗碼(1)
1) 幀頭:0xF7,0x7F。
2) 幀長度(2字節Hex碼):高字節在靠近幀頭。包括“幀頭”到“校驗碼”的 所有字節數。
3) 命令碼(2字節Hex碼):命令代碼。下詳。
4) 內容(N字節Hex碼):內容定義詳見對應命令。
5) 校驗和(1字節Hex碼):僅計算從幀頭到內容的校驗和,計算方式為:以字節為單位進行加計算,計算出總和後再加1,取低8位。
更多指令請下載數據手冊和軟件查看,下載鏈接:
華為網盤下載鏈接
http://dl.vmall.com/c0grqbbsjh
百度網盤下載鏈接
http://pan.baidu.com/share/link?shareid=2628090583&uk=2133775304
五、詳細通訊說明
1、學習紅外指令
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
0x00,0x01(兩字節,詳見命令碼表)
|
XX,XX(具體鍵號,兩字節,高字節在前。取值範圍0到512)
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
0x00,0x81(兩字節,詳見命令碼表)
|
1字節狀態碼(詳見狀態碼表)
|
XX(1字節校驗和)
|
(註意:本說明書舉例均以開啟校驗和為前提進行舉例,XX代表該數值需要根據實際情況進行取值。按鍵值取值範圍為1到512,由兩個字節組成,高字節在前,低字節在後。)
舉例:學習1號按鍵
發送: F7 7F 00 09 00 01 00 01 82
(82為校驗碼,可以通過校驗碼設置是否開啟校驗碼檢查,若開啟校驗碼檢查,則校驗碼必須為幀頭到內容的校驗和,若未開啟校驗碼,則校驗碼可為(0到FF任意一字節數據),紅外模塊收到指令後不檢查校驗碼。操作完成後根據指令內容返回相應狀態碼)
響應: F7 7F 00 08 00 81 00 00
(00為校驗和,不管是否開啟校驗和檢查,響應返回的校驗和為真實校驗和值,響應狀態碼詳見狀態碼表)
2、單個紅外發射指令
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
0x00,0x02(兩字節,詳見命令碼表)
|
XX,XX(具體鍵號,兩字節,高字節在前)
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
0x00,0x82(兩字節,詳見命令碼表)
|
1字節狀態碼(詳見狀態碼表)XX,XX兩字節鍵號碼(命令正常時返回帶有鍵號碼,命令參數不正確時,無鍵號碼)
|
XX(1字節校驗和)
|
舉例:紅外發射1號按鍵
發送: F7 7F 00 09 00 02 00 01 83
響應:
情況一(命令參數出錯)
F7 7F 00 08 00 82 03 04
情況二(命令正常)
F7 7F 00 0A 00 82 00 00 01 04
3、2個紅外發射指令
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x03(兩字節,詳見命令碼表)
|
XX,XX,XX,XX(具體鍵號,4字節,高字節在前,前兩字節為先發送鍵號,後兩字節為後發送鍵號)
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x83(兩字節,詳見命令碼表)
|
1字節狀態碼(詳見狀態碼表)XX,XX兩字節鍵號碼(命令正常時返回帶有鍵號碼,命令參數不正確時,無鍵號碼)
|
XX(1字節校驗和)
|
舉例:紅外發射1號按鍵和3號按鍵
發送: F7 7F 00 0B 01 03 00 01 00 03 8A
響應:
情況一(命令參數出錯)
F7 7F 00 08 01 83 03 06
情況二(命令正常)
F7 7F 00 0A 01 83 00 00 01 06 (發射第一項對應按鍵響應碼)
F7 7F 00 0A 01 83 00 00 03 08 (發射第二項對應按鍵響應碼)
(發送按鍵1和按鍵3時,中間間隔時間默認為500毫秒,這個時間以100毫秒為步進單位,可以通過設置紅外間隔時間命令進行修改,具體見後章節的設置紅外間隔時間命令)
4、遍歷紅外發射指令
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
0x00,0x04(兩字節,詳見命令碼表)
|
XX,XX,XX,XX(具體鍵號,4字節,高字節在前,前兩字節為較小鍵值,後兩字節為較大鍵值)
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
0x00,0x84(兩字節,詳見命令碼表)
|
1字節狀態碼(詳見狀態碼表)XX,XX兩字節鍵號碼(命令正常時返回帶有鍵號碼,命令參數不正確時,無鍵號碼)
|
XX(1字節校驗和)
|
舉例:紅外發射1號按鍵到5號按鍵
發送: F7 7F 00 0B 00 04 00 01 00 05 8C
響應:
情況一(命令參數出錯)
F7 7F 00 08 00 84 03 06
情況二(命令正常)
F7 7F 00 0A 00 84 00 00 01 06 (發射完成第1個碼的響應)
。。。。。。 (發射完成第N個碼的響應)
F7 7F 00 0A 00 84 00 00 05 0A (發射完成第5個碼的響應)
(遍歷發送內容前兩字節為起始鍵號值,後兩字節為結束鍵號值,起始字節值必須小於結束字節值,並且鍵號必須在模塊支持的有效範圍內)
5、設置紅外發送間隔時間指令
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x05(兩字節,詳見命令碼表)
|
XX(1字節,取值範圍為1到50)默認值為5,每個單位代表100毫秒,5即代表500毫秒
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x85(兩字節,詳見命令碼表)
|
1字節狀態碼(詳見狀態碼表)
|
XX(1字節校驗和)
|
舉例:設置紅外間隔發送時間為0.5秒
發送: F7 7F 00 08 01 05 05 8A
響應: F7 7F 00 08 01 85 00 05
6、讀取單個紅外按鍵存儲碼
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x06(兩字節,詳見命令碼表)
|
XX,XX(具體鍵號,2字節,高字節在前)
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x86(兩字節,詳見命令碼表)
|
1字節狀態碼+2字節鍵號碼,512字節數據(當該命令參數正確時返回該512字節數據,否則無該512字節數據返回)
|
XX(1字節校驗和)
|
舉例:
(1) 讀取1號按鍵存儲碼(命令正常)
發送: F7 7F 00 09 01 06 00 01 88
響應: F7 7F 02 0A 01 86 00 00 01 XX ...XX...XX(512字節數據) XX
(XX ...XX...XX(512字節數據)為1號按鍵值存儲碼的具體數值,這些值由紅外學習成功後存儲在模塊存儲芯片上 XX校驗碼)
(2) 發送參數錯誤(命令參數出錯)
發送:F7 7F 00 09 00 06 00 00 86
響應:F7 7F 00 0A 00 86 03 00 00 0A
(按鍵值必須是1到512,這裏發送了0號鍵,所以響應的狀態碼是03,代表參數出錯,各種其他錯誤參數,請參看狀態碼表)
7、寫入單個紅外按鍵存儲碼
發送:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x07(兩字節,詳見命令碼表)
|
1字節狀態碼(默認為0),XX,XX(具體鍵號,2字節,高字節在前)XX...XX...XX(512字節紅外碼數據)
|
XX(1字節校驗和)
|
響應:
幀頭
|
幀長度
|
命令碼
|
內容
|
校驗碼
|
0xF7,0x7F
|
XX,XX(2高字節,高字節在前)
|
ID號,0x87(兩字節,詳見命令碼表)
|
1字節狀態碼
|
XX(1字節校驗和)
|
舉例:寫入1按鍵存儲碼值
發送: F7 7F 02 0A 01 07 00 00 01 XX...XX..XX(512字節紅外碼值) XX
響應: F7 7F 00 0A 01 87 00 00 01 0A
(XX ...XX...XX(512字節數據)為1號按鍵值存儲碼的具體數值,這些值由紅外學習成功後存儲在模塊存儲芯片上 XX校驗碼)