Zero-Cross-Detektorproblem

Ich bin wirklich in einer schwierigen Situation und benötige dabei sehr ernsthafte erarbeitende Hilfe. Fast wie Löffelfütterung.

Es ist Tage her, dass ich versucht habe, meinen Nulldurchgangsdetektor (und den Triac-Dimmer) dazu zu bringen, richtig zu funktionieren, aber nichts funktioniert gut. Ich versuche, meine Schaltung zum Laufen zu bringen, aber alles umsonst, während es ein anderes Produkt gibt (das ich zum Reverse Engineering geöffnet habe), das denselben Triac und fast ähnliche Komponenten verwendet, aber mit wenigen Änderungen und Schwellerarbeiten. Ich erkläre Ihnen beide Fälle.

Ich verwende einen H11AA1- Optokoppler mit einem 150k-Widerstand, um mit Wechselspannung Interrupts auf meinem Mikrocontroller ESP8266 (esp-12e) (integriertes WLAN) zu erzeugen. Die Schaltung ist wie im Bild

Geben Sie hier die Bildbeschreibung ein

Aber die Probleme, denen ich gegenüberstehe, sind zahlreich -

  • Ein 1/4W-Widerstand wird zu heiß und brennt, wenn ein geringerer Wert verwendet wird.
  • Die Interrupts sind für die RISING-Flanke, da es Spitzen geben wird, wenn es einen Nulldurchgang gibt. Die Unterbrechungsdauer ist (in Millisekunden) wie folgt: 10,9,0,0,1,9,10,0,0,0,10,0,0,10,9,9,1,0,0, 1,1,10,....... und so weiter. WARUM?!!? Warum ist es so sprunghaft? Und die Zufallswerte? Mir wurde vorgeschlagen, dass der Strom auf der AC-Seite geringer ist. Aber wie gesagt, das Verringern des Widerstands verbrennt es und das Erhöhen könnte es mehr verderben. Sprechen Sie über Paradoxon, nicht wahr?

Nun zu dem Produkt, das ich zurückentwickeln wollte -

Geben Sie hier die Bildbeschreibung ein

Warum das ein Problem für mich ist -

  • Sie verwenden eine Variante des (fast) gleichen Optokopplers H11A1 . Und sie verwenden einen "330k" SMD-Widerstand (x2 mal höher), der 1/4W sein muss. Jetzt ist offensichtlich der 2-mal höhere Widerstand der Grund, warum es nicht brennt. Aber wie liefert das genug Strom, um die richtigen Interrupts zu erzeugen?

Bitte helfen Sie mir hier. Beim aktuellen Szenario flackert der Triac-Dimmer, der mit einer Glühlampe getestet wurde, ziemlich unregelmäßig. Es ist Tage her, um zu verstehen, warum dies geschieht ...

Herzlichen Dank im Voraus.. :)

1. 150.000 * 10 != 330.000. 2. Ein Produkt endet nicht am IO-Pin. 3. Die Triggerpegel eines Atmel auf 5 V und eines ESPxxxx auf 3,3 V sind nicht gleich. 4. Für wirklich nützliche Hilfe fügen Sie Links zu den Datenblättern der von Ihnen verwendeten Materialien hinzu.
Kleine Widerstände haben Durchbruchspannungen, die von der Netzspannung leicht überschritten werden können. Aus Sicherheits- und Haltbarkeitsgründen würde ich mehr als einen Widerstand in Reihe verwenden.
Wollen Sie wirklich, dass 220 VAC in den Optokoppler gehen? Ein netter Abwärtstransformator, sagen wir zu 24 V AC, würde es sicher machen und keine Widerstände verbrennen.
Asmyldof - danke für den Hinweis. Ich habe 10 Mal geschrieben, als ich im Moment des Postens der Frage mit 33k experimentierte. Ich habe es jetzt bearbeitet. PS - 33k rauchte sofort.
Verwenden Sie auf Ihrem esp8266 die nodemcu-Firmware? Falls ja. das erklärt das Flackern in Ihren Unterbrechungsdauern ... und jetzt zur Schaltung ... Ich verwende eine auf 4n35 basierende Schaltung, die für mich wie ein Zauber wirkt ... wenn Sie interessiert sind, würde ich das gerne erklären.
Suraj - danke für die Hilfe. Bitte erklären Sie es. Und ich benutze nodemcu nicht. Ich benutze Arduino...
BEARBEITEN -> Suraj - danke für die Hilfe. Bitte erklären Sie es. Und ich benutze nodemcu nicht. Ich benutze Arduino ... PS, wenn du es erklärst, sei bitte so nah dran, es mir mit dem Löffel zu füttern wie möglich ... danke. (mit allen Widerstandswerten und Watt und allen Theorien ...)
Hallo Suraj ... brauche immer noch deine Hilfe
Entschuldigung, ich habe diese Frage nicht verfolgt ... Ich werde die Antwort hinzufügen, die für mich funktioniert ... heute Abend ...

Antworten (2)

Widerstand

Ein 150-kΩ-Widerstand bei 220 V Wechselstrom verbraucht 0,32 W und sollte wahrscheinlich brennen.

Ein 330-kΩ-Widerstand bei 220 V Wechselstrom verbraucht 0,147 W, was im Nennbereich liegt.

Wie einer der Kommentatoren angedeutet hat, ist Ihre Mathematik von 10x höher etwas daneben. Vielleicht sollten Sie einen 330kΩ-Widerstand ausprobieren?

Unterbricht

Teilen Sie uns nicht die Interrupt-Dauern mit, sondern zeigen Sie uns die Scope-Erfassung des Knotens an Pin 5. Wenn die Scope-Erfassung ausfällt, wissen Sie, dass es sich um ein Firmware-Problem handelt, und Sie beschreiben ein Hardwareproblem. Bitte vergewissern Sie sich, dass Sie ein Hardwareproblem haben, bevor Sie es in Bezug auf die Software beschreiben.

Spekulieren Sie nur ohne Scope Capture, aber es könnte sein, dass Ihr Klimmzug zu stark ist? Sie haben einen geringeren Widerstand als die anderen. Vielleicht versuchst du es mit 10k? 20k? Veröffentlichen Sie erneut eine Bereichserfassung.

Hey danke für den Versuch. 1. Ich habe das 10-fache auf 2-fache korrigiert. War exp. mit den 33k beim posten so geschrieben. Ich habe gerade kein Oszilloskop zur Verfügung. Aber es gibt sowieso nicht viel in Software. Einfach - AttachInterrupt(12, zero_check, RISING) zum Registrieren von Interrupts und dann bei jedem Interrupt berechnet es den Zeitunterschied in Millis zwischen dem letzten und dem aktuellen Interrupt.
Wie bekommen sie auch genug Strom aus der 330k-Schaltung, um das Opto anzusteuern?
Ich verstehe, Oszilloskope können teuer sein, aber Sie können heutzutage ein einfaches analoges Oszilloskop der alten Schule für 50 US-Dollar bekommen. Ich bleibe bei meinem Kommentar, dass Sie die Ausgabe mit einem Oszilloskop oder zumindest mit einem Logikanalysator betrachten sollten. Es hört sich bereits so an, als würden Sie basierend auf Ihren Zeiten zeitweise triggern, aber Sie werden das NIEMALS wissen, ohne nur direkt auf die Ausgabe zu schauen.
Ich schätze Ihre Hilfe und ich verstehe, dass es schwierig ist, ohne andere Daten zu spekulieren.

Ich habe endlich die Antwort darauf gefunden.

Einmal habe ich experimentell den 10k-Widerstand auf der linken Seite (Arduino-Seite), der 5 V mit dem 5. Pin des Optokopplers und dem Interrupt-Pin verbindet, auf 1 M Ohm geändert. Auch verbundene 2nF-Kapazität über Kollektor und Emitter.

Meine Vermutung war, dass einige Geräusche durch die richtige Art von Widerstand reduziert werden können. Erhöhen Sie also den Widerstand Stück für Stück, bis das gewünschte Ergebnis erzielt wurde.

Eine bessere Option für Optokoppler ist auch PC817.

Ich hoffe, dies hilft allen, die Probleme mit Zero-Cross-Detektoren haben. :)

Ich glaube, Sie bewegen sich in gefährliche Meere ... Pull-up im Mohm-Bereich bedeutet kein Pull-up, ich meine mindestens einen Pull-up-Strom, der mit IC- und Opto-Leckage vergleichbar ist. Möglicherweise erhalten Sie einen kritischen Schaltkreis, der nur manchmal funktioniert. Wir können vermuten, dass Sie gerade Rpull-up erhöht haben, indem Sie konstant eine Tiefpassfilterung von Cstray timr eingefügt haben. Wenn dies wahr wäre, könnten Sie dasselbe auf sicherere Weise erreichen: Reduzieren Sie den Widerstand und schließen Sie einen zusätzlichen Kondensator über den Optoausgang ein.