目前在學單片機,已經學會做流水燈了,怎麼做紅外遙控燈?

funnyapp


已經會用單片機實現流水燈的功能,說明對單片機有了初步的入門知識,會配置單片機的GPIO口輸出了,建議再學習以下單片機的GPIO的輸入,比如按鍵輸入。因為紅外遙控會使用到GPIO輸出和GPIO輸入,還用會要定時器甚至中斷。下面從硬件設計和程序設計介紹一下紅外遙控的設計。

1.紅外發射電路的設計

紅外遙控涉及到一發一收,即一個紅外發射管和一個紅外接收管配合使用。紅外發射管一般是透明的,跟發光二極管LED驅動方法一致。如下圖所示,是設計的紅外發射電路。單片機輸出高電平時三極管導通,發射管工作發出紅外光,這裡也可以用按鍵來控制。

2.紅外接收電路的設計

紅外接收管用來接收發射管所發出的紅外光,紅外接收管可以用普通的接收管,也可以使用專用的紅外接收頭,如VS1838系列接收頭,下圖是使用1838接收頭實現的紅外電路。當接收到紅外光後,1838輸出低電平。

如果你是通過單片機開發板來學習的,那麼板子上應該帶有紅外接收頭,並且配有紅外遙控器,儘可能的利用手邊的資源。

3.簡單紅外遙控的實現

硬件電路設計好之後,就要設計程序了。你可以使用紅外遙控控制板子上LED燈的亮滅、流水燈的花樣變換、繼電器的工作燈。這種簡單的指令只需要檢測紅外輸出的電平就可以。如果單片機檢測到低電平,說明有人按了紅外遙控器,把繼電器打開即可,不需要走協議。

4.紅外數據通信的實現

如果用通過紅外來傳輸數據的話,就需要遵循一定的協議了。目前常用的紅外通訊協議是NEC的協議,如下圖規定了邏輯0和邏輯1的脈衝寬度。

邏輯0的時間為1.12ms,脈衝寬度為560us;邏輯1的時間為2.25ms,脈寬為560us,除此之外一幀完整的數據應該包括:引導碼、8位的客戶碼、8位客戶碼的補碼、8位的按鍵值、8位按鍵值的補碼等。

在編寫程序時可能用到單片機的定時器資源、中斷資源、捕捉等。所以NEC協議的實現,對初學者來說還是比較複雜的。建議先從簡單的遙控命令入手。

以上就是這個問題的回答,感謝留言、評論、轉發。

更多精彩內容請關注本頭條號:玩轉嵌入式。感謝大家。


玩轉嵌入式


相應的教程應該有很多,自己去網上檢索並篩選出有價值的信息也是學習單片機中必不可少的過程。紅外遙控涉及到一些通信的知識,時鐘對上後,加之一些通信的協議,就可以發送控制信息達到控制的效果了。題主看樣子還是新手,建議可以買一套集成度較高的開發板(淘寶上很多,百來塊足夠),各個模塊都有,按照附送的代碼和數據手冊跑一遍,對於單片機的認識和理解絕對有大幅提升。幾年前也是這麼過來的,一點經驗,希望有幫助。


小白Talk


如果是給信號到單片機的話你記住紅外接收三極管的電源和輸出信號,把信號源引接到單片機的信號源,如果是隻需要紅外信號接收管控制開關功能的話,很簡單,一個紅外信號接收三極管,一個1k1/4W的電阻,一個9014三極管,一個繼電器就可以了。


分享到:


相關文章: