注:本文是作者以前發表在其個人博客,現在發布到“聚豐開發”專欄
提到紅外遙控器,相信大多數人都認為這是一個簡單到不能再簡單的產品,如果說要開發一個紅外遙控器,恐怕沒幾個技術人員不會捂著嘴偷笑,一個紅外遙控器,隨便一個硬件工程師半個小時就能搞定,這也算開發那真是侮辱開發二字。
我自己以前也是這么認為的,直到前段時間給客戶做了一個紅外遙控器,發現這種想法真的是太錯了。沒錯,紅外遙控器確實簡單,半小時就能設計好一個可以工作的紅外遙控器也不難,不過要把紅外遙控器做好,就不見得是那么一件簡單的事情。 一開始,客戶和我都認為這個紅外遙控器也就三兩天的程序量,一周肯定可以出演示樣板。
實際情況是從九月份開始,做到十二月底才給客戶拿出滿足基本要求的版本,叫人大跌眼鏡。 為什么會這樣,就是一開始想得很簡單,做了才知道,一個簡單的紅外遙控器,也有國家標準,如果用單片機去開發設計一個能滿足國標的紅外遙控器,還真是麻煩多多。
首先紅外載波頻率就是一個問題,不信你可以去電子市場轉轉,你肯定找不到一個頻率剛好適用能提供準確紅外載波的晶振,比如常用的38K紅外載波實際上是由 455K頻率12分頻得到的37.91667K,市面上是沒有剛好是其整數倍的晶振的,這樣如果選用常用晶振,程序輸出的紅外載波都和基準值存在一個偏差,這個偏差一是不符合載波頻率的國家標準,二是會導致遙控距離變短。
其次要處理好不同用戶的各種使用方法也不簡單,一臺電視、一部空調,一般用戶買回家都會看看說明書,有的甚至有廠家的安裝人員在安裝時介紹如何使用,可遙控器不大一樣,很少有人去看使用說明書。這樣電視、空調這樣的電器可以要求使用者按照廠家的要求進行操作,遙控器則不可能向使用者提不可以同時按多個鍵、用完請關電這類要求。結果就是單片機軟件需要處理相當多的 if(),做到最后可能原始程序已經滿是補丁。
再次就是遙控器對待機電流是越小越好,可能一個遙控器從開始使用的那一天到被弄壞或弄丟,一對電池就解決所有問題,甚至不需要比較猛的南孚聚能環,只要便宜得不能再便宜的555即可。這種小的待機電流可能只有零點幾微安,通用遙控器經過多年的技術積累已經完全可以靠硬件得以現,但如果是用單片機做的遙控器,肯定是要滿足某些特殊需求,要想再做到零點幾微安的待機電流,無疑是一件讓人抓狂的事。
既然這個紅外遙控器前后花了三四個月時間,我自認為已經對紅外遙控比較熟悉,再有紅外遙控器方面的問題對我來說肯定是小菜一碟,閉著眼睛都能解決,不會再讓紅外來閃腰了。就在我洋洋得意之際,轉過頭來又被紅外遙控戲弄了一把。
這次更簡單,是給客戶用紅外做一個開關,想法更簡單,用一個38K的載波輸出,然后用一個一體化的紅外接收頭接收,有紅外載波接收頭輸出高,無紅外載波接收頭輸出低,多簡單啊。可結果是多么的讓我傷心,做出來發現距離居然不足1厘米,只要超過1厘米,一體化的接收頭就不響應輸出,輸出一直保持高,但用另外的遙控器測試接收頭完全正常,示波器可以看到高低變化。
這就奇了怪了,一開始以為是驅動電流不夠大,可把發射管的驅動電流加大到超過一百毫安,還是同樣現象,發射管的紅外載波頻率也正確,想不到哪里出了問題。后來想著既然接收頭能正確響應其它遙控器,那我就讓發射電路發送和其它遙控器一樣的波形,看是什么結果。
這一試有了新發現,示波器看到接收頭輸出變正常,難道是一體化的接收頭響應連續的紅外載波信號? 逐步加大紅外載波持續的寬度,嘿!還真是這樣,當寬度大到一定程度后接收頭的輸出就開始變得不穩定,變成時有時無。后來請教了一位遙控器行業的資深技術人士,原來一體化的接收頭有兩種,一種可以響應連續的紅外載波,只要有載波,接收頭就輸出低,一種則只能響應寬度在一定范圍內的紅外載波,如果紅外載波寬度超過最大限度,接收頭停止輸出低。
原來如此,這腰可把我閃得不輕。
————————————————————————————
紅外遙控小貼士:
1.如果用單片機做紅外遙控器,最好用3.64M的陶瓷諧振器,不然頻率無法做準。
2.如果要達到滿足國標的遙控距離,紅外發射的電流非常大,最大可能有400毫安,所以發碼間隔要大,不然會燒發射電路。
3.載波用1/3的占空比,1:1雖然也可行,但耗電要多一些。
4.如果有LED做發射指示,LED不要和紅外發射管同時打開,以減小最大峰值電流。
5.發碼過程必須連續,不要被中斷打斷。
6.可以用手機照相模式看紅外發射管是否有工作,有紅外發射會看到白光。(iPhone可能有紅外濾光片看不到)
-
單片機
+關注
關注
6037文章
44563瀏覽量
635848 -
紅外線
+關注
關注
14文章
620瀏覽量
56221
發布評論請先 登錄
相關推薦
評論