打印

我被红外遥控闪了一下腰(转自EDN)

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

————————————————————————————
红外遥控小贴士:
1.如果用单片机做红外遥控器,最好用3.64M的陶瓷谐振器,不然频率无法做准。
2.如果要达到满足国标的遥控距离,红外发射的电流非常大,最大可能有400毫安,所以发码间隔要大,不然会烧发射电路。
3.载波用1/3的占空比,1:1虽然也可行,但耗电要多一些。
4.如果有LED做发射指示,LED不要和红外发射管同时打开,以减小最大峰值电流。
5.发码过程必须连续,不要被中断打断。

相关帖子

沙发
beiwei23du| | 2011-5-7 09:38 | 只看该作者
本帖最后由 beiwei23du 于 2011-5-7 09:51 编辑

不错,有同感
不过为何要用3.64M晶振?
另:市场上有带红外接口的单片机

使用特权

评论回复
板凳
cubasa| | 2011-5-7 09:57 | 只看该作者
感谢楼主分享。
如果是纯遥控器的话,不如让遥控器厂家定制,选择适合的外形,自己设计一下丝印。还有一种自学习型的遥控器也不错。
没有必要让单片机去干这活,至少一点,功耗降不下来。电池供电系统对功耗很敏感。

使用特权

评论回复
地板
Linda_008| | 2011-5-7 21:27 | 只看该作者
我是个初学者,用STC89C51写的
怎么分频??
楼主可以挂出部分程序参考下吗?
比如UPD6121G格式的

使用特权

评论回复
5
awey| | 2011-5-8 01:17 | 只看该作者
还有一点没说全,不要说响应连续的红外载波,
就是加有调制信号,有些接收头也工作几秒钟后会**。

使用特权

评论回复
6
老鱼探戈| | 2011-5-8 10:48 | 只看该作者
只能说写这**的人实在是太菜了。

使用特权

评论回复
7
sxhhhjicbb| | 2011-5-8 11:14 | 只看该作者
LZ第一段讲得有点那个啥....其实任何事情,要做得优秀,都不容易...

使用特权

评论回复
8
mcuisp| | 2011-5-8 12:37 | 只看该作者
是经验之谈,但有一些误解。我也贡献一些以前的经验:
红外接收头对载波频率要求并不高,1%可以满足。37.9xxx与38kHz实在是没分别。
待机电流一般做到1~4uA即可满足要求,因为再小(0.x uA),电池的自放电已经比这个大了,甚至铝电解电容的漏电流会跑出来做贡献。
红外管工作峰值电流最大可达1A,占空比确实越小越好。所以要求电池一定要并铝电解电容(47uF/100uF)。
另外千万不出现让红外驱动管的驱动信号长期有效的现象,包括电路受到干扰程序跑飞、电池电压低等异常情况,mcu复位时,驱动信号应该可靠的处于无效状态。
遥控器对按键处理确实有些特殊要求,这个每种遥控会有不同要求,甚至同一个遥控器不同按键会有不同要求。
据说有个日本工程师,40年专注于红外遥控器,呵呵。

使用特权

评论回复
9
szshawn2010| | 2011-5-8 15:05 | 只看该作者
只能说写这**的人实在是太菜了。
老鱼探戈 发表于 2011-5-8 10:48


一直以来,我以为我是最菜的。
而今,偶深深的了解到,偶称不上“最”这个名号。

使用特权

评论回复
10
licanjian| | 2011-5-8 15:05 | 只看该作者
感觉说得太过了,没有那么难....

使用特权

评论回复
11
yxm5890| | 2011-5-8 15:52 | 只看该作者
恩 顶一下 楼主 最近 我在做 车流统计 器 正在徘徊 用激光 还是 红外 请楼主指点!

使用特权

评论回复
12
mcuisp| | 2011-5-8 16:53 | 只看该作者
个人认为,虽然楼主说的不全对,但也不能说“菜”。
一部分是真知灼见,特别是这点:再简单的产品,也值得深耕。

使用特权

评论回复
13
tianm| | 2011-5-9 01:02 | 只看该作者
闪了一下腰 的这种命题 应该是十五年前的产物了

使用特权

评论回复
14
jiajiangtao| | 2011-5-9 10:18 | 只看该作者
wetr

使用特权

评论回复
15
apple| | 2011-6-14 13:20 | 只看该作者
看了LZ的体会, 有很多说法是对的, 也有一些说法不正确,任何开发都有可以预想不到的事情发生,要不然还有什么DEBUG的说法, 只是说你没有做过,碰到的问题更多,我们做过就非常简单了,空调遥控器想对复杂一些, 主要是操作方法很复杂,而不是编码的问题,俗话说麻雀虽小五脏具全。

使用特权

评论回复
16
leang521| | 2011-6-14 13:36 | 只看该作者
很多时候都是在小事上栽跟头

使用特权

评论回复
17
tom_xu| | 2011-6-14 17:14 | 只看该作者
楼主说得不错,任何东西要做成产品,都不太容易。

使用特权

评论回复
18
dongganwen| | 2011-8-12 17:46 | 只看该作者
楼主,可以跟你学习下红外方面的知识不?
小弟虚心学习。QQ:249232547

使用特权

评论回复
19
DownCloud| | 2011-8-13 00:52 | 只看该作者
只能说写这**的人实在是太菜了。
老鱼探戈 发表于 2011-5-8 10:48

一直以来,我以为我是最菜的。
而今,偶深深的了解到,偶配不上“最”这个名号。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

30

帖子

1

粉丝