【有偿咨询】断电重开 测试电路
我在做一个小项目,想用现在一些流行的开关立即重开
的方式,来让程序转跳到另一个功能:
1)通电时,单片机 走正常程序。
2)断电时,单片机由电容维持(可能几秒);
3)重新通电时,单片机走另一个程序。
4)如果很久才重新通电,单片机还是走正常程序。
请有经验的师兄指导一下:
(我准备用 Arduino Pro Mini)
1)检测电路如何设计?
在220VAC那边,还是5V那边?(有电容维持)
2)是否用Interrupt?
3)断电时要把所有耗电的负载脱掉。
4)重新通电时,是否走另一个Interrupt?
有偿服务,请联系我。
陈先生 QQ1413 2757 93.
其他都好做,就是第四个“如果很久才重新通电,单片机还是走正常程序。”这个只有弄个时钟或者电池来计时 同意楼上,建议加个时钟模块,每运行一次loop,把监测到时间保存到EEPROM。后一次运行loop是判断当前时间和EEPROM储存的时间差,小于1秒则为一直通电,1-3秒认为短暂断电,3秒以上,长时间断电。
是的。
单片机是不能知道停电多久。
现在的产品,都是用电容来维持一个状态(不一定是
单片机,比如双稳态电路),再电容用完后,状态便
忘记了)。 这个设计比较简单。
时钟太复杂,没空间放。还是直接用大电容维持单片机
比较合适。
只是相关的硬件和软件不知如何写。
我20年没动手编程了,我学的时候
是用IBM XT TurboC的。
1)检测放在5V,加上二极管即可;放在220V还要考虑安全、隔离问题
2)用不用都行,看你怎么实现
3)当然,不然电容撑不了几秒
4)要不你看看我的实现思路:
init
flag = 0
loop
if 掉电了
flag = 1
关闭耗电的负载
if flag == 0 并且 没有掉电
正常的程序
if flag == 1 并且 没有掉电
另一个程序
我希望用 Interrupt 的方式来做, 原因是
正常程序可能很多 延时 和 等待的事件。
我理解的Interrupt 是一个硬件事件,直接
中断正常程序,立即处理断电的时间。
我的问题是,断电是一个中断,那么
再来电时,是否用另一个中断来做?
这样,程序会不会很容易出错?
我比较担心整流出来的波形,会不会
令CHANGE老是出现变动? (不过
猜想没用,实践是检验真理的
(唯一)标准,(怎能证明是唯一?)
还是要搭个电路来试试。
另外,如果在5V端做检测,电容前要
加个二极管。电容充满电时,是5V。 加上
二极管,就是整理降压输出要差不多6V。
程序写好了就行。
应该用低压降的二极管,大约是0.3V。另外二极管后的电容应该只向单片机供电,其他耗电负载从二极管前取电。
总之,实现的路线很多种,具体用哪种就要根据你的应用场合去考虑了。
准备用两个方法进行:
1)采用大电容的方法:
在5V断电时,作为一个中断;
关掉单片机的各种输出后,进入休眠
http://swf.com.tw/?p=525
根据资料,进入PowerDown后,电流
只有0.36mA。
按照1mA 3s 来计算,电容要3000uF。
因为我准备用Arduino ProMini,没有
什么其他能耗,所以,我会试用
5000uF 6.3V 的电容,看看效果。
2)如果上面的方法不成,就只能用时钟。
我已经买了DS1302 模块。
准备在断电时,还是把5V作为中断信号;
然后把所有能耗切断,把时钟存档到
EEPROM. 然后进入休眠。
每次启动时,单片机比如EERPOM
的时间和DS1302的时间,如果断电
时间少于5秒,便作为开关启动信号。
电容还是要加的,保证单片机有足够
的时间。电容大小 要试验才知道。
问题:
以上的方案,有没有可能移植到 ATMEG8
芯片?我有计划造一个特别小型的开关。
经过测试,用Arduino ProMini,
配上3300uF电容16V,可以保持
差不多半分钟。
市面的所谓6.3V电容,居然测试
的时候爆炸。
用法拉电容。:lol:lol 不要超过耐压
页:
[1]
2