hailing 发表于 2016-1-16 15:14:36

【连载】做个电池供电的红外遥控开关

事情的起因是小房间开关设计的不合理,开关与床距离太远了晚上按开关不方便。之所以选择红外的原因是之前在论坛上下载了个红外遥控的代码,做了个红外接收板,控制双刀双掷的继电器用于原来房间的楼梯灯的开关中间,手机自带红外发射功能,这样晚上按个开关还是很方便的,另外红外遥控虽然简单,但是我觉得可靠性一点也不差,也不用匹配等问题,差不多对准位置按下发射按钮就可以了。原来的方案如下:使用变压器供电供电没压力,普通继电器吸合就一直吸合就可以了。但是小房间的开关那里只有2根线火线和接电灯的一根线,用于电灯的开关。论坛上之前也有人专门讨论过单火线取电,但是单火线取电说使用节能灯会导致灯微亮。而且单火线取电这个我之前没接触过,需要时间学习的话周期就比较长,所以还是使用红外遥控,要使用电池供电,就必须要低功耗的做法,另外RF或蓝牙我不熟悉,对于电工来说要写一大段代码还是比较吃力的,那么还是使用老办法,红外遥控,但是控制方式要整个修改下。
       直接说下最终的手工品,使用300mAh的电池,1s唤醒一次,设计充电一次使用1年。
       电池本来打算用1000mAh的,结果找个盒子太小了,只能塞下300mAh的了。加了线圈和肖特基全波整流+HT7150稳压+M7对电池进行无线充电,也是觉得外部放一个充电接头固定是一个问题,一年才充一次,干脆绕个线圈简单。
先分析如何省电的问题。
1:单片机的选择,选择8脚的单片机,体积小点,之前淘宝上买了几片ATTINY13A ,这个是我能找到的8脚的,带ADC,低功耗也可以,带PWM的芯片,之前在WIN8下装了avr studio还能使用dragon下载程序,但是后来不知道怎么的studio根本认不到dragon,没法下载程序就没办法了,本来想在老电脑的xp下下载,后来想想算了,的确AVR以死,在WIN8下下载个程序都这么麻烦,不折腾了,还是使用STC的吧。
       继续上淘宝,STC的8脚的STC15W104系列还不错,带了唤醒定时器,虽然没有ADC,但是我这个应用用不上,还有就是DIP8的封装的价格也便宜,做这种飞线调试的DIP封装的还是最适合的。就选它了。
2:先测试下STC15W104的功耗,在完全掉电模式下0.2uA,但是这个只能被中断唤醒,可以用来做发射部分---发射按键按下,单片机唤醒,发射红外信号。开启掉电唤醒定时器时功耗在2uA,也还可以,达到现在单片机的主流的水平。比最早的89系列强多了,那时候只能掉电,没有唤醒定时器,在这种应用上完全不能使用。继续测试:最小5.5M速度跑,需要4.4mA(3.7V),4.7mA(5V),最大33M跑,5V时21mA。功耗速度可以按照0.7-0.8mA/MHz计算。mA/MHz的效率不算高。
3:接收端使用的红外接收头,HM338大概1mA的功耗,HM638好像省电点0.6mA。基本上这种模拟的传感器要想功耗是几个uA的是没有的。那么就要单片机定时去对接收头供电--延时--读有没有信号--判断--处理--关接收头电源--单片机自己也睡眠处理。换成传感器也是差不过的道理。要想功耗低,就要确定各个时间。
1》多长时间唤醒一次?时间长了固然省电,但是给人的操作感觉就觉得慢了。我按下按键后怎么要等老半天才能开关,等不起。这个我设为了1s的时间唤醒一次。
2》唤醒之后给HM338供电,马上干活,低功耗要求的一点就是干活麻利,慢了都是消耗电池的电。
3》等待HM338稳定,刚上电后338会输出一个时间长度不确定的低电平,观察1ms后稳定了。程序中取了延时时间设为1.5ms。这个延时时间单片机进入掉电来减少这1ms单片机的消耗,是不是很抠门,连这个1ms的5mA左右的功耗都要省。


mowin 发表于 2016-1-16 15:25:59

表示关注

hailing 发表于 2016-1-17 21:07:02

继续
3》接收部分重新定义了数据格式,因为我觉得越来的NEC编码模式有点长,完整的读取的话要最长要读2倍正常长度的NEC编码,这样很费电。
      采用波特率2000的,因为是0.5ms,比较好计算;还可以更高些,这样更省电,但是需要继续测试下HM338的接收极限。
       设0.5ms为一个bit的话,接收部分采用了4个低电平bit作为信号的开头,后面就是1或2个bit,依此为高低高低这样,8个1或2或使用3bit的高做结束。

4》开关器件的选择:原来的继电器是不能用了,因为一直吸合要耗电,选择了磁保持继电器,找到的是单刀双掷的9V继电器,单线圈,需要升压电路和H桥驱动。升压采用IO外加三极管和电感升压。继电器电压低的话,电流大,一般锂电池的输出电流能力较大,直接找3.3V的磁保持也可以尝试下。我手边只有9V的话加了升压电路,好处是可以慢慢升压,使用电容中的电对继电器拉闸,100A的磁保持继电器都可以轻松用高电压,大电容来完成拉闸,对电源的输出能力和输出电压没要求。

5》无线供电采用0.3mm的漆包线绕15T,后面4个肖特基全波整流。简单的加了20uF电容后接了HT7150+M7就对电池充电了,电池自带保护板,应付设计中几次充电没问题。
无线充电的发射器使用淘宝上买的使用STM8003方案的,修改了程序,直接使其一直2对互补的PWM信号输出,不去关协议和握手的问题,这样一直能够充电,比较实用。

6:测试,整个平均功耗大概30uA,主要是唤醒后HM338的1mA+单片机的5mA电流。当接收到有效数据需要充电时需要30mA的电流。然后驱动H桥控制继电器动作。

Vmao 发表于 2016-1-17 21:37:19

上新华龙睡蜂系列 定时唤醒功耗很低

hailing 发表于 2016-1-19 07:33:15

简单的测试了下,6.5秒发信号开关,接收端连续工作了五天。继续设计发射端的电路。

hailing 发表于 2016-1-20 09:22:10

有谁知道手机上截图为什么用qq浏览器无法上传图片如何解决?
上代码,代码部分接收数据判断的逻辑是直接用依次判断,而且是依次判断,对攻城狮来说不像程序猿那么轻松的写一个判断函数。

hailing 发表于 2016-1-20 09:24:24

Vmao 发表于 2016-1-17 21:37
上新华龙睡蜂系列 定时唤醒功耗很低

有数据手册能上传下看看吗?淘宝上没找到睡峰是哪个型号的。

Vmao 发表于 2016-1-20 10:34:10

hailing 发表于 2016-1-20 09:24
有数据手册能上传下看看吗?淘宝上没找到睡峰是哪个型号的。

efm8sb1         
页: [1]
查看完整版本: 【连载】做个电池供电的红外遥控开关