用stm32F407實現紅外信號的發射與接收

首先講講紅外發射,紅外發射其實就是模擬遙控器。要實現紅外發射,必須對信號進行調製。NEC編碼規則載波頻率38K,由引導碼、地址碼、地址反碼、數據、數據反碼組成。560us的低電平加上560us的高電平表示邏輯0,560us的低電平加上1680us的高電平表示邏輯1,發送時低位在前高位在後。
想要理解調製的過程先得理解接收端的邏輯:紅外接收頭是有38K載波就輸出低,沒有載波就輸出0;
逆推比如引導碼,就是接收頭收到了9ms的38K載波,4.5ms的空;
那不就是發送端發送了9ms的38K載波,4.5ms沒發嗎?
所以你想利用STM32實現遙控器效果的紅外發送,就是一個開關定時器PWM的過程。

接收端的話也可以用STM32做,利用定時器輸入捕獲中斷,測量脈寬的長度;
想測量低電平長度,就先檢測下降沿,捕獲到後,調整成檢測上升沿,開始計時;再次捕獲到後,看計數到多少了,就可以獲取脈衝的長度!
只要與發送端發的數據匹配上,就表示收發成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章