转自:http://user.qzone.qq.com/8932867 这是应一个朋友要求制作的红外遥控插座,构思了几天动手做了一个,半年前投入使用,一直反映效果良好,后来自己又相继做了几个放在家里用,大大方便了日常生活控制家用电器。把资料整理一下发在这里,欢迎电子爱好者一起来讨论电路及编程思路,谢绝任何非技术交流仅想索要程序代码或HEX文档的人,本人宁授人渔,不授人鱼。 这个遥控器要实现的功能是可以自动学习任意红外编码格式,然后通过红外遥控开或关来控制用电设备。电路图如下,采用一片STC的2052芯片来完成,看中它是因为其内部有EEPROM,可以存储学习到的波形资料,外围结构相对简单,一个单片机最小系统加上红外接收头、按键、LED显示、继电器驱动电路即可,实际电路中,C2C3R3均没有安装,电路正常工作。
编程思路:红外信号由一组组高低电平的信号组合而成,一般采用不同长度的高、低电平来表示“0”或“1”,虽然各种不同红外编码芯片编码方式不一样,但其最终结果均是表达为高或低电平的一组波形,因此,这里采用测量高、低电平时间长度来进行识别,程序中采用定时器进行计数,在学习状态下,当有红外信号来到时,开启计数器进行计数,当红外信号状态翻转时,记录下此时计数值,并重新计数,直至所有信号计数完毕,数据存入STC2052的EEPROM中;在正常工作状态下,接收到红外信号,并进行计数,计数结果与存储在EEPROM中数据进行比较,如果全部数据相符,则认为解码正确,触发相应控制。 编程难点:处理好计数中断和红外中断的关系,学习模式和工作模式如何做到共享解码程序。 实现功能:工作模式下,短按按键,可以开、关电源,相应LED亮或灭。在电源关闭状态下,长按按键数秒直至LED开始闪烁,则进入学习状态,此时快速短按下红外遥控器任一键,LED灯熄灭,表示学习成功,然后即可使用此键控制电源开、关。进入学习模式后,LED一直闪烁,如果超过10秒没有检测到红外信号,则退出学习状态,原先学习的按键继续有效。 以下是制作的效果图,因为电路较为简单,所以采用万用板来实现,电路需要5V电源供电,采用手机充电器的开关小电源供电,整个电路都安装在86型电源盒内,盒表面开孔引出按键、LED灯、红外接收头,固定使用热熔胶,实际使用中,测试过电视、功放、收音头等遥控器均可以正常控制,部分空调遥控也可以。
|