ich baue eine Steuerung, bei der ein ESP32 via Relais 4 Steckdosen schaltet. Parallel zu den Steckdosen ist je eine 220VAC LED geschaltet.
Und genau diese LEDs machen Probleme.
Sobald ich eine davon umschalte, triggern auf dem ESP Interrupts, die für Schalter gedacht sind und das 1,8' TFT Display, das ebenfalls am ESP hängt, führt einen Reset aus.
Klemme ich die LEDs ab, läuft alles einwandfrei. Die LEDs sind nicht mit der MCU verbunden (nur mit der Sekundärseite der Relais)
Ich habe schon pullups eingebaut und auch Kondensatoren auf den betroffenen Leitungen, aber das hat keine Auswirkung. Die Schalter kann ich in Software fixen, das Display aber nicht.
Irgendeine Idee, was das Problem ist und was ich dagegen machen kann? Ich stehe auf dem Schlauch.
Ich glaube nicht, dass ein Foto wirklich helfen würde.
Das solltest du aber. Denn aus dem Foto geht hervor, wie du die Leitungen geführt hast, was einen großen Einfluss auf elektromagnetische Verträglichkeit hat.
Außerdem sieht man an den Fotos, welche Bauteile du wirklich verwendet hast. In Fritzing Zeichnungen werden oft irreführend falsche Bauteile angegeben (weil die richtigen fehlen). In deinem Fall die LEDs und wer weiß was sonst noch.
Was ich an deiner Fritzing Zeichnung sofort sehe:
Dieses Miniatur-Netzteil solltest du nicht ohne Netzfilter betreiben, weil das Netzteil eben völlig ungefiltert ist. Es reagiert nicht nur empfindlich auf Störungen, sondern erzeugt selbst welche. Du solltest auch eine Sicherung hinzufügen, damit dir im Fall einer Fehlfunktion nicht die Hütte abfackelt.
Falls du jetzt sagst "aber ich benutze gar nicht dieses Netzteil", dann siehe oben!
Nächster Punkt ist das Relais-Modul. Das ist für unser 230V nicht zugelassen. Siehe http://stefanfrings.de/transistoren/index.html#relais
Außerdem sind diese Relais dafür bekannt, hochfrequente Störungen aus dem Netz nicht ordentlich vom Mikrocontroller fern zu halten.
Also nimm geeignete Relais, und ergänze die Schaltung mit Snubber.
https://de.wikipedia.org/wiki/Snubber
Nimm im Zweifelsfall fertige Bauteile mit 47 nF + 100 Ω für 275 Volt.
Das Display hat einen I²C Bus, nehme ich an. Die Pull-Up Widerstände auf dem Modul sind grenzwertig hochohmig. Ergänze an SCL und SDA jeweils einen Pull-Up Widerstand nach 3,3 Volt mit ungefähr 2,2 kΩ.
Das ESP Modul braucht schon für sich 500 mA womit das USB Kabel bereits voll ausgelastet ist. Du musst für die Relais ein separates Netzteil verwenden.
Am Taster fehlt ein Pull-Up Widerstand. Auch hier empfehle ich 2,2 kΩ.
Die Relaisplatine verfügt über Optokoppler und ist damit komplett
entkoppelt.
Das ist leider häufig nicht der Fall. Zeige den Schaltplan der Platine, um den Punkt zu klären. Unabhängig davon sind die Relais trotzdem nicht für unser 230 Volt Netz zugelassen.
Hoffentlich hast du die 230V nicht wirklich auf das Steckbrett geklemmt.
Nein. Habe ich nicht.😎
Der Microcontroller ist auf ein Perfboard gelötet und das ganze in eine Verteilerbox eingebaut.
Schicke wohl doch ein paar Fotos, auch wenn ich bezweifle, dass man darauf wirklich was Wichtiges erkennen kann...
Dann fange an systematisch zu suchen.
Zuerst zeichne dir einen Schaltplan/Verdrahtungsplan. Das geht wunderbar ohne Software mit Bleistift und Papier.
Als nächstes ersetze das Netzteil testweise durch ein kräftiges Labornetzteil. Nicht das der µC resettet weil das Netzteil zu schwach ist oder einbricht.
Die Dinge die Stefan geschrieben hat gelten trotzdem.
Zusätzlich sollte am Ausgang des Netzteils noch ein 100µF Elko und ein 100nF keramischer Kondensator hängen um Spannungsschwankungen durch pulsartige Belastungen abzufangen.
Denn aus dem Foto geht hervor, wie du die
Leitungen geführt hast, was einen großen Einfluss auf elektromagnetische
Verträglichkeit hat.
Ok. Hast mich überzeugt.
Was ich an deiner Fritzing Zeichnung sofort sehe:
Dieses Miniatur-Netzteil solltest du nicht ohne Netzfilter betreiben,
Ich habe tatsächlich Kondensatoren am 5V Eingang, wie du auf einem der Bilder sehen kannst, allerdings kein RC-Glied. Ich war der Ansicht, dass der Spannungswandler auf der MCU-Platine die Spannung ausreichend glättet.
Du solltest
auch eine Sicherung hinzufügen, damit dir im Fall einer Fehlfunktion
nicht die Hütte abfackelt.
Habe ich. 10A AC und eine Schmelzsicherung im 5V Strang.
Falls du jetzt sagst "aber ich benutze gar nicht dieses Netzteil",
dann siehe oben.
OK, touché
Nächster Punkt ist das Relais-Modul. Das ist für unser 230V nicht
zugelassen.
Danke für den guten Hinweis. Ich werde beste raussuchen, aber das dürfte ja nichts mit meinem Problem zu tun haben.
Außerdem sind diese Relais dafür bekannt, hochfrequente Störungen aus
dem Netz nicht ordentlich vom Mikrocontroller fern zu halten.
Hat du dazu eine Quelle? Würde gerne verstehen, wie das trotz der Optokoppler geht.
Das Display hat einen I²C Bus, nehme ich an.
SPI in meinem Fall. Vielleicht sollte ich noch einen Pullup auf den CS machen.
Die Antenne des Funkmodul darf nicht über dem Steckbrett liegen.
Kein Steckbrett. Aber auch ein sehr wertvoller Hinweis für die Zukunft.
Du musst für die Relais ein separates Netzteil verwenden.
Kein USB. Das verwendete Netzteil leistet 10W. Ich denke, das sollte reichen.
Am Taster fehlt ein Pull-Up Widerstand. Auch hier empfehle ich 2,2 kΩ
Genau so ist es auch gemacht. Zusätzlich 10nF Kondensator.
Weiteres ergibt sich aus echten Fotos.
Habe welche angehängt. Das ist natürlich nicht das Endergebnis. Die Platine mit dem ESP kommt auch noch ins Gehäuse und die Kabel noch etwas aufgeräumt, sobald alles eingebaut ist.
Bin gespannt, ob die Fotos für meine Frage helfen.
Ich vermute irgendeine Rückkopplung über das Netzteil. Wie gesagt, sind offensichtlich die LEDs das Problem. Schalte ich andere Lasten an den Steckdosen, gibt's kein Problem.
Ich hoffe es ist nicht das, wonach es aussieht (Schraube auf Isolation).
Unabhängig von ihrer Isolation denke ich nicht, dass die Relais in dieser Schaltung eine gute Wahl sind. Die sind nämlich sehr empfindlich, was Einschaltströme und Induktive Lasten angeht. Vor allem ohne Snubber.
Das habe ich getan. Offensichtlich liegt es an den LEDs. Ohne die funktioniert alles bestens.
Als nächstes ersetze das Netzteil testweise durch ein kräftiges
Labornetzteil. Nicht das der µC resettet weil das Netzteil zu schwach
ist oder einbricht.
Ich habe verschiedene Netzteile versucht. Überall derselbe Effekt. Da die LEDs nicht an dem Netzteil hängen, sondern auf der Sekundärseite der Relais und mit Netzspannung versorgt werden, bezweifele ich ein Problem mit der Spannungsversorgung.
Zusätzlich sollte am Ausgang des Netzteils noch ein 100µF Elko und ein
100nF keramischer Kondensator hängen um Spannungsschwankungen durch
pulsartige Belastungen abzufangen.
Ich hoffe es ist nicht das, wonach es aussieht (Schraube auf Isolation).
Keine Sorge, ist es nicht. Das sieht nur aufgrund des Winkels so aus.
Unabhängig von ihrer Isolation denke ich nicht, dass die Relais in
dieser Schaltung eine gute Wahl sind. Die sind nämlich sehr empfindlich,
was Einschaltströme und Induktive Lasten angeht. Vor allem ohne Snubber.
Die Relais sind nicht mein Problem. Die schalten einwandfrei.
Bei der Frage ging es ja darum, dass die LEDs irgendwie die MCU beeinträchtigen und ich leider keine Idee habe, auf welchem Weg das geschehen kann.
Oder sehen Sie einen Weg, wie die Relais zusammen mit den LEDs rückwärts durch die Optokoppler auf die MCU wirken können?
Schalte ich andere Lasten an den
Steckdosen, gibt's kein Problem.
Fange mal mit dem Nachrüsten von Snubbern
Wo genau? Nur hinter dem Netzteil oder sonst noch irgendwo?
und einem Pull-Up Widerstand
am Taster an.
Das war meine erste Tat, als ich das Problem bemerkte. 2,2k, zusammen mit einem 10nF Kondensator. Hatte genau gar keinen Effekt. Und für das Problem am Display hilft es auch nicht. Hier habe ich die Reset Leitung mit einen 100nF Kondensator gestützt, aber das hatte auch gar keinen Effekt.
Ich denke dann wird es zumindest eine Weile lang
funktionieren.
Leider nicht.
Was ist mit dem Display? Wenn es I²C hat, dann rüste auch dort Pull-Up
Widerstände nach.
Ist SPI. Vielleicht sollte ich mal einen pull-up am CS versuchen.
Doch, ohne Snubber sind sie dein Problem. Weil bei jedem Öffnen (und Prellen) der Kontakte hochfrequente Störungen entstehen, die deine Leitungen (wie Antennen) abstrahlen und anderen Leitungen wieder empfangen.
Aber auch beim Einschalten hast du hohe Stromstöße, um die Kondensatoren in den Schaltwandlern der LED Lampen auf zu laden. Maßnahmen dagegen sind nicht so einfach, deswegen habe ich dir empfohlen, erst mal die Snubber zu versuchen.
Zur Leitungsführung: Je größer die Fläche in einem Stromkreis ist, umso stärker die Abstrahlung und die Empfindlichkeit aus Störfelder. Man soll Leitungen möglichst paarweise miteinander verdrillen. Dann ist die Fläche dazwischen minimal und die Magnetfelder (vom Strom hin und zurück) heben sich gegenseitig auf.
Um Effekte durch Spannungsabfall zu minimieren, soll man außerdem die Stromversorgungs-Leitungen möglichst sternförmig verlegen. Soweit ich sehe, ist das bei dir der Fall (alles trifft sich auf der Lochrasterplatine).
Doch, ohne Snubber sind sie dein Problem. Weil bei jedem Öffnen (und
Prellen) der Kontakte hochfrequente Störungen entstehen, die deine
Leitungen (wie Antennen) abstrahlen und anderen Leitungen wieder
empfangen.
Ok. Dann nochmal meine Frage.
Wohin sollen denn die Snubber?
Am Netzteilausgang habe ich ja schon Snubberkondensatoren. Da könnte ich noch ein vernünftiges RC-Glied hinzufügen.
Am 230V Ausgang der Relais würde ich sehr ungerne basteln. Wäre es sinnvoll, vor dem Netzteil ein RC-Glied einzubauen, um Störungen im AC-Netz zu filtern?
Am 230V Ausgang der Relais würde ich sehr ungerne basteln. Wäre es
sinnvoll, vor dem Netzteil ein RC-Glied einzubauen, um Störungen im
AC-Netz zu filtern?
Im Datenblatt des Netzteils ist eine notwendige Entstörung enthalten.
Liest hier eigentlich irgendwer von den Arduino-Bastlern Datenblätter?
Doch, ohne Snubber sind sie dein Problem. Weil bei jedem Öffnen (und
Prellen) der Kontakte hochfrequente Störungen entstehen, die deine
Leitungen (wie Antennen) abstrahlen und anderen Leitungen wieder
empfangen.
Schreib doch nicht so nen Quatsch.
Dann dürfte auf der Welt die Hälfte aller Steuerungen davon betroffen sein.
Frage: Werden die Relais und der ESP von der gleichen Spannungsquelle versorgt?
Dann liegt es nämlich daran. Freilaufdioden sind drauf, vor den Relais?
@Steffan
Und lass mal Dein Gesummse wegen den nicht zugelassenen Relais! - Oder bist Du etwa die Relais-Fake-Polizei.
Im Datenblatt des Netzteils ist eine notwendige Entstörung enthalten.
Gut zu wissen. Leider war da kein Datenblatt dabei, nur eine "Installationsanleitung" und im Netz finde ich auch keines.
Kannst du mir sagen, wo ich das Datenblatt finden kann?
@Steffan
Und lass mal Dein Gesummse wegen den nicht zugelassenen Relais! - Oder
bist Du etwa die Relais-Fake-Polizei.
Das ist kein Gesumse, das ist halt so, dass die Module nicht für 230V verwendet werden können, weil sie die vorgeschriebenen Trennabstände nicht einhalten. Natürlich kann man sie in Schaltungen einsetzen, die auf Netzpotential liegen, aber die Anschlüsse können dann nicht nach außen geführt werden.
Frage: Werden die Relais und der ESP von der gleichen Spannungsquelle
versorgt?
Dann liegt es nämlich daran.
Die Primärseite der Relais wird vom selben Netzteil versorgt wie der ESP.
Wieso ist das ein Problem?
Wie gesagt tritt das Problem nur auf, wenn auf der Sekundärseite die LEDs angeschlossen sind. Andere Lasten sind kein Problem.
Freilaufdioden sind drauf, vor den Relais?
Davon gehe ich aus. Insbesondere sind die Steuerpins über Optokoppler entkoppelt. Ich sehe nicht, wie die Module direkt auf den ESP zurückwirken könnten.
Was ist mit dem Display? Wenn es I²C hat, dann rüste auch dort Pull-Up
Widerstände nach.
Ist SPI. Vielleicht sollte ich mal einen pull-up am CS versuchen.
Kann man machen ist hier aber sich nicht das Problem.
ergänze die Schaltung mit Snubber.
Nimm im Zweifelsfall fertige Bauteile mit 47 nF + 100 Ω für 275 Volt.
Würde ich hier auch so empfehlen.
Naja zu dem Netzteil das Du nutzt kann man geteilter Meinung sein, hatte auch mal so was in der Art, meins war eine Dreck..... .
Zu dem Relais ist ja schon einiges geschrieben worden aber das must Du für Dich entscheiden.
Als Beispiel mal habe eine Terrarium Steuerung mit so einer 8 Fach Relaiskarte und einem ESP32 , SPI TFT ,4 Sensoren und 8 Tastern über I2C. Sollte nur Provisorisch sein die Relaiskarte damals. Es werden damit auch zwei Pumpen geschaltet ohne Probleme. Nutze aber auch Snubber und Logic Level Converter zwischen ESP und den Relaismodulen. Habe die Stromversorgung alles extra ausgelegt gehabt. Also 5V und 3,3V.
Aufbau ist auf Universal Platine ähnlich wie bei Dir, nur etwas größer.
Sobald ich eine davon umschalte, triggern auf dem ESP Interrupts, die
für Schalter gedacht sind
Wie groß ist der Pullup Widerstand am Eingang? Vielleicht ist der zu hochohmig. Versuche mal einen kleineren Wert, z.B. 1 kOhm.
Von den LEDs können die Störungen ja über zwei Wege kommen:
Über elektrische/magnetische Felder quasi als Antenne.
Dagegen helfen die Pullups, der Abblockkondensator und eine gute Leitungsführung (paarweise verdrillt oder sogar geschirmt)
Über das Netzteil, das halte ich eher für unwahrscheinlich beim genannten Fehler
Wie groß ist der Pullup Widerstand am Eingang? Vielleicht ist der zu
hochohmig. Versuche mal einen kleineren Wert, z.B. 1 kOhm.
Der hat 2,2kOhm und der interne ist auch gesetzt, unklar wie groß der ist, aber in Summe werden es wohl gut 2kOhm sein.
Ich werde mal noch einen zweiten 2,2 kOhm dazu packen.
Von den LEDs können die Störungen ja über zwei Wege kommen:
Über elektrische/magnetische Felder quasi als Antenne.
Dagegen helfen die Pullups, der Abblockkondensator und eine gute
Leitungsführung (paarweise verdrillt oder sogar geschirmt)
Leider haben alle zusätzlichen Pullups und Kondensatoren keine Verbesserung gebracht.
Über das Netzteil, das halte ich eher für unwahrscheinlich beim
genannten Fehler
Ich habe ja auch schon verschiedene Netzteile probiert und das Problem blieb bestehen.
Für ein EMV Problem passiert es aber eigentlich zu zuverlässig, nämlich immer.
Die haben keine klare Typbezeichnung.
https://www.amazon.de/dp/B08RBHW1FJ
230V, 20 mA, 0.06W steht in der Beschreibung, wie auch immer das zusammen passt..
"Snubberglieder werden beispielsweise an Kontakten von Leistungsrelais, Schützen und anderen elektrischen Kontakten eingesetzt, wenn diese induktive Lasten zu schalten haben. Das Snubberglied wird parallel zum Schalter eingebaut."
Die Primärseite der Relais wird vom selben Netzteil versorgt wie der
ESP. Wieso ist das ein Problem?
Ist es nicht. Zahlreiche kommerzielle Massenprodukte sind ebenso aufgebaut und funktionieren tadellos. Zum Beispiel SPS, Waschmaschinen, Kraftfahrzeuge,...
"Snubberglieder werden beispielsweise an Kontakten von Leistungsrelais,
Schützen und anderen elektrischen Kontakten eingesetzt, wenn diese
induktive Lasten zu schalten haben. Das Snubberglied wird parallel zum
Schalter eingebaut."
Daran liegt es nicht. Auch nicht an 'Antennen'.
Spendiere hier mal, auch wenn nur zum Test ein separates Netzteil, dass nur den ESP, Display und evtl seine eigenen Komponenten versorgt. Die Relais versorgts Du nicht mit der gleichen Spannung. Und teste wenn Du hast, mit Trafo und sonst konventionellen Bauteilen. Ich mag da nämlich auch keine Schaltnetzteile, weil die
a' das Netz 'versauen'
b' Dir evtl. jeden Scheiß durchlassen.
Die haben keine klare Typbezeichnung.
https://www.amazon.de/dp/B08RBHW1FJ
230V, 20 mA, 0.06W steht in der Beschreibung, wie auch immer das
zusammen passt..
Wenn wirklich die LEDs das Problem sind, solltest du über eine andere LED Lösung nachdenken, d.h. anderer Hersteller (von dem Hersteller "Gebildet" habe ich noch nie gehört) oder einfach 3V LEDs verwenden und auf anderem Weg ermitteln ob 230V anliegen.
Das kann ja entweder per Schaltung erfolgen (keine Ahnung wie man einfach und sicher von 230V auf 3V kommt) oder du verwendest einfach die 3,3V Relais Ansteuerung auch für die LED Ansteuerung.
Den Vorschlag von tom_63 zum Test die Spannungsversorgung des ESP32 und des Display z.B. mal per Batterie zu machen und von der Relais Platine zu trennen um zu sehen ob die Störung der LEDs über die Spannungsversorgung kommt würde ich auf jeden Fall machen.
ich hoffe mal, dass der Aufbau nicht ernst gemeint ist (!?). Mir fehlt da völlig eine saubere Isolation zwischen Niedrig- und Kleinstspannung. Die nicht zugelassenen Relais wurden ja schon erwähnt. Wenn sich da eine Ader löst ist ganz schnell der Teufel los und die beiden Spannungsebenen haben eine Verbindung.
Völlig ernstgemeinter Rat:
Ich gehe mal von aus, dass Du keine elektrotechnische Ausbildung hast. Schnapp Dir das Teil und geh damit mal zu einem Elektriker und lass Dich da mal entsprechend beraten, wie Du das sauber getrennt bekommst.
Wenn wirklich die LEDs das Problem sind, solltest du über eine andere
LED Lösung nachdenken, d.h. anderer Hersteller (von dem Hersteller
"Gebildet" habe ich noch nie gehört) oder einfach 3V LEDs verwenden und
auf anderem Weg ermitteln ob 230V anliegen.
Das werde ich tun, denn
Den Vorschlag von tom_63 zum Test die Spannungsversorgung des ESP32 und
des Display z.B. mal per Batterie zu machen und von der Relais Platine
zu trennen um zu sehen ob die Störung der LEDs über die
Spannungsversorgung kommt würde ich auf jeden Fall machen.
Habe ich getan. Sowohl alle Elemente (MCU, Display, Relais) über eine Batterie versorgt, als auch alles bis auf die Relais (hier musste ein common ground her, da die Relais sonst nicht schalten). In beiden Fällen dasselbe Problem. Das Netzteil oder auch ein fehlender scrubber sind also auszuschließen.
Ich werde andere LEDs besorgen und es dann nochmal versuchen.
Danke an alle, die sich bisher Mühe gegeben haben, mir zu helfen. Und auch vielen Dank für die anderen Anmerkungen.
Das Netzteil oder auch ein fehlender scrubber sind
also auszuschließen.
Wie kommst du darauf? Der Fehler tritt doch nur dann auf, wenn die 230V LEDs durch die Relais geschaltet werden, richtig?
Vielleicht liest du mal den Wikipedia Artikel zu "Snubber", da ist erklärt wie sie wirken und warum sie genau für deinen Fall erfunden wurden. Hier nochmal der Link: https://de.wikipedia.org/wiki/Snubber
Vielleicht liest du mal den Wikipedia Artikel zu "Snubber", da ist
erklärt wie sie wirken und warum sie genau für deinen Fall erfunden
wurden.
Ich denke, den Artikel solltest Du selbst mal richtig lesen uns verstehen. Denn der Snubber gilt vornämlich für Induktivität. Und in allen mir bekannten LED' -Leuchtmittel steckt zur Spg-Reduzierung wiederum ein Kondensator, bzw RC-Glied. Also ist Dein Snubber hier völlig fehl am Platz.
Wenn mein Vorschlag hier nicht hilft, die Spannungsversorgung des uC und Display vom Lastkreis zu trennen, hat der Klaus evtl. was nicht richtig umgesetzt. Egal welche LED-Leuchtmittel eingesetzt werden, es sollte funktionieren. Stell Dir vor nach Jahren (Monate) wird eine LED ersetzt. Dann würde das Spiel ja wieder von vorne beginnen. So ein Quatsch.
Sobald ich eine davon umschalte, triggern auf dem ESP Interrupts, die
für Schalter gedacht sind
Warum schaust Du Dir nicht einfach mal Beispiele zur Tastenentprellung an?
Ein erfahrener Programmierer nimmt niemals Flankeninterrupts, sondern Timerinterrupts oder den Systick fürs Tasten Entprellen.
Externe Interrupts nimmt man bestenfalls zum Aufwachen aus Deep Sleep.
Vielleicht liest du mal den Wikipedia Artikel zu "Snubber", da ist
erklärt wie sie wirken und warum sie genau für deinen Fall erfunden
wurden.
Ich denke, den Artikel solltest Du selbst mal richtig lesen uns
verstehen. Denn der Snubber gilt vornämlich für Induktivität.
So ist das, für induktive Last. Snubber und LED-Lampe ist Unfug.
Und in
allen mir bekannten LED' -Leuchtmittel steckt zur Spg-Reduzierung
wiederum ein Kondensator, bzw RC-Glied.
Dir sind nicht alle bekannt, viele haben ein Schaltnetzteil. Schaltnetzteile haben einen Elko im Eingang und damit leider einen Einschaltstrom, der bei ungünstigem Aufbau Ärger verursacht.
Also ist Dein Snubber hier völlig fehl am Platz
Snubber ist ein einfacher Weg, einen Blinker zu erzeugen: Über den Snubber lädt sich der Kondensator im Netzteil langsam auf, der Wandler läuft an, die Spannung bricht wieder weg ... finde die zugehörigen Threads, es gibt viele.
Habe ich getan. Sowohl alle Elemente (MCU, Display, Relais) über eine
Batterie versorgt, als auch alles bis auf die Relais (hier musste ein
common ground her, da die Relais sonst nicht schalten).
^^^^^^^^^^^^^
und das macht dich nicht stutzig?
Ich werde andere LEDs besorgen und es dann nochmal versuchen.
Wie willst du ausschließen, dass eine beliebige, an eine der Steckdosen geschlossene Last, nicht ein ähnliches Problem wie deine LEDs verursacht?