学习型遥控器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22个元件构成的学习型遥控器(附制作过程,电路图)

红外学习型遥控器的主要功能是学习,意思是“复制”其他红外遥控器,取而代之。所谓“复制”,就是复制后的遥控器的所有功能与原遥控器一模一样。否则,就不能算成功的“复制”。

学习型红外遥控,可以分为两类:以固定码格式学习的遥控器和波形拷贝方式学习的遥控器。前者,需要收集各种不同种类的遥控器信号,然后进行识别比较,最后再记录。但是,要实现几乎所有的红外遥控器的成功复制就太难了。因为,红外遥控器的红外编码格式变化

太多。不过这种学习型遥控器对硬件要求相对简单,处理器的工作频率可以不高,存储容量也较小,其缺点是对未知编码的遥控器无效。后者主要是把原始遥控器所发出的信号进行完全拷贝,而不管遥控器是什么格式,存储在EEPROM等存储器中。当发射时,只需将储存器中记录的波形长度还原成原始信号即可。这种学习型遥控器对MCU的主频要求高,RAM 要求较大,其优点是对任何一种红外遥控器都可以进行学习。所以,我以第二种方案进行设计。

红外学习遥控器的学习功能在某些应用场合非常有用。但是,学习遥控器的使用,需要原来的遥控器,没有原来的遥控器,学习功能就无法实现了,这也算一个缺点吧。

所需元器件及材料:

编号零件名称数量

116MHz晶振1

2M8单片机插座1

3M8单片机1

4存储器插座1

5SST25VF040存储器1

6LED灯1

7红外一体接收头1

8红外发射二极管1

90.1μF电容1

10300Ω电阻3

11微动按钮8

12ISP下载插针1

13万用板1

由于使用的SST25VF040存储芯片的封装比较小,所以笔者通过转接板,把SOIC封装转接为DIP封装,方便了后期的制作。

这次制作的焊接工作很简单,都采用了DIP的元器件。使用绝缘线,根据原理图连接对应引脚即可。焊接好的作品如图所示。

电路原理

电路原理如图4所示。8个按钮的一端都连接到INT1接口上,这样所有按钮就都可以具有中断功能。SST存储芯片是串口的,使用SPI接口,因此和M8的SPI接口直接连接即可,它具有512KB大小。如果觉得容量太大,可以购买小容量的SST25VF010存储芯片,也有128KB大小的。它的最高读写频率高达20MHz,比M8单片机内置的EEPROM快多了。LED 指示灯上要串联300Ω的限流电阻,防止LED过亮刺眼。红外发光管也串联了300Ω电阻,实验证明,它的有效距离依然大于2m,距离够用了。为了提高了红外逻辑采集的精度,电路使用16MHz的晶体振荡器。红外接收头应该使用可以工作在低电压下的一体接收头,不然

整个电路的工作电压就会上升了。

工作电源。我使用的是3.6V可充电电池。

之前,我使用了HS38B红外一体接收头,但要录制红外信号时,电源电压必须大于4.0V才能正常录制。后来,我购买了低工作电压(2.0~4.2V)的红外一体接收头,具体型号没关系,只要引脚兼容就可以。

设计要点介绍

1.红外编码方式

红外遥控信号实际是一连串的脉冲码,它的逻辑长度一般代表二进制的“0”或“1”。通常为了提高发射距离,一般要将信号调制到特定的载波频率上,然后,通过红外发光二极管发射出去。红外一体接收头会滤除杂波,接收指定频率的信号,并还原成原来的二进制逻辑长度。一般,家里使用的遥控设备都是38kHz的载波。

常用的红外遥控包括两种调制方式:PWM(脉冲宽度调制)和PPM(脉冲位置调制)。

PWM(脉冲宽度调制):以发射红外载波的宽度来代表“0”和“1”。例如常用的VCD、

DVD遥控器,其“0”为载波发射0.56ms、不发射0.56ms;“1”为载波发射0.56ms、不发射1.68ms。

此外,还有引导码,一般为载波发射9ms,不发射4.5ms。

PPM(脉冲位置调制):以发射载波的位置表示“0”和“1”。从发射载波到不发射载波为“0”,从不发射载波到发射载波为“1”。其发射载波和不发射载波的时间相同,都为0.68ms,也就是每位的时间是固定的。还有一种不常用的调制方式:FSK(频移键控调制)。

频移键控用两种不同的频率代表“0”和“1”。例如,发射0.6ms的30kHz载波代表“0”,发射0.6ms的40kHz代表“1”。当然,这种方式不太常用。

通过以上对编码方式的分析,可以得出以某种固定格式的“0”和“1”去学习红外信号的方法。这种方法虽然能有效地减少系统开销,但解码的成功率大大降低。另外,由于空调的遥控状态远多于电视机、DVD等。因为它需要传输大量参数,如温度、风力、湿度、加热、制冷等,并且也没有一个统一的标准。如果按“位”的方式来记录,复制成功率会大大降低。那么,怎样才能完善地记录下遥控数据呢?——合适的单片机就能为这些数据提供存储空间。

2.红外一体接收头的使用

一体化红外线接收器是一种集红外线接收、放大、整形于一体的集成电路,不需要任何

外接元件,就能完成从红外线接收到输出,并与TTL电平信号兼容的所有工作。没有红外遥控信号时为高电平,收到红外信号时为低电平。它的体积和普通的塑封三极管大小一样,适合于各种红外线遥控和红外线数据传输。图7是型号为HS38B的红外一体接收头,经过实验证实,它的实际工作电压不得低于4.0V。

图7中HS38B的引脚从左到右分别是:输出[OUT]、地[GND]、电源[VCC]。

图8~图10是我实验时红外一体接收头接收到的逻辑数据。为了使录制时的遥控器逻辑电平,和发射时的逻辑电平一致。我在输出端接了耦合电容,起到逻辑电平翻转的作用。当然,在制作遥控器时,耦合电容是不需要的,通过软件翻转即可。

每张图上面的两个波形(蓝颜色的),是遥控器发射时的逻辑波形;下面两个波形(红色的)是笔者制作的遥控器的波形。这些波形在自制的遥控器录制好红外编码后通过红外发射管发射出的。

程序设计思路

一、红外录制

单片机程序通过记录逻辑电平的长度来实现红外遥控的编码记录。当然,它的明显缺点是需要占用较大的RAM空间。但是它的学习成功率,比以某种固定长度记录“0”和“1”来学习红外信号的要高。

程序要先判断电路中的REC按钮是否被按下。按下后,LED灯常亮,进入录制模式。按下需要分配的按钮,如SB1,LED灭半秒后,又亮起,表示确认。现在,就可以拿起遥控器,对准红外一体接收头,按下要录制的按钮。录制好一次后,LED会灭半秒后再次亮起。需要再录一次,录制成功后LED灯就会完全灭了。现在才算真正完成了录制。为什么要录制两次呢?因为,有些遥控器的编码是交错的。奇数和偶数次的编码数据是不一样的,即第1次和第2次按下同一个按钮,它的编码是不一样的。但是,第1、3、5次或第2、4、6次按下的按钮编码是一样的。通常,遥控器的电源按钮的开和关,也是不一样的编码。我家里的空调遥控器开和关虽是同一个按钮,但是编码却是不一样的。

M8的定时器1工作在16位的定时器模式下,并设定为8分频,用于记录逻辑电平的长度,并用2字节,记录下逻辑电平的长度。当200ms左右,红外一体接收头没有电平变化,记录就自动完成了。

相关文档
最新文档