STM32F1 做可控硅移相控制,疑问

2019-07-21 04:27发布

首先这个可控硅移相控制,我之前在51上做过,成功的,现在用的是STM32F103C8T6,利用外部中断做过零检测电路,在交流电的过零点时启动定时器,定时时间保证在10ms以内,比如定时6ms,然后触发MOC3041打开可控硅,稍延时几us,断开MOC3041触发信号,因为断开触发信号后,可控硅会依然保持在下一个零点信号之前一直导通中,现在我按照这个原理来干,触发导通3041后,延时的时间在1000us以内,灯泡都不亮,把延时时间加大至1500us,灯泡亮了,一直闪烁,明显不对,没有实现调压效果,问题出在哪呢?
这个延时时间应该只要几us,或者几十us就行了,太大了,就不对了。
外部过零检测电路,我在做过测试,没问题,用LED在中断里看到效果了。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
爱问知识人
1楼-- · 2019-07-22 00:49
lvb 发表于 2019-3-3 17:03
你把UPWM=1;去掉能不能一直亮呢? 如果可以就是中断跟定时器时序配合有问题。
还有你需要确定一个过零点 ...

把upwm=1,去掉,灯泡能一直亮,肯定还是程序的问题,今天拿了个手持式的示波器,简单测量过零信号电路光耦输出端是个100hz的方波,F=IT=110=100HZ应该对吧,
爱问知识人
2楼-- · 2019-07-22 05:51
 精彩回答 2  元偷偷看……
爱问知识人
3楼-- · 2019-07-22 08:51
edmund1234 发表于 2019-3-3 15:22
理解错了你的程式
以为你的TIM3是设定为6ms,
但以上的都不应该有你说的问题

你这样的延时挺好,就借鉴你的了
爱问知识人
4楼-- · 2019-07-22 14:16
lvb 发表于 2019-3-3 17:03
你把UPWM=1;去掉能不能一直亮呢? 如果可以就是中断跟定时器时序配合有问题。
还有你需要确定一个过零点 ...

我这个过零检测电路,必须将外部中断设为上升沿触发中断对吧
lvb
5楼-- · 2019-07-22 19:50
爱问知识人 发表于 2019-3-5 15:10
我这个过零检测电路,必须将外部中断设为上升沿触发中断对吧

我以前的做法是上升沿开定时器中断,定时器设置导通角,最后下降沿关光耦
因为我发现stm32就算设置单边沿中断依然会进入两次中断
最好先看看波形,过零点前后下降沿到上升沿的时间,我用两个二极管的过零检测电路差不多间隔了2个ms,就是你能调压的范围只有9ms,并不是10ms
lvb
6楼-- · 2019-07-22 22:41
edmund1234 发表于 2019-3-3 18:48
可控硅不比Mos或三极管, 它不是你想象的, G极给个信号它就导通, 不给就关掉
它是依靠G极触发, 然后 ...

第一:我说的510R是光耦可控硅的限流电阻,不是过零检测的上拉电阻。
第二:R2的1.5K设置的很合理,220V转10V再经过全波整流后电压大约为14V,光耦的压降约为1V多,I=(14-1)/1.5K=8ma,并没有什么问题。
第三:还是光耦的导通压降问题,导致一个过零点会有两次中断,上一个波形到过零点的上升沿以及当前波形过零后的下降沿,而且这段间隔时间还不短,我用逻辑分析仪测过的

一周热门 更多>