注:本作品为首届立创商城电子制作节15强作品之一,经作者授权发布并标注原创,转载请注明,未经允许不得用作商业用途。原文链接:http://club.szlcsc.com/article/details_491_1.html
10000元大奖!第二届立创商城电子制作节开始报名啦!超低门槛、自由发挥、轻松入围,更有第三方专家评委点评打分、荣誉证书和定制奖杯!报名时间到6月23日截止,按要求简单发帖即完成报名,赶紧参加吧!官网介绍:http://www.szlcsc.com/go/17523dej
现带大家回顾一下首届立创商城电子制作节的15强作品之一《家用风扇温控/手动同步调速插座》:
一. 作品简介作品催生于以下几个方面:
1.家里小孩微微发烧,不敢开空调,又不能直吹风扇,开摇头1档,还是感觉风力大了。不开风扇,夏季酷热无风还真是折腾!
2.冷暖交替季节,晚上睡觉,无风,吹风扇半夜又容易受凉,风扇定时旋钮不能根据温度自动关闭风扇,折腾!
3.办公室有规定,早上不能开空调,酷热天,直吹风扇也不舒服。
4.淘宝上找不到带温控的风扇调速插座!
于是就萌生了改进风扇调速插座的想法,作品中使用可控硅进行风扇调速功能,同时增加了热敏电阻实时采样环境温度,如此就可以用于低温条件下自动关闭风扇。有了这两大块功能,软件就可以做出梦寐以求的效果:模拟自然风!!
作为家用风扇调速,就应该满足大部分使用场合,因此产品设置了如下几个功能模式:
1)手动调速模式:用于人为手动干预自动调节风力大小,解决风扇死板的三档调速问题;
2)温度恒速模式:根据温度上下限进行自动调节风力大小;
3)模拟自然风模式:采用正弦波应用到风力大小调节上,模拟自然风效果,提高舒适度;
实测效果感触:吹风扇就跟坐在树荫底下微风徐徐一样,孩子再也不怕着凉了,晚上睡觉也非常舒服,夏季开着风扇晚上自动根据环境温度自适应调整风速,低温时候自动关闭,冷暖呵护,舒服!!
现在作品开发用途仅仅是针对风扇无极调速并模拟自然风,后续采用可控硅并联扩流,将插座功能普及化,做成智能插座,可以实现更多功能,比如:
1)返璞归真,不进行斩波控制,还原普通插座功能,想带什么负载就什么负载;
2)定时功能,可以定时烧水,定时关灯,定时关电视,定时关充电器等等;
3)预约开电功能;
4)风扇风速0~180度根据用户自定义曲线进行风速控制,随心随意让风扇风速吹出满意的自然风。
二. 作品亮点市场上产品良莠不齐,好产品价格不亲民,低价产品功能阉割,除了变频,随意改变风扇风速的另一个手段就是采用可控硅控制,而且这种方案价格低廉,容易接受。可控硅导通后过零自然关断,总所周知,市电正负半波上指定角度触发即可改变输出电压有效值,进而达到调节风扇风速作用。同样是可控硅控制,同样是风扇调速,但是加入特殊软件算法后,小作品也可以实现大作用!!
本作品亮点有:
1. 技术上,作品中采用UPS市电锁频锁相方式进行移相触发可控硅导通,实现了任意角度(0~360度)实时触发可控硅作用。有个这技术,就可以随意控制风扇风速大小,进而使得风扇吹出接近自然风的风速风力,而且这技术使得可控硅触发精度非常精准!!
(题外话:没学过控制算法的,基本上都会用电压过零进行定时器控制,例如市电电压过零延迟1ms后触发可控硅,这种方法固然可以控制,但是不尽人意。市电频率是实时改变的,前一周期电压过零点与下一周期过零点会有几百us偏差,这种普通算法就不能随心所欲控制风精度)
2. 创新性:
1)作品通过软件控制算法模拟自然风去控制风扇风速,使得风扇吹风更加舒适;(加入自定义曲线,用户可以随意设置符合自己需求的自然风风扇,更加人性化!)
2)手动调速模式能够解决普通风扇不能任意调速的诟病;
3)加入温度控制,低温时自动关闭风扇,使得吹风入眠更加舒适;
4)优化软件算法,使得程序运行更加快速,控制更加得心应手;
5)低成本:作品成本低廉,适合市场推广。
三. 系统构架图参赛作品的PCB构成图(当做鼻祖吧):
系统构成图:
它是插座,因此你可以把它当做普通插座使用。加入了软件算法后,它就如同如虎添翼,可以实现更多的意想不到的功能,但是现在它仅仅作为风扇调速插座进行参赛,后期扩展软件功能后,它将不再不仅仅是风扇调速插座,而是智能插座了!!
四. 原理图(备注:R26、R27为手工焊接进去)
实现原理:
1.LNK623PG电源部分用于产生5Vdc/500mA工作电源,该电压经过CJA1117-3.3V降到系统工作电压3.3V;
2.EL817用于市电过零采样,采样脉冲经过LPC822进行市电同步;
3.FJ3361BH用于人机界面显示;
4.BT136S双向可控硅采用MOC3023光耦驱动,驱动信号为200us同步脉冲;
5.采用电位器进行手动风速调节,同时增加按钮,用于系统参数设置以及模式切换;
6.T1为热敏电阻,这里必须将热敏电阻受温部分引出到外部,避免受到插座内部温度的影响;
系统工作过程:
LPC822实时采样环境温度、市电过零信号,同时同步输出Trac可控硅驱动信号,控制外部电压的斩波状态。
五. 材料清单关键元器件:
1.高频变压器拆卸于通用手机充电器,如果有条件也可以自己绕制。
2.LPC822M101JDH20单片机【改PCB板可直接用立创商城的LPC824M201JHI33E(¥5.06)替代】
(以下器件均在立创商城采购)
3.3段式LED数码管显示: FJ3361BH(¥2.18)
4. EL817光耦(¥0.309)
5. CJA1117-3.3V稳压管(¥0.644)
6. NPN三极管S9013W(¥0.136)
7. 光耦驱动MOC3023(¥1.69)
8. 双向可控硅BT136S(¥1.00)
9. 电位器R09-C103-3P(5K)(¥0.694)
10.热敏电阻NTC 热敏电阻/MF52 100K ±1%(¥0.215)
11. 抑制管P6KE200A(¥0.298)
12. 电源管理芯片LNK623DG-TL(¥2.84)
关键元器件共计:¥15.0660
除此之外,PCB板打样,外壳,一些常用电阻电容,¥35可以侧地拿下硬件(除了变压器,立创商城制版焊接可以一条龙服务)。
六. PCB实物图七. 软件部分的描述1. 市电同步锁相锁频原理:
想希望可控硅按照我们预期的导通角进行导通,就需要对市电采样波形进行同步,同步方式有很多种,早期UPS里面常常采用VCO的方法,现代数字技术的发展已经很少采用这种方法了,取而代之的是直接采样过零点脉冲,然后使用定时器做同步,学过自动控制原理的应该知道,这个过程其实就是设计一个随动系统。
1)首先,你得有基本电压过零脉冲波形:
2)接着你的MCU必须有1路定时器,如果有2路定时器,那么同步效果就更好;
参考点均是电压波形的过零点,实时同步的结果是定时器虚拟的中断应该与参考点波形一致,达到稳态结果。但问题是这么多脉冲波形,直接取电压过零点作为参考点?答案是否定的!!我们只以单个周波进行比较匹配,但是记住比较误差值不是定时器虚拟波形的上升沿-参考波形的上升沿 或者这两者的下降沿,这样计算得到的误差值也是可以用,但是MCU的定时器计数值都是无符号整型的,这么相减就有可能得到负数值,对处理结果只会加大难度!!
正确的做法是使两者波形误差达到180°,例如:取定时器虚拟波形上升沿 - 参考波形的下降沿 = 半波周期值
这样你也可以随意设定所需要的相位误差值(该值即为自动控制原理的基准值),然后经过PID控制定时器周期进行同步参考波形了。
测试实际同步波形如下:
设定参考相位点为45°后:
2. 可控硅调试过程:
独钓千古愁提示用MOC3021替代TLP525G!这个结果是错误的,调试半天还是不出波形,采用反并联可控硅也还是不行,折腾了一天,更换光耦驱动为MOC3023完美输出斩波波形:
(注:为了配合按键高度,把LED数码管使用废旧PCB抬高!)
手动模式下,显示屏显示手动调节角度,可调角度为0~180度,实测结果如下:
接入55W落地扇,调试风扇到1档,接着调节相位角0~150任意调节,风扇风速明显可以改变!等装到外壳里面后,估计就漂亮了!!
3. 3种工作模式算法:
该产品结合赵工的意见以及实际应用情况,设置为3种模式:
1)手动调速模式:
该模式直接手动控制可控硅导通角,从0°~150°全可控触发,触发脉冲时长为100uS,触发完成后立即关闭触发信号,正负半波分别触发,如此得到半周期10ms全可控斩波,风扇速度也就全控了。
说明:由于触发时间为100us,从150度后会影响正负半波交叉点,因此这里只做到0~150度触发,实际测试结果150度已经接近关闭,满足要求!!
2)温度恒速模式:
该模式分为3个控制区间:
温度低于TL时,关闭风扇;
温度高于TH时,全速运行风扇;
温度∈[TH ,TL]时,计算公式: (TH - TL)/100 = (t - TL)/Radio ,解出Radio即可得到控制风扇速度!!
3)模拟自然风模式:
规律性的风速我归结为正弦波算法,所不同的是周期不一致。上面所绘制的控制算法正半波与负半波时间是可以随便设定的,单位为秒。算法如下:
①温度低于TL时,停止风扇;
②温度高于TH时,风速峰值 = 100%;
③温度∈[TH ,TL]时,计算公式: (TH - TL)/100 = (t - TL)/Radio ,解得到该环境温度下的风速峰值;
程序初始化时,根据正半波设置周期时间生成正弦表,接着按照正弦表-时间轴进行间歇性往复运行:缓慢加速到风速峰值---->缓慢减速到风速峰值------>停止运行负半波设定时间周期---------
4. 热敏电阻采样程序:
热敏电阻采样都是通过B值计算得到测试的温度,关键点是如何快速?
这里用到了fast_log函数:
static float fast_log(float val)
{
int x = *(int *)&val;
register float log_2 = ((float)(((x >> 23) & 255) - 128)) * 0.693147181f;
x &= 0x807FFFFF;
x = 0x3F800000;
val = *(float *)&x;
log_2 = ((-0.232778773f) * val 1.38629436f) * val - 0.456588242f;
return (log_2);
}
实际测测试比C语言的log速度快5~7倍。
5) 模拟自然风程序中需要计算三角函数,如果采用C语言的库,那么势必也会减缓系统运行速度,这里使用CORDIC迭代求正余弦,实际测试非常理想,详细的介绍见:
http://www.cnblogs.com/huangqiwei/p/4177067.html
八. 操作说明系统支持3种模式:
“E 0”为手动调速;“E 1”为温度恒速;“E 2”为模拟自然风;
手动模式下LED数码显示纯数字,模式菜单下显示“E 0”字样,剩下的4个菜单页显示的是:温度上限设置、温度下限设置、模拟自然风运行时间、模拟自然风停止时间。
有兴趣的同仁可以借鉴:http://v.youku.com/v_show/id_XMTc3OTM1NDk4MA==.html
¥14买了一个定时器控制器插座,把里面的垃圾器件去掉,只要外壳,然后把我的板子整进去:
大功告成!
九. 总结DIY体会:
“要么忙着活,要么忙着死”,总是把工作忙挂在嘴边,有新想法后跟别人分享,但是自己却没有亲自去动手,隔几天后想法变成死法,沉寂在天天加班的轮回旋律中。生活中缺少了DIY能力,工作上习惯于公司布置项目,然后整日整夜加班忙于老板的项目,如此的我们容易迷失生活中的自我。如果你有想法,你有创造力,那么挤出一点时间去DIY吧!拖到明天你永远别想拥有自己的作品。
作品未来规划:
1.将LED显示数码管替换为OLED屏,并联可控硅扩流,扩展插座功能,未来智能插座会具备如下功能:
a)定时功能:适用于定时烧水壶、定时煮饭、定时吹风等用户;
b)预约功能:预约功能用于早晨自动煮粥,自动开启电视,或者自动开灯等;
c)开关功能:模拟插座上的开关按键,恢复插座普通的任意带负载功能;
d)风扇功能:增加用户自定义风速-时间曲线,让用户随心所欲自定义自己心目中的自然风,比如梯形变化风速、三角波变化风速、双曲线变化风速等等;最高理想是随意在屏幕上绘制曲线,风扇按照曲线吹出曲线变化的风速;
2.后续继续完善作品,并做成产品,适用一个月后就发布到淘宝网上,惠民价格,科技改变生活!!
给主办方立创商城的建议:
生活中很多产品还有有待于我们去改进,如果一味以技术热点来评判,势必会忽略许多优秀的作品。好的产品就应该是用来改善生活质量,造福百姓!
注:作者原帖有更详细的制作细节和资料下载以及讨论,作者后来还推出了改进方案,有兴趣的朋友可到原帖查看:http://club.szlcsc.com/article/details_491_1.html
「关于」立创商城(WWW.SZLCSC.COM)成立于2011年,致力于为客户提供一站式电子元器件线上采购服务,成交量全国领先。自建6000多平米现代化元器件仓库,现货库存超40000种。本文由立创商城原创,转载请注明出处。
,