打印

如何用单片机检测220v电压并计时

[复制链接]
9807|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
andylee123321|  楼主 | 2011-5-28 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 andylee123321 于 2011-5-30 21:21 编辑

检测220V输入电压,当有220V电压时,开始计时(单位s),及时的时间显示在四位数码管上(计时时间0-9999秒),当220V输入电压断开时,计时停止。四位数码管显示时间保持不变,当再次检测有220V输入电压,再从新计时并显示。尤其是如何用普通的51单片机去检测220v电压?谢谢个位了  谢谢!!!!!!!!!!!

相关帖子

沙发
tcc8073| | 2011-5-28 15:43 | 只看该作者
使用过来零中断做,但是有个问题,在主程序中做延的时候会出现错误,所以程序要处理得很好

使用特权

评论回复
板凳
xiaolifeidao| | 2011-5-28 20:26 | 只看该作者
加个继电器 单片机中断 查询都可以啊

使用特权

评论回复
地板
NE5532| | 2011-5-28 22:11 | 只看该作者
直接降压,做过0以后输到单片机外中断上,对50Hz信号计数形成秒,就直接Ok了。

使用特权

评论回复
5
S448| | 2011-5-28 23:57 | 只看该作者
3楼正解,做这个连单片机都可以不用,直接硬件实现

使用特权

评论回复
6
chunyang| | 2011-5-29 01:46 | 只看该作者
最简单的办法是用光耦,将光耦的LED侧反向并联一个二极管,然后串一个限流电阻直接接到220V交流上,这样每个交流周期会输出一个脉冲信号,当这个脉冲信号存在时即可认为交流有电,当脉冲丢失一个周期以上即可判断交流失电,统计脉冲的个数即可知道交流上电的时间。

使用特权

评论回复
7
tcc8073| | 2011-5-29 08:04 | 只看该作者
大家的意思我大概了解,我的做法是在中断程序里设置标志位,进入中断标志位就设置为1,回到主程序后就把这个标志为设置为0,如果发现这个标志位为0的话,就认为是断开了交流电,但是大家有没有考虑过在主程序里做延时判断的时候,在主程序和中断同步的情况下,中断会在主程序的延迟程序里每20MS中断一次,不管主程序的延时是多长,到了一定的脉冲个数后,这个脉冲个数和主程序的乘积就会是20MS的整数倍,这时候就会出现误判,所以这个做法只能做到一定时间内的计时,比如主程序延时为21.555MS,那么出现误判断的最长时间是21.555X4000MS,其中4000是周期个数,所以这种方案本身应该是有问题的,如果干扰严重的话,时间就会很不准,如果使用内部晶振,并在高温下使用的话,干扰会更突出,因为21.555MS延时会不准,

使用特权

评论回复
8
NE5532| | 2011-5-29 08:52 | 只看该作者
楼主思路混乱。想两个问题:什么叫“有电”,什么叫“没电”?如何让程序知道。另外就是这么简单的数数程序,为啥中断内中断外的传来传去?你直接在中断里计数,有啥问题?

使用特权

评论回复
9
tcc8073| | 2011-5-29 09:25 | 只看该作者
本帖最后由 tcc8073 于 2011-5-29 09:32 编辑

我说有电的意思是有50HZ的交流电信号,没有电的意思是50HZ的交流电信号没有了,我判定有没有50HZ信号的方法:在过来零中断里给标志位置1,在主程序里给标志位清0,如果在主程序里判定到标志位为0就表示过零信号没有;另外我数数确实是在中断中进行的,判断多少个脉充的程序是在主程序中完成的,不知道这么说有没有说明白,

使用特权

评论回复
10
NE5532| | 2011-5-29 09:32 | 只看该作者
交流电不是准确的50Hz,有闪断和相位不连续的现象,虽然是偶然。你要思考这样的问题,对你的应用环境,这样的闪断算不算断电,从你的描述来看,我觉得肯定不算。那如果把交流电降压、整流滤波,让单片机来检测这个直流信号的有无,是不是会更方便?因为从你描述里看到你记录的是秒,几个毫秒的误差对你来说根本不是问题。

有了这个分析,你才能选择你的硬件方案——IO检测直流电平或者是50Hz进中断,从上面的分析来看,IO检直流应该是上选,至于计时的时基信号,如果要求不高,可以直接用50Hz计数,就是上面说的进中断的方式,数数只要在中断里进行,就不会掉数,主循环爱咋判断都可以。如果要求时间比较准确,就上个32768的晶体。

上面过程中最重要的还是需求分析,你还是没说清楚什么叫有电,什么叫没电。

使用特权

评论回复
11
tcc8073| | 2011-5-29 09:39 | 只看该作者
可能不能简单的叫有电没有电,简单说我只判定过零信号有没有,再算有从有过零信号到没有过零信号这段时间就可以了,原理上是简单的,其实我做下来发现使用这过零信号判定不是个好方案,直接用直流判定可能会好点

使用特权

评论回复
12
NE5532| | 2011-5-29 09:43 | 只看该作者
可能不能简单的叫有电没有电,简单说我只判定过零信号有没有,再算有从有过零信号到没有过零信号这段时间就可以了,原理上是简单的,其实我做下来发现使用这过零信号判定不是个好方案,直接用直流判定可能会好点 ...
tcc8073 发表于 2011-5-29 09:39


就是叫有电没电,不过对每个人的定义不一样,所以说你没分析清楚。

比如奥运会的照明,交流掉100mS的周期,卤素灯会熄灭,就叫没电,就得打PP,你这里如果后面是个电动机,100mS的闪断可能连感觉都没有,就叫有电。

任何问题要从真正的需求入手,你才能设计出合格的系统啊。

使用特权

评论回复
13
tcc8073| | 2011-5-29 09:51 | 只看该作者
本帖最后由 tcc8073 于 2011-5-29 10:15 编辑

这么说吧,我这个过零信号是通过常闭温控管传过来的,当温度过高温控管就断开,所以我直接说有电没有电,其实本质是温度管的开关问题,我要做的就是判定这个从开通到关闭的时间,使用过零中断来做原理上没有问题,其实我在做的时候就发现上面说的问题,其实原来客户使用的就是判定直流的方案,现在被做硬件的改成使用过零的方案,我做的时候才发现问题的,本来这也不是什么很难的东西,使用判定直流完全满足要求,只是改成使用过零电路而已

使用特权

评论回复
14
gx_huang| | 2011-5-29 10:40 | 只看该作者
这么简单的项目,大家都讨论的不亦乐乎的。

使用特权

评论回复
15
tcc8073| | 2011-5-29 10:55 | 只看该作者
本帖最后由 tcc8073 于 2011-5-29 11:05 编辑

项目简单不简单不是问题,问题是一种思路,同样的缝衣针,德国人三代人都在做,每根卖100多美金,我们中国人做,几元卖出去还要互相杀价,人家还不愿意买,因为经常断,换针的人工和各种费用比买德国人的都贵,做一口针简单吗?打铁容易不,每天拿锤把烧红的铁成型就可以,日本人可以用一块铁做成刀,1W多美金一把还要预订,我们做把菜刀都做不好,不管是什么,要做稳定,做好都不容易,世界上没有简单的东西,只有简单的人,不同人看同样的事物感悟都不一样,简单的东西聊聊,也会悟到不少东西,每个人都有优点和看问题的角度,欣赏别人的观点和思路也是一种乐趣,也是一种提高.NEC5532和chunyang等都是高手,抱着治病救人的善心指点我,在次表示感谢.

使用特权

评论回复
16
听海夕阳下| | 2011-5-29 11:06 | 只看该作者
谢谢大家的指点

使用特权

评论回复
17
wangwang1008| | 2011-5-29 14:59 | 只看该作者
互感器

使用特权

评论回复
18
andylee123321|  楼主 | 2011-5-30 01:29 | 只看该作者
谢谢个位的热心回答    不好意思  我想我搞错一个问题,就是220v的电压不是交流电,各位热心人士实在不好意思,我想这样实现起来可能就简单一些了,大家有啥意见?谢谢了!!

使用特权

评论回复
19
andylee123321|  楼主 | 2011-5-30 01:41 | 只看该作者
14# gx_huang
不好意思  我是个新手所以这对来说还是有点难度的,麻烦知道的话,给点意见,谢谢!!

使用特权

评论回复
20
andylee123321|  楼主 | 2011-5-30 01:50 | 只看该作者
实在不好意思,由于我没把题目写清楚,所以照成大家的讨论都集中在交流电上了,实在不好意思,麻烦个位再给点意见,继电器和光耦我有想过,可是继电器好像基本都是弱电控制强电,很少有220v的控制电压的继电器,可能有,我没查到资料,我就是想弄明白,如何用单片机去检测220v的电压,不是交流电(再次向大家道歉,对不起!!!),然后你们是用什么方法去计时的,我的想法和你们差不多,不过我想是用中断口检测到信号,然后在中断里打开定时器0去计时,用12MHz的晶振,这样会很精确,然后出中断后关闭定时器0.继续显示计时时间。每次进入中断先将数码管显示清零。这是我的想法,不知道个位怎么想?谢谢个位热心人士了,谢谢!!!!很急……谢谢!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

1

粉丝