最近群里有問紅外信號采集相關(guān)問題,我以為他問 arduino,原來他問米思齊,然后我居然忘了之前我用米思齊也試過。今天再把資料整理一下,備戰(zhàn)新項(xiàng)目。
紅外遙控器應(yīng)用非常廣泛,大部分家電都使用它來控制 ,具有價(jià)格低,省點(diǎn)等特點(diǎn)。一般紅外遙控器發(fā)送數(shù)據(jù)采用 NEC 格式,今天我們用示波器抓取一下 NEC 格式的紅外信號,看看他長什么樣子。
工具
arduino
紅外接收模塊(2 元左右的,這個(gè)沒必要非得買模塊,直接買元件也可以,因?yàn)槟K上也只是焊了個(gè)接收元件)
紅外遙控器(2 元左右的)
杜邦線
示波器
NEC 格式
NEC 格式的特征:(網(wǎng)上找的資料,不用深究,我們用創(chuàng)客思維 DIY,出現(xiàn)問題才需要看這個(gè))
1:使用 38 kHz 載波頻率
2:引導(dǎo)碼間隔是 9 ms + 4.5 ms
3:使用 16 位客戶代碼
4:使用 8 位數(shù)據(jù)代碼和 8 位取反的數(shù)據(jù)代碼
下面的波形是從紅外接收頭上得到的波形:
下邊是引導(dǎo)碼放大圖(簡單理解,看到這個(gè)就認(rèn)為是 NEC 格式信號就行了)
抓取信號
硬件連接完成后,設(shè)置示波器,主要由以下幾步驟:
設(shè)置時(shí)間(根據(jù)要采集的信號周期)
設(shè)置電壓(根據(jù)要采集的信號電壓,和個(gè)人喜好,只要?jiǎng)e設(shè)置的太小就行)
選擇觸發(fā)方式和通道(上升沿下降沿,采集紅外信號時(shí)無所謂,不用深究,通道別選錯(cuò)了,錯(cuò)了死活出不來)
點(diǎn)擊單次觸發(fā)(然后示波器就在那等你給他信號了)
發(fā)射信號(遙控器對著紅外按)
簡單來說就是上圖中的按鈕,從上往下依次設(shè)置,設(shè)置不對對也沒事,按照上述步驟改一下,重新測一遍,直到看到滿意的效果為止。注意硬件連線,這個(gè)要是出問題了,是十分不好找的。上圖是我設(shè)置的參數(shù),可以參考。
感謝瑞迅電子的朋友提供的便攜示波器,上邊這些漂亮的圖都是用這個(gè)示波器直接在 PC 上截取的,非常方便好用
通過上述方法,我們可以很容易的在示波器上抓取紅外遙控器發(fā)射的信號,一般用這種方法來查找問題,比如單片機(jī)死活接收不到數(shù)據(jù),這時(shí)就可以通過這種方法看看是不是遙控器沒電了,根本沒發(fā)出信號。
一般分析數(shù)據(jù)不用這種方法,方法太原始工作量大,效率比較低。以后介紹分析紅外遙控器信號的簡單方法,敬請關(guān)注。
arduino 庫:IRremote 米思齊測試程序: