万能空调遥控器的学习模式算法
扫描二维码
随时随地手机看文章
引 言
随着社会的进步与科技的发展,人们的生活水平有了很大提升,空调日益普及。空调有多种型号,不同型号的遥控器不得串用,因此设计一款万能空调遥控器很有必要。万能空调遥控器最重要的一个功能就是学习模式,使之能够学习各个空调的编码,以便遥控对应的空调。
1 学习模式总体说明
万能空调遥控器的学习模式主要分为三个步骤 :
(1) 利用红外模块捕捉空调遥控器的遥控信号 ;
(2) 利用单片机识别红外信号并暂时存储 ;
(3) 将捕捉到的信号进行确认后存在存储芯片中,以备调用。
学习模式流程如图 1 所示。
利用单片机识别红外信号有两种方案,具体如下。
方案一 :当单片机自身的运算速度极快时,直接使用定时器计时,外部使用 I/O 输入模式,使用上升与下降沿中断捕捉并记录每个间隔时间及高低电平以备用,每识别一段波便存储下来备用,分别使用对应的按钮调用对应的指令段。对应的流程如图 2 所示。
方案二 :当单片机自身的运算速度不够快,即计时器不够快、精度不够时,只采集对应的高低电平及其模糊时间, 其模糊时间必须达到足够的辨识度,能够识别其中的逻辑 0 与 1,由于不同的空调有不同的逻辑脉宽时间,因此只要获得信号输出高低电平的模糊时间,将其固定在某个脉冲时间的周围,逐一试用即可找到。流程如图 3 所示。
2 空调遥控红外信号说明
现有的红外遥控包括 PWM(脉冲宽度调制)和 PPM(脉冲位置调制)两种方式,两种方式编码的代表分别为 NEC 和 PHILIPS 的 RC-5,RC-6 以及 RC-7。本文主要介绍 NEC 与 RC-5。
NEC 格式的特征如下 :
(1) 使用 38 kHz 载波频率 ;
(2) 引导码间隔为(9+4.5)ms ;
(3) 使用 16 位客户代码 ;
(4) 使用 8 位数据代码和 8 位取反的数据代码。
NEC 协议通过脉冲串之间的时间间隔实现信号调制。逻辑 0 由 0.56 ms 的 38 kHz 载波和 0.56 ms 的无载波间隔组成 ;
逻辑 1 由 0.56ms的 38kHz载波和 1.68ms的无载波间隔组成 ;结束位是 0.56ms的 38kHz载波。逻辑 0与 1如图 4所示。
3 学习模式红外接收识别
学习模式红外接收识别是学习模式的第一步,当控制器进入学习模式后,根据提示按下对应的按键,控制器进行学习记录,其实现方式主要有两种 :
(1)当按下对应的按键时,遥控器发出红外信号,万能遥控器通过红外接收模块接收信号,并将信号传输到单片机的 I/O 口用以处理,其信号的实质为电平的高低变换,只是持续的时间不同,红外信号的存储实质是存储其高电平时间及低电平时间,因此识别记录信号时必须获得每个电平变换的时间,此方法简单有效,但消耗容量 ;
(2)红外遥控的逻辑 0与 1实质是一个固定脉冲的不同占空比,可使用双相编码,因此可将每个指令识别为逻辑 0与 1 后再存储。
4 学习模式红外编码存储
为防止遥控器断电,需将指令存储到专门的存储芯片上。每个存储位置都有固定的位置信息,因此可将学习到的信息存储到固定的位置以备读取。例如,位置 1可直接存储调节模式的红外指令信息,在需要调节模式指令时,直接从位置 1 获得。
5 学习模式红外遥控
对学习到的指令进行检验,若不正确,则重新学习。由于对单片机进行内部调用较快,因此为了减少时间消耗,每次重启都将指令信息从存储芯片复制到单片机中。
红外信号的发射包括以下两种方式 :
(1)对应于学习模式红外接收识别方案一,将对应指令复制到单片机后,获得电平翻转时间,将每个电平的翻转时间放入数组,进行定时器定时,每到一定的时间,控制红外发射模块翻转电平即可控制空调。红外遥控流程如图 6 所示。
(2) 对应于学习模式红外接收识别方案二,此处获得的指令是识别后的十六进制数,将其还原(有引导码及间隔时间等),在其逻辑 0 与 1之间加入间隔,将引导时间放入数组,并将逻辑 0 与 1 分别打出一个子程序,根据数组中的数分别调用对应的子程序,对应流程如图 7 所示。
6 结 语
本文对万能空调遥控器的学习模式进行了论述,通过红外接收模块接收信号、单片机处理信号、存储芯片存储信号、红外发射模块发射信号,采用不同的方式对信号进行处理、保存及发射,从而达到学习的目的,使得万能空调遥控器可针对所有空调进行遥控。