我们在topemic网站上分享过一篇题为"单片机检测220V交流电通断电路"的文章,目前有近万次阅读,在这里做个总结分享给没有读过该文的朋友。
废话不多说,直接上图:
该电路工作原理如下:
- 当220V断开时,光耦不导通,SIG_IN1为高电平
- 当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电容的放电速度。另外要考虑电阻封装,由于电阻的电压和功率较大,要保证不超过额定值,防止爆了。