【有偿咨询】断电重开 测试电路-Arduino中文社区 - Powered by Discuz! Archiver

josephkcchan 发表于 2014-8-20 19:58

【有偿咨询】断电重开 测试电路



我在做一个小项目,想用现在一些流行的开关立即重开
的方式,来让程序转跳到另一个功能:
1)通电时,单片机 走正常程序。
2)断电时,单片机由电容维持(可能几秒);
3)重新通电时,单片机走另一个程序。
4)如果很久才重新通电,单片机还是走正常程序。

请有经验的师兄指导一下:
(我准备用 Arduino Pro Mini)
1)检测电路如何设计?
   在220VAC那边,还是5V那边?(有电容维持)
2)是否用Interrupt?
3)断电时要把所有耗电的负载脱掉。
4)重新通电时,是否走另一个Interrupt?

有偿服务,请联系我。
陈先生 QQ1413 2757 93.


coloz 发表于 2014-8-20 21:37

其他都好做,就是第四个“如果很久才重新通电,单片机还是走正常程序。”这个只有弄个时钟或者电池来计时

袁培根 发表于 2014-8-21 08:53

同意楼上,建议加个时钟模块,每运行一次loop,把监测到时间保存到EEPROM。后一次运行loop是判断当前时间和EEPROM储存的时间差,小于1秒则为一直通电,1-3秒认为短暂断电,3秒以上,长时间断电。

josephkcchan 发表于 2014-8-21 09:16


是的。

单片机是不能知道停电多久。

现在的产品,都是用电容来维持一个状态(不一定是
单片机,比如双稳态电路),再电容用完后,状态便
忘记了)。 这个设计比较简单。

时钟太复杂,没空间放。还是直接用大电容维持单片机
比较合适。

只是相关的硬件和软件不知如何写。
我20年没动手编程了,我学的时候
是用IBM XT TurboC的。



y_square 发表于 2014-8-21 11:27

1)检测放在5V,加上二极管即可;放在220V还要考虑安全、隔离问题
2)用不用都行,看你怎么实现
3)当然,不然电容撑不了几秒
4)要不你看看我的实现思路:
init
flag = 0

loop
        if 掉电了
                flag = 1
                关闭耗电的负载
        if flag == 0 并且 没有掉电
                正常的程序
        if flag == 1 并且 没有掉电
                另一个程序

josephkcchan 发表于 2014-8-21 18:31


我希望用 Interrupt 的方式来做, 原因是
正常程序可能很多 延时 和 等待的事件。

我理解的Interrupt 是一个硬件事件,直接
中断正常程序,立即处理断电的时间。
我的问题是,断电是一个中断,那么
再来电时,是否用另一个中断来做?
这样,程序会不会很容易出错?

我比较担心整流出来的波形,会不会
令CHANGE老是出现变动? (不过
猜想没用,实践是检验真理的
(唯一)标准,(怎能证明是唯一?)
还是要搭个电路来试试。

另外,如果在5V端做检测,电容前要
加个二极管。电容充满电时,是5V。 加上
二极管,就是整理降压输出要差不多6V。

y_square 发表于 2014-8-21 20:11

程序写好了就行。
应该用低压降的二极管,大约是0.3V。另外二极管后的电容应该只向单片机供电,其他耗电负载从二极管前取电。
总之,实现的路线很多种,具体用哪种就要根据你的应用场合去考虑了。

josephkcchan 发表于 2014-8-31 23:11


准备用两个方法进行:
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
芯片?我有计划造一个特别小型的开关。

josephkcchan 发表于 2014-9-8 20:53


经过测试,用Arduino ProMini,
配上3300uF电容16V,可以保持
差不多半分钟。

市面的所谓6.3V电容,居然测试
的时候爆炸。

2001xk 发表于 2014-9-29 11:56

用法拉电容。:lol:lol 不要超过耐压
页: [1] 2
查看完整版本: 【有偿咨询】断电重开 测试电路