Welche Kante ist besser für die Auswahl eines Triggers?

Ich habe ein 100-Hz-Signal mit einer schnellen Anstiegszeit und einer langsameren Abfallzeit. Dies ist die Ausgabe von einem Nulldurchgangsdetektor. Das Signal wird mit einem Arduino-Eingangspin verbunden. Arduino kann einen Interrupt bei der RISING- oder FALLING-Flanke des Signals erzeugen. Ich habe sie getestet und beide funktionieren (anscheinend) gut, aber ich frage mich, ob es einen Grund gibt, eine Kante der anderen vorzuziehen.

Das ist das Signal:

Geben Sie hier die Bildbeschreibung ein

Bearbeiten

Dies basiert auf dieser Schaltung, die ich für ein bestimmtes Projekt benötige (Steuerung einer HID-Lampe):

Nulldurchgangserkennung

In meinem Fall ist die Lampe eine 240-V-250-W-HID-Lampe mit magnetischem Vorschaltgerät (Leistungsfaktor 0,88), die mit SSR flackert, daher muss ich ein elektromechanisches Relais verwenden, jedoch mit Nulldurchgang. Mit diesem Signal wartet Arduino auf den richtigen Zeitpunkt, um das Relais zu schließen, wodurch die Lichtbogenbildung minimiert wird. Es ist nicht sehr wichtig, da das Relais nur einmal am Tag schließt (Sie wetten).

Vorschläge sind willkommen.

Ein anderer Versuch

Benutzer @jonk schlug einen anderen Ansatz für mein Problem vor. Obwohl es meinen Bedürfnissen am besten dient, ist es keine Antwort auf meine Frage und kann weder gepostet noch akzeptiert werden.

Wie auch immer, Jonks Ansatz verdient es nicht, in den Kommentaren unterzugehen, also hier ist er:

Die Idee ist, ein SSR und ein elektromechanisches Relais parallel zu verwenden. Der Arduino schaltet sowohl das SSR (mit eingebauter Nulldurchgangserkennung) als auch das Relais (zwei Pins) gleichzeitig ein. Das SSR schaltet sich sofort ein und versorgt die Last. Nach einiger Verzögerung und einigen Zyklen schaltet Arduino den SSR aus. Dann übernimmt das bereits geschlossene Relais die Last, während die Lampe noch erhitzt wird (und es wird sowieso von keinem Spannungsunfall beeinflusst).

Warum ist es am besten? Ich muss mich nicht mit dem Netz herumschlagen. Ich muss die Zeiten nicht anpassen. Ich brauche keinen Interrupt-fähigen Pin (Arduino hat nur zwei).

Sie könnten auch in Betracht ziehen, die Schaltung zu verbessern, um schärfere Kanten zu erhalten ... Oder stecken Sie damit fest? Haben Sie auch zulässige Phasenverzögerungsanforderungen oder zulässige Abweichungen derselben?
Sicherlich ist eine schärfere Kante robuster.
Ich würde die Kante nehmen, die mit dem AC-Nulldurchgang übereinstimmt. Es ist jedoch unwahrscheinlich, dass Ihr mechanisches Relais wirklich schnell genug arbeitet, um als Nulldurchgangsrelais zu fungieren.
Ich würde einen Schmitt-Trigger hinzufügen, bevor Ihre Mikro-, langsamen Rampenraten eine schlechte Störfestigkeit haben
@Peter Bennett. Du hast Recht. Alle diese Faktoren werden in die Arduino-Skizze aufgenommen. Tatsächlich werde ich die Verzögerung über die Benutzeroberfläche einstellbar machen.
Hmm. Verstehe ich Sie richtig, wenn Sie sagen, dass Sie einmal am Tag einen mechanischen Relaismechanismus verwenden und dass Sie sich all diese Mühe machen, um (wie Sie es sich vorstellen) die Lichtbögen zu minimieren? Ich möchte dies nur absolut klarstellen, bevor ich etwas hinzufüge.
@jonk du hast recht. Ich mache mir all diese Mühe für einen einzigen Klick jeden Tag. Diese Lampe ist sehr, sehr wertvoll für mich. Aber dies ist auch eine praktische Lernerfahrung für mich (+), und Ihre Kommentare sind auch für die globale Gemeinschaft (+) und zukünftige Leser (+) wertvoll.
@LookAlterno Mechanische Relais sind langsam . Sie haben hier verschiedene Probleme. (1) Die Verzögerung Ihres Interrupt-Ereignisses relativ zum tatsächlichen Nulldurchgang. (2) Die Unterschiede in der Verzögerung dieses Interrupt-Ereignisses, Tag für Tag (wie stark es von Zeit zu Zeit zu Schwankungen führt, Drift, Temperatur usw.) (3) Die Verzögerung in Ihrer Software, die erforderlich ist, um eine Änderung zu bewirken eine Ausgabe. (4) Variationen in dieser Softwareverzögerung. (5) Verzögerungen im Ausgangskreis. (6) Schwankungen in den Ausgangsschaltungsverzögerungen. (7) Mechanische Relaisverzögerungen. (8) Schwankungen in diesen mechanischen Verzögerungen ... Verstehen Sie?
@LookAlterno Wenn Sie dies ernst meinen, werden Sie wahrscheinlich einen Hydrid-Mechanismus verwenden. Ein mechanisches Relais, das von einem Triac- oder Dual-SCR-System umgangen wird. Sie können das Triac-System tatsächlich schnell auslösen! Aktivieren Sie dann Ihr Relais und warten Sie eine geeignete Zeit, bis es vollständig aktiviert ist. Hören Sie dann auf, den Triac zu aktivieren (oder lassen Sie ihn aktiviert, Ihre Wahl). Ein ähnlicher Vorgang ist erforderlich, wenn Sie das Relais freigeben. Es ist das, was ich selbst benutzt habe. Relaiskontakte sind auf diese Weise vollständig geschützt. Und der Triac hat nur einen kurzzeitigen Verlustleistungsimpuls, sodass kein Kühlkörper benötigt wird.
@LookAlterno Okay. Aber es wird einen Moment dauern, bis Sie es sorgfältig genug geprüft haben, um es als Antwort hinzuzufügen.
@LookAlterno - Obwohl die Idee von Jonks gut ist, ist es eine Antwort, die nichts mit der eigentlichen Frage zu tun hat, die Sie gepostet haben. Zu akzeptieren, dass anstelle einer der Antworten, die sich mit der Frage nach Flanke / Triggerung befassen, wahrscheinlich eine schlechte Form ist.
@ WesleyLee Nun, das gibt es. Es ist ein Punkt. Aber eine Antwort darf eine andere Richtung vorschlagen. Ich glaube, ich muss das gesehen haben ... hmm ... vielleicht tausende Male hier. Es stört mich nicht, obwohl ich Ihren Standpunkt definitiv auch verstehe.
@jonk - Es liegt an euch, ich fand es nur ein bisschen verwirrend. Besonders für zukünftige Leser, die keine Ahnung haben, was passiert ist, ohne die Kommentare zu lesen. Fügen Sie vielleicht einen Absatz über die eigentliche Frage hinzu.
@Wesley. Du hast Recht. Wir müssen die Regeln respektieren, denke ich. Ich werde die beste Randantwort akzeptieren. Wie auch immer, Jonks Kommentar löst mein Bedürfnis viel besser.
@LookAlterno Klingt gut für mich. Spart mir Zeit.
@LookAlterno Du brauchst noch eine gute Kantenschaltung. Ich werde ein paar posten, wenn Sie warten möchten (zwei oder mehr). Andernfalls werde ich mich nicht darum kümmern, wenn Sie eine Antwort akzeptieren.
@jonk - versteh mich nicht falsch, ich mag deine Antworten im Allgemeinen und stimme ihnen zu. Diesmal klang es für mich einfach etwas aus dem Zusammenhang gerissen.
@WesleyLee Ich denke, Ihr Kommentar war angemessen. Ich würde diese Seite auch gerne organisierter sehen! Vielleicht eine Teilmenge, in der gute Antworten arrangiert, gesammelt usw. werden können. Es ist so eine Art Wundertüte, das ist alles. Aber ich finde deine Aussage auch gut getroffen. Ich finde meine auch passend. Es gibt eine riesige Grauzone zu diskutieren, und Sie sollten sich frei fühlen, zu sagen, was Sie denken. Ich werde auch. So bleibt diese Seite auf einer Art Wanderpfad, schätze ich.
@jonk. Ich habe Ihre Lösung in meine Frage aufgenommen.
@LookAlterno Cool. Ich bin froh, dass es geholfen hat. Ich war etwas überrascht von den Antworten, die hier sofort auftauchten, ohne dass ich Ihre Verwendung zuerst gesehen hatte. Das hielt mich wie einen Stein auf und brachte mich dazu, Ihnen diese Frage zu stellen. Aber irgendwie hat niemand auf dieses Detail reagiert, bevor er geantwortet hat.

Antworten (4)

Lösen Sie im Allgemeinen nach Möglichkeit an schärferen Kanten aus. Das führt zu weniger Zeitunsicherheit und daher weniger Jitter. Es minimiert auch die Zeit, während der die digitale Eingabe in dem Zwischenbereich gehalten wird. Einige digitale Eingänge reagieren nicht gut darauf, dort gehalten zu werden. Sie können schwingen und/oder einen höheren Strom ziehen.

Wenn Sie unvermeidlich langsame Flanken haben, müssen Sie einen Schmitt-Trigger-Eingang verwenden. Diese haben eine eingebaute Hysterese und sind speziell dafür ausgelegt, unbegrenzt auf Zwischenwerten gehalten zu werden.

Je nachdem, welchen Chip Sie verwenden, sind auf den Eingängen möglicherweise Schmitt-Trigger verfügbar (vielleicht nur als "Hysterese-Eingang" bezeichnet - obwohl Sie auch prüfen, wo sich eine solche Schaltung befindet - wenn sie sich hinter einem CMOS-Eingang befindet, leiden Sie möglicherweise immer noch unter dem " zwischenstaatlichen Launen'). Es ist auch möglich, einen „Software-Schmitt-Trigger“ an einem analogen Eingang zu haben, wenn Ihre Kanten besonders schräg sind.

Ihr Impuls hat beide Flanken schrecklich zu langsam für ein genaues und wiederholbares Triggern digitaler Schaltungen. Es wurde bereits kommentiert, dass das Hinzufügen eines Schmitt-Triggers hilft. Ich schlage es auch vor.

Ihre Schaltung hat Kondensatoren, die eine Phasenvoreilung verursachen, sodass Ihr Impuls außerhalb der Zeit liegt. Simulieren oder berechnen Sie, wie viel Zeitverzögerung Sie benötigen, damit eine der Flanken (nach dem Schmitt-Trigger) beim tatsächlichen Nulldurchgang auftritt. Berücksichtigen Sie das in Ihrem Programm.

Genau wie bei einem Zielfernrohr ist der zuverlässigste Auslöser derjenige, der stabil ist. Da der Logikeingang spannungsempfindlich ist, ist bei etwa Vdd/2 der stabilste Übergang Turn off to LED oder die Q1-C-Anstiegszeit. Dies liegt an der breiten Palette linearer und sättigender Variationen von LED CTR.

Da Sie keinen LPF für die Rauschunterdrückung haben, können Sie davon ausgehen, dass Glitches Interrupts auslösen.

Dieses große Problem bei diesem Design besteht darin, dass die Impedanz von > 10 k der Kappen einen zu niedrigen Eingangsimpulsstrom ergibt. Kollektor R von 4,7k auf 100k ändern. Wert um 0,1uF erhöhen oder einen von der neutralen Seite entfernen

Jedes Gerät, das versucht, von einer Spannungswellenform zu triggern, wartet darauf, dass es einen bestimmten Schwellenwert überschreitet. Es wird immer eine Toleranz geben, und je langsamer die Flanke, desto mehr Zeit liegt zwischen der Auslösung und der Auslösung, also wählen Sie jedes Mal die schnellste Flanke.

Einige Geräte können einen Durchschnitt nehmen, der sogar noch besser sein kann, aber viele können das nicht.