提到红外遥控器,相信大多数人都认为这是一个简单到不能再简单的产品,如果说要开发一个红外遥控器,恐怕没几个技术人员不会捂着嘴偷笑,一个红外遥控器,随便一个硬件工程师半个小时就能搞定,这也算开发那真是侮辱开发二字。
我自己以前也是这么认为的,直到前段时间给客户做了一个红外遥控器,发现这种想法真的是太错了,没错,红外遥控器确实简单,一个半小时就能设计好一个可以工作的红外遥控器也不难,不过要把红外遥控器做好,就不是那么一件简单的事情。
一开始,客户和我都认为这个红外遥控器也就三两天的程序量,一周肯定可以出演示样板。实际情况是从九月份开始,做到十二月底才给客户拿出满足基本要求的版本,叫人大跌眼镜。
为什么会这样,就是一开始想得很简单,做了才知道,一个简单的红外遥控器,也有国家标准,如果用单片机去开发设计一个能满足国标的红外遥控器,还真是麻烦多多。
首先红外载波频率就是一个问题,不信你可以去电子市场转转,你肯定找不到一个频率刚好适用能提供准确红外载波的晶振,比如常用的38K红外载波实际上是由455K频率12分频得到的37.91667K,市面上是没有刚好是其整数倍的晶振的,这样如果选用常用晶振,程序输出的红外载波都和基准值存在一个偏差,这个偏差一是不符合载波频率的国家标准,二是会导致遥控距离变短。
其次要处理好不同用户的各种使用方法也不简单,一台电视、一部空调,一般用户买回家都会看看说明书,有的甚至有厂家的安装人员在安装时介绍如何使用,可遥控器不大一样,很少有人去看使用说明书。这样电视、空调这样的电器可以要求使用者按照厂家的要求进行操作,遥控器则不可能向使用者提不可以同时按多个键、用完请关电这类要求。结果就是单片机软件需要处理相当多的if(),做到最后可能原始程序已经满是补丁。
再次就是遥控器对待机电流是越小越好,可能一个遥控器从开始使用的那一天到被弄坏或弄丢,一对电池就解决所有问题,甚至不需要比较猛的南孚聚能环,只要便宜得不能再便宜的555即可。这种小的待机电流可能只有零点几微安,通用遥控器经过多年的技术积累已经完全可以靠硬件得以现,但如果是用单片机做的遥控器,肯定是要满足某些特殊需求,要想再做到零点几微安的待机电流,无疑是一件让人抓狂的事。
既然这个红外遥控器前后花了三四个月时间,我自认为已经对红外遥控比较熟悉,再有红外遥控器方面的问题对我来说肯定是小菜一碟,闭着眼睛都能解决,不会再让红外来闪腰了。就在我洋洋得意之际,转过头来又被红外遥控戏弄了一把。
这次更简单,是给客户用红外做一个开关,想法更简单,用一个38K的载波输出,然后用一个一体化的红外接收头接收,有红外载波接收头输出高,无红外载波接收头输出低,多简单啊。可结果是多么的让我伤心,做出来发现距离居然不足1厘米,只要超过1厘米,一体化的接收头就不响应输出,输出一直保持高,但用另外的遥控器测试接收头完全正常,示波器可以看到高低变化。
这就奇了怪了,一开始以为是驱动电流不够大,可把发射管的驱动电流加大到超过一百毫安,还是同样现象,发射管的红外载波频率也正确,想不到哪里出了问题。后来想着既然接收头能正确响应其它遥控器,那我就让发射电路发送和其它遥控器一样的波形,看是什么结果。这一试有了新发现,示波器看到接收头输出变正常,难道是一体化的接收头响应连续的红外载波信号?
逐步加大红外载波持续的宽度,嘿!还真是这样,当宽度大到一定程度后接收头的输出就开始变得不稳定,变成时有时无。后来请教了一位遥控器行业的资深技术人士,原来一体化的接收头有两种,一种可以响应连续的红外载波,只要有载波,接收头就输出低,一种则只能响应宽度在一定范围内的红外载波,如果红外载波宽度超过最大限度,接收头停止输出低。
原来如此,这腰可把我闪得不轻。
————————————————————————————
红外遥控小贴士:
1.如果用单片机做红外遥控器,最好用3.64M的陶瓷谐振器,不然频率无法做准。
2.如果要达到满足国标的遥控距离,红外发射的电流非常大,最大可能有400毫安,所以发码间隔要大,不然会烧发射电路。
3.载波用1/3的占空比,1:1虽然也可行,但耗电要多一些。
4.如果有LED做发射指示,LED不要和红外发射管同时打开,以减小最大峰值电流。
5.发码过程必须连续,不要被中断打断。 |