首先这个可控硅移相控制,我之前在51上做过,成功的,现在用的是STM32F103C8T6,利用外部中断做过零检测电路,在交流电的过零点时启动定时器,定时时间保证在10ms以内,比如定时6ms,然后触发MOC3041打开可控硅,稍延时几us,断开MOC3041触发信号,因为断开触发信号后,可控硅会依然保持在下一个零点信号之前一直导通中,现在我按照这个原理来干,触发导通3041后,延时的时间在1000us以内,灯泡都不亮,把延时时间加大至1500us,灯泡亮了,一直闪烁,明显不对,没有实现调压效果,问题出在哪呢?
这个延时时间应该只要几us,或者几十us就行了,太大了,就不对了。
外部过零检测电路,我在做过测试,没问题,用LED在中断里看到效果了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
把upwm=1,去掉,灯泡能一直亮,肯定还是程序的问题,今天拿了个手持式的示波器,简单测量过零信号电路光耦输出端是个100hz的方波,F=IT=110=100HZ应该对吧,
你这样的延时挺好,就借鉴你的了
我这个过零检测电路,必须将外部中断设为上升沿触发中断对吧
我以前的做法是上升沿开定时器中断,定时器设置导通角,最后下降沿关光耦
因为我发现stm32就算设置单边沿中断依然会进入两次中断
最好先看看波形,过零点前后下降沿到上升沿的时间,我用两个二极管的过零检测电路差不多间隔了2个ms,就是你能调压的范围只有9ms,并不是10ms
第一:我说的510R是光耦可控硅的限流电阻,不是过零检测的上拉电阻。
第二:R2的1.5K设置的很合理,220V转10V再经过全波整流后电压大约为14V,光耦的压降约为1V多,I=(14-1)/1.5K=8ma,并没有什么问题。
第三:还是光耦的导通压降问题,导致一个过零点会有两次中断,上一个波形到过零点的上升沿以及当前波形过零后的下降沿,而且这段间隔时间还不短,我用逻辑分析仪测过的
一周热门 更多>