、
原理是這樣:
1) 當(dāng)220v斷開時,光耦不導(dǎo)通,右側(cè)為一阻容電路,SIG_IN1電平是高電平
2) 當(dāng)220v導(dǎo)通時,在交流電的正半周期,光耦導(dǎo)通,3和4腳近似短路,SIG_IN1為低電平;在交流電的負半周期,光耦不導(dǎo)通,此時SIG_IN1電壓為多少呢? 注意并不是高電平。原因是電容要充電,需要一定的時間,時間常數(shù)為100K*2.2uF=0.22s。而220V交流電頻率為50Hz,周期為0.02s,負半周時間只有0.01s,電容遠遠沒有充滿電,所有對單片機來說還是低電平。
這樣就實現(xiàn)了在220V斷開時單片機檢測為高電平,當(dāng)220V導(dǎo)通時單片機檢測為低電平的邏輯。
附上實際測量的波形:
1)SIG_IN1 波形圖
2)光耦1腳和SIG_IN1波形圖
更新(2019年6月26日)
感謝評論區(qū)眾多網(wǎng)友的討論,有幾個地方在此補充一下:
1)上述電路前面2個電阻的選取問題,現(xiàn)在兩個都是100K,電流大約是0.5mA,這個電流設(shè)計的太小了,設(shè)計到20mA左右比較合適,具體參考你選用的PC817的芯片手冊。 這個電流同時會影響后端C17電容的放電速度。另外要考慮電阻封裝,由于電阻的電壓和功率較大,要保證不超過額定值,防止爆了。
2)IN4148的作用是保護光耦不被反向電壓擊穿
3)LED指示燈,可以前端,用來指示是否有電。