esp8266_sdk_ir_rx_tx紅外遙控示例

前言:
紅外遙控是利用紅外線進行傳輸數(shù)據(jù),紅外線又稱紅外光波,在電磁波譜中,光波的波長范圍為0.01um1000um。根據(jù)波長的不同可分為可見光和不可見光,波長為0.38um0.76um的光波可為可見光,依次為紅、橙、黃、綠、青、藍、紫七種顏色。光波為0.01um0.38um的光波為紫外光(線),波長為0.76um1000um的光波為紅外光(線)。紅外光按波長范圍分為近紅外、中紅外、遠紅外、極紅外4類。
紅外線遙控是利用近紅外光傳送遙控指令的,波長為0.76um1.5um。用近紅外作為遙控光源,是因為目前紅外發(fā)射器件(紅外發(fā)光管)與紅外接收器件(光敏二極管、三極管及光電池)的發(fā)光與受光峰值波長一般為0.8um0.94um,在近紅外光波段內(nèi),二者的光譜正好重合,能夠很好地匹配,可以獲得較高的傳輸效率及較高的可靠性

載波信號:
載波是指被調(diào)制以傳輸信號的波形,一般為正弦波。
1)載波的作用
1.減小傳輸中的噪聲;
2.頻分復用,即同一頻率之間同一信道傳輸多路信號而不混疊;
3.可傳播更遠距離,有利于接收;
2)載波頻率
調(diào)制載波頻率一般在30KHz到60KHz之間,常用的載波有33K,36K,36.6K,38K,40K,56K等,其中38K使用最多。
常用占空比有1/3、1/2,1/3最多。

調(diào)制:
目前主流的調(diào)制方式有PPM和PWM。
1)PPM:脈沖位置調(diào)制,調(diào)制脈沖寬度不變,用脈沖間隔來區(qū)分0和1。脈沖寬度不變都是560us,脈沖間隔改變。邏輯1總時間為2.25ms,邏輯0中時間長度為1.12ms。
2)PWM:脈沖寬度調(diào)制,脈沖間隔不變,調(diào)制脈沖寬度改變。脈沖間隔 為600us,脈沖寬度不同。邏輯1高電平時間為1.2ms,邏輯0高電平時間為0.6ms。

紅外傳輸協(xié)議:
常用的紅外傳輸協(xié)議有ITT協(xié)議、NEC協(xié)議、Nokia NRC協(xié)議、Sharp協(xié)議、Philips RC-5、RC-6 RECS-80協(xié)議、Sony SIRC協(xié)議等,其中最常見的為NEC協(xié)議

常見的NEC協(xié)議格式為:
依次發(fā)送

  1. 發(fā)送9ms的高電平脈沖
  2. 發(fā)送4.5ms的低電平
  3. 8bit的用戶碼(低位在前)
  4. 8bit的用戶反碼,用于檢驗地址碼是否出錯
  5. 8bit的數(shù)據(jù)碼(低位在前)
  6. 8bit的數(shù)據(jù)反碼,用于檢驗命令碼是否出錯。
    ??!重復碼:
    假如一直按著按鍵不松,它將以110ms為周期發(fā)送重復碼,重復碼由9ms高電平、2.25ms低電平及560us高電平組成。


    紅外協(xié)議.png

1)NEC協(xié)議分析:
38KHz的載波,脈沖時間560us,緊接著沒有脈沖時間為1.69ms(低電平),則為邏輯1;
脈沖時間560us,緊接著沒有脈沖時間為560us(低電平),則為邏輯0;


邏輯0和1.png

esp8266_rx_tx官方推薦
ESP8266定義了1個IR紅外遙控接口,IR紅外遙控接口由軟件實現(xiàn),接口定義如下:
管腳名稱 |管腳編號 |IO |功能名稱
(MTMS) |(9) |(IO14) |(IR_TX)
(GPIO5) |(24) |(IO5) |(IR_RX)

1)發(fā)送:
在ESP8266上用于發(fā)送的載波可以通過以下方式實現(xiàn):
1.I2S的BCK

  1. WS管腳產(chǎn)生
  2. 由GPIO中的sigma-delta功能在任意GPIO口產(chǎn)生載波。
    其中sigma-delta產(chǎn)生的載波占空比約為20%,推薦使用MTMS管腳(GPIO14),可產(chǎn)生準確的38KHz且占空比為50%的標準方波。
    2)接收:
    紅外接收功能通過GPIO的邊沿中斷實現(xiàn),讀取系統(tǒng)時間,將其時間相減可以得到波形持續(xù)時間,然后通過軟件邏輯實現(xiàn)紅外協(xié)議處理

IR_Demo_For_ESP8266_NONOS_SDK源碼:
鏈接:https://pan.baidu.com/s/1KohkTFd9Qxz_reeAM_9GvA 密碼:zv3d
下載后添加到esp8266_sdk_nonos目錄中編譯即可使用:

如果使用 ESP8266_NONOS_SDK_V1.5.0 或之后版本,請在示例的 Makefile 中 'LINKFLAGS_eagle.app.v6" 區(qū)域增加 "-lcrypto" 。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容