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

2019-07-21 04:27发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
36条回答
edmund1234
2019-07-21 17:41
爱问知识人 发表于 2019-3-3 11:49
你说的不对,我定时时间是1ms中断一次,过零信号触发定时器开始从0ms开始计时,计时到比如6ms的时候,触 ...

理解错了你的程式
以为你的TIM3是设定为6ms,
但以上的都不应该有你说的问题
我猜你的问题是, Tim3的溢出时间错了
再就是触发维时不够,通常我做可控硅控制时, 触发时间一定不是规格书上的极限, 因为那是要求峰值电流计算下的时间.
如果是我, 我不会用delay_us,而是会改为
num++;
if (num==6){
  UPWM=0;
}
if (num==7){
  TIM_Cmd(TIM3, Disable);  
  UPWM=1;
  num=0;
}

仅供参考

一周热门 更多>