Answers:
我使用PIC16C74A / F77处理器设计了软启动器。如果您还必须在嘈杂的环境中工作,那么过零可能会很棘手。
如果您不需要将处理器与线路隔离,则可以使用几个为CPU引脚供电的高阻值电阻器。就鲁棒性而言,我将使用几个散装二极管来增强内部保护二极管,但效果很好。如果需要隔离,请使用晶体管输出光电隔离器。注意光电开关的开关速度,并最小化晶体管集电极电流以最大化开关速度。
话虽如此,让我们继续讨论噪音。如果您要控制除电阻加热以外的任何相位,那么您将面临噪声的困扰,这意味着您很可能会遇到过零噪声。不要把将过零输入馈入中断引脚的菜鸟错误;当处理器尝试处理大量的中断时,这将使您的软件变成一团糟。(我是从经验上讲的。)在线上添加RC或更高级的低通滤波器只会引入相移。如果可以,那就太好了。如果没有(我必须处理50/60和400Hz系统),那么您必须尝试其他方法。
在我自己的设计中,我通过轮询线路并从根本上制定了忽略瞬变的投票程序来在软件中进行处理。相移在我能处理的范围之内,它非常快,即使在重噪声下也不会消失。(在他们从感应炉上取下过滤器盖的设施中进行了测试,以前我从未见过如此嘈杂的生产线!)如果要重新设计,我想我可能会尝试一种涉及“锁存“零交叉”,然后微控制器会在设置下一个中断之前对其进行确认。
总而言之,我认为在任何实际情况下可靠地找到真正的过零是软起动器设计中比较棘手的部分之一。关闭控制回路是次要的,但主要只是调整。这似乎是一件非常简单的事情,但是我在那段时间里学到了很多关于理论与实践之间差异的知识。:-)
编辑以描述“投票”例程:
如果我没记错的话,我有一条I / O线路,当该线路高于零时为高,而当线路低于零时为低。投票程序只是对那条线进行轮询,如果最后三个样本中的两个相同,则我接受该线过零的事实。它与UART的表决电路非常相似,可检测标记和空格。这样的电路的好处在于,您的相移是固定的(2 *采样率),您可以针对遇到的噪声类型对其进行调整。我不记得该轮询有多快,但是如果我冒昧地猜一个话,我会说8kHz,因为这个数字在我的脑海中浮现。
为什么不使用光耦合器?Vishay的SFH6206具有两个反并联的LED,因此它可以在电源电压的整个周期内工作。如果输入电压足够高,则输出晶体管导通,并且集电极处于低电平。但是,在过零附近,输入电压太低而无法激活输出晶体管,其集电极将被拉高。因此,您在每个零交叉处都会得到一个正脉冲。
可能有很多方法可以做到这一点……但是如果我这样做的话,我会使用一个隔离变压器,以防万一。绝对不建议将电源直接连接到微控制器,即使通过大电阻也是如此。
我猜您的选择是使用一个较大的电阻分压器连接至微型麦克风,或使用一个小型变压器将市电电平电压降至微型麦克风的范围。当然,您也可以将两者结合使用。
如果您不想使用微控制器,则可以始终使用比较器并对电压进行0v测试。比较器的脉冲将很短,但是也有一些方法可以解决该问题。