99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

程序員小哈
認證:優質創作者
作者動態
自動洗碗機綜合實例第二講 - 最小系統核心板PCB繪制
2024-07-18 09:21
自動洗碗機綜合實例第一講 - 最小系統核心板原理圖繪制
2024-07-16 09:40
線路板焊接的干貨都在這里呢
2024-07-14 12:08
基于單片機的智能風扇DIY總結
2024-07-13 14:42
基于HAL庫實現按鍵(外部中斷)翻轉一個LED
2024-06-30 14:02

紅外遙控功能的實現

紅外遙控功能,因其電路簡單,控制方便,在電子制作和畢業設計中常常使用。

涉及知識點

  • GPIO中斷接收
  • STM32中定時器的用法
  • 紅外接收頭的使用
外部中斷和定時器的內容比較多,之后網文再詳細分享。

一體化紅外接收頭VS1838B簡介

  • 工作電壓: 2.7V~5.5V
  • 應用電路

  • 外觀、封裝及尺寸:把接收頭面向自己,左邊為1腳,1腳OUT,2腳GND,3腳VCC。

應用場景

  • 視聽器材(音箱、電視、錄影機、碟機)
  • 家庭電器(冷氣機、電風扇、電燈)
  • 其他紅外線遙控產品

編碼標準

紅外接收頭的型號有很多HS0038、VS1838B等,功能大致相同,只是引腳封裝不同。

紅外接收有幾種統一的編碼方式,采樣哪種編碼方式取決于遙控器使用的芯片,接收頭收到的都是一樣的。

電視遙控器使用的是專用集成發射芯片來實現遙控碼的發射,通常彩電遙控信號的發射,就是將某個按鍵所對應的控制指令和系統碼(由0和1組成的序列),調制在38KHz的載波上,然后經放大、驅動紅外發射管將信號發射出去。

不同公司的遙控芯片,采樣的遙控碼格式也不一樣,較普遍的有兩種,一種NEC標準,一種是PHILIPS標準。

NEC標準: 當某個鍵按下時,系統首先發射一個完整的全碼,如果按鍵超過108ms仍未松開,接下來發射的代碼(連發代碼)將由起始碼(9ms)和結束碼(2.5ms)組成。

一個完整的全碼 = 引導碼 +用戶碼 +用戶碼 + 數據碼 + 數據反碼。

其中,引導碼高電平9ms,低電平4.5ms;

用戶碼和數據碼共32位;其中前16位為用戶識別碼,能區別不同的紅外遙控設備,以防止不同的機種遙控碼互相干擾。

后16位數據碼為8位的操作碼和8位的操作反碼,用于核對數據是否接收準確。接收端根據數據碼的不同做出相應的動作。

連發代碼是在持續按鍵時發送的碼。它告知接收端。某鍵是在被連續的按著。

PHILIPS標準 邏輯“0”和邏輯“1”的定義。


我們使用的遙控器模塊使用的是NEC標準,當我們點擊紅外遙控器上第一個按鍵Ch- 時,用示波器測量VS1838B的OUT引腳,示波器中抓取的信號如下:

我們可以看出跟下圖標準的NEC協議的典型脈沖鏈的定義是一致的:

上圖為NEC協議的典型脈沖鏈。協議規定低位首先發送

首先發送9ms+4.5ms的引導碼,接下來是兩字節用戶碼,第三字節是數據碼(按鍵碼),用來判斷按鍵值,第四字節是數據反碼,可以用來校驗,提高按鍵的準確性。

注意:我們會發現上面兩個圖中波形的高低電平實際上是相反的,因為紅外接收頭將38K載波信號過濾,接收到的波形剛好與發射波形相反。

難點:數據0和1的判斷:所謂的解碼就是一個區分脈沖寬度的過程。紅外信號的“0”和“1”是通過脈沖持續時間的長短來區分的,NEC標準的“0”和“1”的定義如下:

引導碼:9ms 的載波+4.5ms 的空閑。比特值“0”:560us 的低電平+560us 的高電平。比特值“1”:560us 的低電平+1.68ms 的高電平。

VS1838B 這個紅外一體化接收頭,當收到有載波的信號的時候,會輸出一個低電平,空閑的時候會輸出高電平。

數據處理流程

結果展示

接線

與VS1838B連接:

  • 紅外接收頭的OUT引腳連接PA7
  • VCC連接3.3V
  • GND接地

與USB轉TTL串口相連: 用于打印調試信息

  • USB轉TTL串口的TXD與核心板的PA10相連
  • USB轉TTL串口的RXD與核心板的PA9相連
  • USB轉TTL串口的VCC與3V3跳線短接

鍵碼值輸出

按紅外遙控的各個按鍵,串口打印輸出各個按鍵值如下:

對紅外遙控器鍵碼值整理如下:

下面視頻中抓取的是第一個按鍵的脈沖信號:

我們通過觀察視頻發現它的四個字節的數據如下:00000000 11111111 10100010 01011101

其中:頭兩個字節00000000 11111111,即用戶碼,值為:0x00FF;第三個字節就是Command命令字,10100010,這個數字對應十進制就是162,對應16進制就是0xA2。

一般我們就利用第三個字節的值,進行不同的功能定義。第四字節01011101,可以看出與第三字節10100010互為反碼。

但是我們通過上面NEC編碼部分的介紹可知,NEC協議規定低位首先發送。所以上面打印輸出的162(10100010),需要高低位反過來,即第一個按鍵的二進制真實編碼為:01000101,即十六進制的0x45。

我們將所有的按鍵重新計算,所有編碼就能夠得到網上的按鍵編碼圖了。

其實我們只要每個按鍵能準確得到一個不同鍵碼值,然后程序中根據不同值,執行不同流程即可,對于“CH-”鍵碼值是162還是0x45,其實對功能的實現沒有影響。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 4
收藏 6
關注 69
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 午夜精品二区 | 逼自拍偷拍自拍天堂偷拍 | 亚洲欧洲专线一区 | 欧美精品一二三四区 | 天天草草草 | 无码免费毛片手机在线 | 成年人在线免费观看热视频 | 国产成人啪精品午夜网站a片免费 | 色婷婷五月综合亚洲影院 | 国产一二三区在线观看 | 四虎影视永久免费在线观看 | 欧美视频国产 | 精品国产乱码久久久久久浪潮 | 国产精品国产三级国AV | 欧美a级片免费观看 | 国产真实乱对白精彩久久老熟妇女 | 国产福利在线观看91精品 | 粉嫩在线一区二区三区视频 | 欧美a级片免费观看 | 人妻在卧室被老板疯狂进入 | 91九色丨porny丨交换 | 91亚洲国产成人久久精品麻豆 | 精品国产乱码91久久久久久网站 | 亚洲精品成人悠悠色影视 | 一夲道av无码无卡免费 | 亚洲欧美精选 | 日本乱妇日本乱妇18 | 521av永久免费网 | 国产精品婷婷不卡久久久 | 麻豆免费观看 | 欧洲熟妇乱xxxxx大屁股7 | 丁香五月婷婷中文 | 国产字幕av | 成人综合久久综合 | www.久草视频 | 亚洲在线免费观看视频 | 亚洲视频在线观看 | JIZZJIZZ少妇亚洲水多 | 18禁无遮挡免费视频网站 | av爽爽 | 国产首页天堂在线 |