Ich habe Sanftstarter mit den Prozessoren PIC16C74A / F77 entwickelt. Nulldurchgang kann schwierig sein, wenn Sie auch in lauten Umgebungen arbeiten müssen.
Wenn Sie nicht möchten, dass der Prozessor von der Leitung isoliert ist, ist nichts falsch daran, dass ein paar hochwertige Widerstände einen CPU-Pin speisen. Ich würde ein paar Schottky-Dioden verwenden, um die internen Schutzdioden nur aus Gründen der Robustheit zu erhöhen, aber es wird gut funktionieren. Wenn Sie eine Isolierung benötigen, verwenden Sie einen Transistorausgangsoptoisolator. Achten Sie auf die Schaltgeschwindigkeit des Opto und minimieren Sie den Transistorkollektorstrom, um die Schaltgeschwindigkeit zu maximieren.
Nachdem das gesagt ist, gehen wir zum Lärm über. Wenn Sie etwas anderes als Widerstandsheizung phasensteuern, haben Sie mit Rauschen zu kämpfen, was bedeutet, dass Sie sehr wahrscheinlich mit Nulldurchgangsrauschen zu kämpfen haben. Machen Sie nicht den Anfängerfehler, den Nulldurchgangseingang einem Interrupt-Pin zuzuführen. das wird Ihre Software in eine rauchende Masse von Gemeinheit verwandeln, wenn der Prozessor versucht, mit einer Unmenge von Interrupts umzugehen. (Ich spreche aus Erfahrung.) Wenn ein RC-Filter oder ein weiterentwickelter Tiefpassfilter in die Leitung geschaltet wird, wird nur eine Phasenverschiebung eingeführt. Wenn Sie damit arbeiten können, großartig. Wenn nicht (ich musste mich mit 50 / 60- und 400-Hz-Systemen befassen), müssen Sie andere Mittel ausprobieren.
Bei meinem eigenen Design habe ich mich in der Software darum gekümmert, indem ich die Leitung abgefragt und im Wesentlichen eine Abstimmungsroutine erstellt habe, bei der Transienten ignoriert wurden. Die Phasenverschiebung lag in dem Rahmen, den ich bewältigen konnte, sie war schnell und würde auch bei starkem Rauschen nicht ausfallen. (Getestet in einer Einrichtung, in der die Filterkappen von einem Induktionsofen entfernt wurden, habe ich noch nie eine so laute Leitung gesehen!) "Latch" den Nulldurchgang und dann würde der Mikrocontroller ihn bestätigen, bevor der nächste Interrupt gesetzt werden könnte.
Alles in allem denke ich, dass das zuverlässige Finden des realen Nulldurchgangs in jeder praktischen Situation eines der schwierigeren Elemente des Softstarter-Designs war. Das Schließen des Regelkreises war zweitrangig, aber meistens nur das Stimmen. Es scheint eine absolut einfache Sache zu sein, aber ich habe in dieser Zeit einiges über den Unterschied zwischen Theorie und Praxis gelernt. :-)
Bearbeiten, um die Abstimmungsroutine zu beschreiben:
Wenn ich mich richtig erinnere, hatte ich eine E / A-Leitung, die hoch war, als die Leitung über Null lag, und niedrig, als die Leitung unter Null lag. Die Abstimmungsroutine hat einfach diese Zeile abgefragt, und wenn 2 der letzten 3 Stichproben gleich waren, habe ich die Tatsache akzeptiert, dass die Zeile Null überschritten hat. Es ist der Wahlschaltung eines UART sehr ähnlich, um Zeichen und Leerzeichen zu erkennen. Der Vorteil einer solchen Schaltung ist, dass Ihre Phasenverschiebung fest ist (2 * Abtastrate) und Sie sie auf die Art des Rauschens abstimmen können, das Sie erleben. Ich kann mich nicht ohne weiteres daran erinnern, wie schnell das Polling war, aber wenn ich eine Vermutung wagen würde, würde ich 8 kHz sagen, da diese Zahl in meinem Kopf hervorsticht.