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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7694|回复: 10

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

[复制链接]
发表于 2014-8-20 19:58 | 显示全部楼层 |阅读模式


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

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

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


发表于 2014-8-20 21:37 | 显示全部楼层
其他都好做,就是第四个“如果很久才重新通电,单片机还是走正常程序。”这个只有弄个时钟或者电池来计时
发表于 2014-8-21 08:53 | 显示全部楼层
同意楼上,建议加个时钟模块,每运行一次loop,把监测到时间保存到EEPROM。后一次运行loop是判断当前时间和EEPROM储存的时间差,小于1秒则为一直通电,1-3秒认为短暂断电,3秒以上,长时间断电。
 楼主| 发表于 2014-8-21 09:16 | 显示全部楼层

是的。

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

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

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

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



发表于 2014-8-21 11:27 | 显示全部楼层
1)检测放在5V,加上二极管即可;放在220V还要考虑安全、隔离问题
2)用不用都行,看你怎么实现
3)当然,不然电容撑不了几秒
4)要不你看看我的实现思路:
init
flag = 0

loop
        if 掉电了
                flag = 1
                关闭耗电的负载
        if flag == 0 并且 没有掉电
                正常的程序
        if flag == 1 并且 没有掉电
                另一个程序
 楼主| 发表于 2014-8-21 18:31 | 显示全部楼层

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

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

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

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

发表于 2014-8-21 20:11 | 显示全部楼层
程序写好了就行。
应该用低压降的二极管,大约是0.3V。另外二极管后的电容应该只向单片机供电,其他耗电负载从二极管前取电。
总之,实现的路线很多种,具体用哪种就要根据你的应用场合去考虑了。
 楼主| 发表于 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
芯片?  我有计划造一个特别小型的开关。

 楼主| 发表于 2014-9-8 20:53 | 显示全部楼层

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

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

发表于 2014-9-29 11:56 | 显示全部楼层
用法拉电容。 不要超过耐压
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 10:41 , Processed in 0.535613 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表