标题: 单片机如何判断外部电源的通电时长? [打印本页]

作者: forest415    时间: 2020-4-13 03:14
标题: 单片机如何判断外部电源的通电时长?
求助:怎么判断外部电源的通电时长要精确到毫秒



现在有一个2V的小灯它会随机关闭然后又随机打开;
如何用单片机来检测它每次打开后通电的时长,以控制继电器作相应的操作;
比如这个小灯亮了10.5秒,我想让继电器开关一次,小灯亮了20秒呢就让继电器开关两次。


附上一张牛逼的电路图:



作者: wulin    时间: 2020-4-13 05:09
可以采用光敏二极管测灯光或光耦测小灯电源,输出低电平到单片机某端口。单片机相应端口呈低电平启动定时器计,呈高电平关闭定时器。读取计时时间后清0计时变量,预备下一次计时。再根据获取的时间数据判断控制继电器。


作者: hanz219    时间: 2020-4-13 05:46
1,需要有一个检测灯是否亮的电路。可在灯的回路中串一个小电阻(不要影响灯的亮度),可需要放大电路(如运算放大器)。
作者: hanz219    时间: 2020-4-13 05:49
先设计硬件电路,用单片机计时,当到过预定的时间后,控制继电器的动作。
作者: HC6800-ES-V2.0    时间: 2020-4-13 07:50
问题不太明白:
    灯亮的判断标准是什么?
1、可以是控制,例如单片机输出高电平,表示控制灯亮,但灯不一定真亮了,例如灯坏了。这个就简单,用定时器。只要那个高电平一打开,就开定时器。
2、可以是电流,就是说灯必须是真实亮了的。这就要用AD了,一检测到电流,表示灯亮了,就开定时器。
作者: aking991    时间: 2020-4-13 08:39
用单片机的IO口检测电源电平+单片机的定时器计数功能就可以了,先用1个IO口(中断口也可以)检测一下电源前端电平(电容前,不然没办法检测到即时掉电),然后一出现断电就停止计数,一来电即开始计数,这样就可以计算出上电时长了,但按你说的功能好像并不是那么简单,可能要详说更好
作者: 学习单片机lq    时间: 2020-4-13 13:52
单片机能直接检测灯的电压,电流最简单省事,需要电路直接连接。不能直接连接可以用光耦。连光耦也不能连接就只能用光敏器件测量灯光。
作者: forest415    时间: 2020-4-13 19:31
wulin 发表于 2020-4-13 05:09
可以采用光敏二极管测灯光或光耦测小灯电源,输出低电平到单片机某端口。单片机相应端口呈低电平启动定时器 ...

就用光耦测电源方法,不管灯坏不坏,灯只是作为通电的参考,程序能帮我写下吗万分感谢。
作者: forest415    时间: 2020-4-13 19:32
HC6800-ES-V2.0 发表于 2020-4-13 07:50
问题不太明白:
    灯亮的判断标准是什么?
1、可以是控制,例如单片机输出高电平,表示控制灯亮,但灯 ...

不管灯的好坏,主要是检测有没有通电
作者: forest415    时间: 2020-4-13 20:03
学习单片机lq 发表于 2020-4-13 13:52
单片机能直接检测灯的电压,电流最简单省事,需要电路直接连接。不能直接连接可以用光耦。连光耦也不能连接 ...

连接要多少v啊我试了2v的连接没反应
作者: forest415    时间: 2020-4-13 20:05
aking991 发表于 2020-4-13 08:39
用单片机的IO口检测电源电平+单片机的定时器计数功能就可以了,先用1个IO口(中断口也可以)检测一下电源前 ...

就是这么简单,就是检测通电时长根据时长做操作
作者: 学习单片机lq    时间: 2020-4-14 01:15
forest415 发表于 2020-4-13 20:03
连接要多少v啊我试了2v的连接没反应

因为直接连通只有2V高电平,不满足单片机识别要求,加一个9014或8050三极管就行了,基极串1K电阻,集电极连到单片机,再来一个上拉电阻。或者换成两个灯串联,工作就有4Ⅴ,不工作0V,单片机能直接识别




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1