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