DIY电灯遥控开关电路
一、功能构思
使用单片机解码。上电默认关灯,每按一次遥控器按钮改变一次灯的状态。最好另设一个手动按钮,以便未带遥控器时开关灯。
二、硬件部分
由于用的是单片机解码,硬件部分自由度很大。首先要接收到遥控器发出的红外光信号,并将它放大,解调成脉冲信号。这个任务就交给红外接收头了。红外接收头型号繁多,外形各异。只要是解调频率是38kHz的脉冲型接收头都行。本人用的接收头型号为SFH506-38。为降低功耗,原来设想用双向可控硅作开关,后来考虑到假如用的是节能灯,可能关灯后会有灯管闪烁问题,权衡之下就用了继电器,型号是JQC-3,线圈电压l2V。单片机选AT89C2051。光耦是废手机充电器上拆的,型号为PC718。变压器次级电压12.5V,功率lW左右。其余元件见下图的标注。PCB极见中图。下图是元件安装图。
三、软件部分
红外编码格式是有标准的,如常用的NEC编码,就是由前导码、机器码、数据码,重复码四部分组成。前导码包括9ms低电平和4.5ms高电平。结束码是0.56ms低电平。机器码和数据码共32位二进制数,分4个字节。前2个字节是机器码,用以区分每个遥控器。后2个字节是数据码,用于区分各个按键。为了达到校验作用数据码的2个字节互为反码。每位数据码也由一个低电平和一个高电平组成。一般规定以0.56ms低电平和0.56ms高电平表示逻辑0,0.56ms低电平和1.68ms高电平表示逻辑l。单片机解码可以采用查询方式或中断方式。
以使用外部中断0方式为例:红外接收头收到信号后输出低电平触发中断,程序转至中断子程序。在中断程序中首先判断前导码是否正确。具体可以每X毫秒判断一次INT0口电平状态,连续判断N次(NX应该稍小于9ms)。
只要有一次不是低电平就视为干扰信号,程序退出。若N次判断均为低电平,则程序原地踏步,等待前导码中4.5ms高电平的到来。4.5ms高电平到后也用上述方法进行多次,当然这时INT0脚应该每次都为高电平,并且多次判断的累加时间应稍小于4.5ms。如果前导码正确,接下来开始解第一位机器码。因为机器码数据“0”和“1”的区别仅是高电平的延续时间不同,所以我们等机器码的前半部分0.56ms低电平到来后先延时Y毫秒(5.6<Y<1.68)再将此时INT0口的电平送入CY位,并通过带CY位循环移位指令将解出的码移入累加器A中暂存。解出8位机器码后将累加器中数据传送到内部某个RAM单元。第二次8位解完后放入内部RAM另一单元。如此循环直至将16位机器码全部解出并分别放入内部RAM的2个单元中。解数据码的方法也和解机器码的一样。这个小遥控器的编码很特别。图5是用COOL EDIT PR02.1软件捕获的波形图。可见它没有前导码,只有3个字节的数据码。每位码由1个低电平和1个高电平组成。假设我们规定用1.5ms低电平和0.6ms高电平表示数据码0,用0.6ms低电平和1.5ms高电平表示数据码l,并按高位在左低位在右的原则分析波形后,得到此遥控器的十六进制编码是FBH、BEH、FOH。如果要用这个遥控器来控制电灯,可以预先把它的编码加载于RAM中,再将接收到的红外信号解出码后和它相比较,如果相同,说明是这个遥控器发出的指令,灯的状态就改变一次。解码的方法可以借鉴前面介绍的原理,做小小的修改即可。完整的程序如下:
该程序初始化部分主要是开启外部中断1,并将遥控器的数据码送71H、72H、73H单元。主循环部分判断手动按钮,按钮每闭合一次灯的状态就改变一次。中断子程序先是将红外信号解码,解码后的数据存入74H、75H、75H单元,并分别和71H、72H、73H中的数据比较。如果相等则改变灯的状态。
硬件焊接完毕,将烧写有上面程序的89C2051插入电路中,只要元件无误上电就能正常工作。
红外遥控电灯开关电路图
一、电路原理
本人经过反复试验,提出了一种简易红外遥控电灯开关的电路方案(上图):遥控发射器可使用家中任何一种红外发射器代用,不需专门制作;遥控接收电器选用普通二极管和三极管等元器件,成本低,易制作,每套只需9元左右。
电路原理简易型电灯遥控开关电路原理图如下图所示。整个电路可以分成三部分。
1、下图3中,IR为红外线遥控接收头,未接收到红外线信号时,1脚输出高电平,接收到红外线信号时,1脚输出一连串低电平脉冲。
2、图4中,R4、C2与R7、C3组成两个积分电路,VT4、VT5、K组成继电器控制电路。
3、图5中,发光二极管作为电路工作的指示灯。
电灯平时或上电后的初始状态是VT1导通,VT2截止,VT5截止,继电器K不工作。
短按遥控器按钮(小于0.5s),在这较短的时间内,因C3容量远大于C2,故B点电位很快升到高电位(约1V左右),而A点电位上升不到0.6V,因此VT3不能导通,只有VT2导通,这样,C点为高电位,VT5导通,继电器K动作,其接点K-1、K-2同时趿台,K-2接通电器电源。
这时即使IR不再收到信号,因电源经R11向VT5提供偏置,故VT5保持导通,K仍继续吸合,达到短按遥控器按钮实现开灯的目的。
长按遥控器按钮(3秒以上)时,IR输出低电平脉冲使VT1输出高电平脉冲,经VD1整流后送至A点、B点进行积分处理,最终使A点电位大于1V(实测为1.3V左右),VT3导通,D点为高电平,VT4导通,C点为低电平,致使VT5截止,K释放,K-1、K-2断开,达到长按遥控器按钮实现关灯的目的。松开遥控器按钮后,IR不再收到红外线信号,C2、C3放电,VT2、VT3截止,电路又进入等待状态。只有再次短按遥控器按钮,电路才会重新动作,重复遥控开灯的过程。
二、电路的测试
第一步:用在K-2处接上发光二极管和5.1k的电阻代替电灯,见图6。
在一个没有电视机的房间里,用康佳电视机遥控器作为开关遥控。在12小时内,二极管能正常工作。
第二步:在有康佳电视机的大厅里,继续用康佳遥控器遥控,但当用遥控器关电视机时,灯的亮灭也随着变化。作品在远离遥控器8m时才不发挥作用。也就是说,遥控距离大概是8m,它的启用有可能会影响其他使用该遥控器设备的正常工作。
第三步:用不同的遥控器(我们用了美的空调的,摩托车的开关,普通红外发射器等)对作品进行遥控,遇到与第一、第二步相同的现象。这说明作品能给任何遥控器控制。
第四步:在做好对作品绝缘的准备后,把接二极管和电阻改为接上台灯,用市电供电,见图7。
重复上面三个步骤,所得的现象与上面的类似。
三、作品的缺点与改进及相关说明
1.从上面的测试可知,该设计做出的实物使用起来可能造成生活的混乱——关电视机也关灯了,关灯却连空调也关了。所以要专门设计一个红外发射器与对应的接收器,但这样成本就大大的提高了。其中一个解决的办法就是,在有电视机的地方就用空调的遥控器或者用电视机遥控器里面的不会影响此时电视机状态的按钮。其他的类似。
2.本作品采用焊接的方法进行制作,一方面是为了说明普通老百姓也可以制作,二来对于小批量的制作成本会更低,三来说明此方案非常容易实现。
评论
查看更多