单片机如何检测市电通断?(应用甚广~)

我们在topemic网站上分享过一篇题为"单片机检测220V交流电通断电路"的文章,目前有近万次阅读,在这里做个总结分享给没有读过该文的公众号朋友。

废话不多说,直接上图:

该电路工作原理如下:

  1. 当220V断开时,光耦不导通,SIG_IN1为高电平

  2. 当220V导通时,在交流电的正半周期,光耦导通,3和4脚近似短路,SIG_IN1为低电平;在交流电的负半周期,光耦不导通,此时SIG_IN1电压为多少呢? 注意并不是高电平,原因是电容要充电,需要一定的时间,时间常数约为t=R30 * C17=100K * 2.2uF=0.22s。而220V交流电频率为50Hz,周期为0.02s,负半周时间只有0.01s,在这个时间内,电容远远没有充满电,所有对单片机来说还是低电平。这样就实现了在220V断开时单片机检测为高电平,在220V导通时单片机检测为低电平的逻辑。

附上实际测量的波形:光耦1脚和SIG_IN1波形图

可以看到在220V导通期间,由于C17不断的充电、放电,电压是一个较低的值,对单片机IO来说是低电平。

针对该电路,有很多网友提出了非常好的问题,在这里把问题和解答也分享给大家。

问题1:图中已经有了D5( 1N4007),反向等于是截止的,那么D8(1N4148)是否多余呢?

回答:反向电压时,理论是截止,完全关断的,但是实际总会有漏电流,加上D8,可以保证落在光耦反向压降不大于1N4148导通压降,防止反向击穿。


问题2:使用PC817的时候,“IN4148的作用是保护光耦不被反向电压击穿”,这个IN4148一定需要吗???

回答:可以不加。理论上1N4007在加反向电压时应该马上截止,但实际上它并不是马上截止的,而是需要一个很短的时间 (反向恢复时间),虽然这个时间很短(1-2us), 但在这个时间会有反方向电压加到光耦输入端,我没有测试过会不会造成损坏,但毕竟是隐患。快速导通二极管1N4148可以防止反向电压引起的损坏。


问题3:保留D8,去掉D5是否可以?

回答:正常是可以的,但是有D5肯定保险一些。反向电压会使D8导通,但毕竟需要压差和时间。有可能会把光耦反向击穿。


问题4:R30,C17可以去掉吗?不接VCC,直接进MCU?

回答:直接进MCU,利用MCU里面的上拉电阻是可以的,如果还是用上面的检测原理,那么外面加一个电容即可。如果把电容也去掉,需要MCU通过软件去判断50Hz的高低电平来判断220V是否通断。


问题5:2.2uf的贴片电容,在持续的充放电,一直在不停的充放电,会导致使用寿命很短吗?

回答:充放电不会影响电容寿命。比较常见的是电解电容在高温下失效。


问题6:如果不用PC817,而是用PC814双向光耦,是否可以?是否能简化电路?

回答:可以,就是成本上会稍高一些。


问题7:R33(100K)和R39(100K)分别置于L,N上,跟一个电阻200K至于一个交流线上,这样有什么好处吗?在安全距离满足的情况下,我觉得是一样的效果,不知,这样的理解是否正确。

回答:2个电阻,每个电阻的功率是1个电阻的一半,电阻选型时就不需要那么大的额定功率了。用两个100K还有一个好处是,把弱电和强电部分隔离开,安全性增强了。


问题8:想请问,电容充满后,往哪放电,如果把电容放在接入220V之后,光耦之前呢?效果会如何?

回答:在交流电的正半周,PC817内部的LED发光,此时充满电的电容就会通过PC817内部的光敏三极管放电。放电电流从PC817的4脚,经光敏三极管,流到3脚,也就是地(同时也是电容另一极)。电容放到光耦前面理论上应该也是可以的,但对电容耐压要求会高好多,成本更高一些。


问题9:这个电路可以用于检测220V直流电的通断吗

回答:当然是可以的。


问题10:你好,我按这个电路连接后,电路中的电流只有零点几毫安,PC817没工作呀

回答:现在的电流大约0.5mA,不过在我这边使用的PC817是可以正常工作的。你的没法工作,那你尝试减小电阻使其电流工作在20mA左右,具体参考你选用的PC817的芯片手册。这个电流同时会影响后端C17电容的放电速度。另外要考虑电阻封装,由于电阻的电压和功率较大,要保证不超过额定值,防止爆了。


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

嵌入式Linux

微信扫描二维码,关注我的公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十年经验工程师为何被裁?

事件去年年底,公司来了一位工作十余年的工程师,据说软件硬件都会,应聘的岗位是XX算法工程师。比较巧的是,这位工程师是我上一家公司隔壁部门的同事。我们均来自大厂,但是是国企,二线城市。所以尽管他在前公…

飞康CEO:敢于向传统的灾备法则说“不”

近日,借美国飞康软件公司创办人兼首席执行官胡艾瑞徵先生访华期间,比特网记者对其进行了独家专访。 飞康软件公司成立于2000年,在过去的9年中, IPStor已经发展成为飞康包括整合重复数据删除功能的虚拟磁带库(VTL)、持续数据保护(C…

做10多年测试的老何

题图:老何是我的同事,他也喜欢篮球,因为篮球,我们两的话题比较多。老何做了十几年的测试工作。我们比较有猿粪的是,12年我在TCL,当时他也在TCL工业研究院,我们两的办公室也就相邻两栋楼。不过那…

推荐一个C++大佬

这里向大家推荐一个优质C公众号,号主程序喵,硕士毕业,浸淫C多年,帮助过不少C新手入门和进阶,可以说一句“精通C”啦。他搞过人脸识别,研究过自动驾驶,人生就是不断的挑战自我,现在从…

Silverlight HLSL实现背景滚动

一个Silverlight HLSL的简单例子,通过HLSL实现图片上的像素点的的水平移动,从而实现一个滚动背景的效果。 首先把Shader写出来吧。我这里借助了Shazzam ,界面如下: 下面是我的HLSL: sampler2D input : register(s0);//…

极简的 PNG 编码函数 svpng(),用来学习C语言,真的很爽

这个是在知乎上看到的大神写的文章,如果是学习C语言入门的,我觉得可以从这个入手,特别是对图像感兴趣的。文章中提到的「我」,指的是「Milo Yip」大神。1. 什么是png格式图片?相对地,PNG(Por…

STM32项目(六)—— 中文电子捡货标签

STM32项目(六)—— 中文电子捡货标签 宗旨:技术的分享是有限的,分享的精神是无限的。 传统物流行业仓储拣货采用纸单作业,拣货完成后再进行验货、出货,容易造成拣货错误、拣货速度与效率低、新员工培训时间…

如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart?

RT-Thread Smart 系列连载序号内容1《当“树莓派”遇上RT-Thread Smart——应用编程入门》2《RT-Thread Smart和树莓派:wget & cURL网络客户端》3《如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart?》4sdl图形类应用5dropbear及ssh server…

STM32项目(七) —— 智能仓库管理系统

智能仓库管理系统 随着经济的发展,对企业的生产经营要求提高,企业必须综合利用各种先进技术,在网络与信息技术的支持下,改进现在的生产经营模式和组织结构,增加利润。随着企业规模的扩大。高效方便的仓库管理系统&…

花三千块钱求推荐一个靠谱的C++工程师

直接说重点有个朋友想招一个C工程师,因为项目的原因,不可能现在招新人培养,想招到一个熟练C的工程师,所以想在公众号里面广而告之。如果是你推荐的人入职后,就可以获得三千奖励,如果是你本人入职&#xff0…

老外码农酒后吐槽,该说的不该说的全说了!!

上个月,一个有着10年码龄的程序猿喝高了,在社交网站Reddit上吐槽。然后被疯狂转发,点赞。可说是讲出了咱们很多码农的心声。咱们国内这边也有不少版本了。我们也凑凑热闹翻译一版。跟大家一块儿欣赏一下:今天是有点儿高了&#xf…

Intel官宣开发RISC-V处理器:明年首发7nm工艺

近日业界盛传,Intel计划以20亿美元收购RISC-V IP供应商SiFive——后者的产品已被80多家公司采纳,设计了200多种产品,出货量极大,广泛用于各种加速器。虽然双方对于收购都拒绝置评,但深入合作已经展开。Intel官方宣布&a…

SCCM2007 R2的部署前准备,SCCM系列之一

SCCM 2007 R2的部属前准备<?xml:namespace prefix o />System Center 是微软著名的管理平台软件&#xff0c;在实现Microsoft的MOF&ITIL的IT管理理念的过程中发挥了很重要的作用&#xff0c;System Center可以在MOF的每一个运维象限中都有对应的System Center产品协…

硬件基础 —— 电阻

硬件基础 —— 电阻1、电阻基本知识电阻&#xff1a;在电路中对电流有阻碍作用并且造成能量消耗的部分。主要物理特性是变电能为热能&#xff08;耗能元件&#xff09;&#xff0c;符号R&#xff08;单位&#xff1a;Ω&#xff09;。2、电阻的作用&#xff1a;分流、限流、分压…

史上最全的LED点灯程序,你都掌握了吗?

摘要&#xff1a;你点亮过多少板子的LED灯呢&#xff1f;有很多小伙伴留言说讲一下STM32、FPGA、Liunx他们之间有什么不同。不同点很多&#xff0c;口说无凭&#xff0c;今天就来点亮一下STM32、FPGA和Liunx板子的LED灯&#xff0c;大家大致看一下点灯流程和点灯环境以及点灯流…

B站硬核up主稚晖君:对于3年以上软件开发工程师,我有这些建议!

稚晖君&#xff0c;何许人也&#xff1f;本硕就读于电子科技大学华为AI架构师热爱硬件开发B站硬核UP主“栈溢出”工程师加入“华为天才少年计划”或许当你看到这一堆Title的时候并不觉得有什么特别&#xff0c;那么接下来看看他的一些作品。作品1&#xff1a;B站最强小电视这条…

同事说rar压缩有风险,让我用zip压缩文件

在现在最常见的压缩文件有zip、rar、7z三种&#xff0c;它们都有各自的优点和缺点。我们用一句话来概括一下&#xff1a;7z压缩率最高&#xff0c;RAR安全性高&#xff0c;ZIP使用范围广。文件压缩打包是最为常见的一种分享方式了&#xff0c;而众多的压缩格式中zip仍然是主流。…

JAVA实现概率计算(数字不同范围按照不同几率产生随机数)

程序中经常遇到随机送红包之类的情景&#xff0c;这个随机还得指定概率&#xff0c;比如10%的机率可以得到红包。那么java怎么实现一个简单的概率计算了&#xff0c;见如下例子&#xff1a; int randomInt RandomUtils.nextInt(1,101); if(randomInt < 10){ //100里面1个数…

AKI-H8串口通信

串口通信是一种通信接口简写SCI&#xff0c;它可是实现异步和同步两种传输模式。可以思考一下同步和异步的区别。 所谓同步就是接收方和发送方使用的是同一个时钟&#xff0c;步调一致的处理数据。典型的就是CPU和内存&#xff0c;通过总线存取数据。特点就是快&#xff0c;发送…

字节取消大小周,部分员工:心疼,每个月少拿 1W 块

如图&#xff0c;是脉脉最近的一个热帖&#xff0c;头条昨天全员发邮件取消了大小周&#xff0c;原本是一件好事&#xff0c;减轻大家的工作压力&#xff0c;努力向 workbalance 靠拢&#xff0c;可是看着风向好像不太对&#xff0c;我们继续看下 TOP 的几个回复。下面是反对头…