Seltsames Problem bei Nutzung eines Relais

Hallo liebe Community,

ich habe hier ein MKR1000, welches über eine ca. 10-15m Klingelleitung mit einem Taster verbunden werden soll.

Davor hatte ich ein ESP32 DevKitC, welches wohl durch Überspannung gekillt worden ist. Dieses war bis auf einen Push-Up Widerstand und einem Abblockkondensator direkt mit dem 10-15m entfernen Taster verbunden.

Also dachte ich, dass eine galvanische Trennung ganz ratsam sei und ich weiß, dass man dafür eher mal Optokoppler nimmt.

Da ich ohnehin Relais auf Lager hatte, habe ich eines benutzt.

Das Relais braucht 12V als Steuerspannung, was mir ganz recht ist, da die bisher 3,3V auf 10-15m wohl grenzwertig waren.

Da ich im "Steuerkasten" nur ein 24V Netzteil für die SPS-Haussteuerung und ein 5V Netzteil verbaut habe und nicht schon wieder ein weiteres Netzteil einbauen wollte, habe ich einen MP2037 verbaut, weil der preiswert ist und eben auch auf Lager war.

Das MKR1000 bekommt also seine Spannung aus dem 5V Netzteil. Der MP2037 bekommt 24V aus dem SPS Netzteil und macht 12V daraus, um das Relais ansteuern zu können. Diese 12V sollen eine Schleife über 10-15m Klingelkabel zum entfernten Taster machen um das Relais so zu schließen.

Dann habe ich Pin A5 auf INPUT_PULLUP eingestellt und einen 4,7kOhm Pull-Up Widerstand eingesetzt.

Nun das seltsame Verhalten:

  • Egal wie ich den 12V Stromkreis schließe, ob mit Drahtbrücke, Taster usw. das Relais wird immer angezogen und leitet anschließend. Das habe ich durchgemessen.

  • Sobald man die 10-15m Klingelkabel inkl. Taster anschließt erkennt das MKR1000 keinen Tastendruck mehr, auch wenn das Relais nach wie vor anzieht. Nur wenn man heftig durch schnelles nacheinander Drücken das Relais "flattern" lässt, funktioniert es sporadisch mal.

  • Schließe ich parallel, auf kurze Distanz einen Taster an, funktioniert es genauso schlecht.

  • Erst wenn ich die 10-15m Klingelkabel wieder entferne, funktioniert es wieder einwandfrei.

Mich wundert das deshalb so sehr, weil das Relais immer anzieht, aber das Verhalten des MKR1000 trotzdem so unterschiedlich ist. Eigentlich würde ich erwarten, dass Störeinflüsse durch die galvanische Trennung für den MKR1000 nicht relevant sind.

Habt ihr eine Idee wo hier das Problem liegen könnte? Vielen Dank!

Generell: Relais beheben keine Probleme, sie machen Probleme!

Wie steuerst Du das Relais an? Hast Du eine Freilaufdiode drübergelötet?

Deine Erklärungen sind zwar sehr lang, aber wenig hilfreich. Wie wär's mit einem Schaltbild?

Ich kann deiner Beschreibung nicht ganz folgen. Das Relais zieht an, obwohl der Steuerstromkreis nicht geschlossen ist? Strom wird über die Luft übertragen? Tesla lässt grüßen :slight_smile:

Auch wenn ich mir deine Beschreibung 3 mal durchlese, verstehe ich die nicht.
Versuche mal die Beschreibung zu optimieren und poste eine passende Schaltung dazu.
Dann können wir evtl. dein Problem nachvollziehen und sehen deinen Fehler.

Hallo zusammen,

das Relais zieht immer an.

Sobald die 10-15m Klingelkabel dran sind, zieht das Relais auch an, aber der MKR1000 registriert keinen Tastendruck.

Immer funktioniert es mit einem Taster der über ein kürzeres Kabel verbunden ist (ca 1m momentan).

Wenn die 10-15m Klingelkabel und der kurz angebundene Taster parallel angeschlossen sind, funktioniert es auch faktisch nicht.

Also:

  • Relais zieht immer an
  • Mit 10-15m Kabel -> Relais zieht an -> MKR1000 registriert keinen Tastendruck

Schaltplan im Anhang.

Dann hast du evtl. einen Kurzschluss auf dem Kabel oder Taster.

Wenn der Arduino das nicht registriert ist auch an der Anschaltung zum Arduino noch ein Fehler oder der Sketch ist falsch.

Edit:

Warum nimmst du A5, obwohl du einen digitalen Pin nutzen kannst.
0 (aus/low) und 1 (ein/high) sind rein digital für den Arduino.

Und reicht der Strom für das Relais ?

Hi

Das Relais wird von dem 15m entfernten Taster erst mit 12V als Steuerspannung versorgt.
Somit sollte das Relais erst anziehen, wenn der Taster gedrückt wird.

Das Relais schaltet GND auf A5, wird per externem PullUP (4K7) nach Vcc gezogen.
Denke mir, daß der MKR1000 ein 3,3V-Gerät ist, da die 5V an 5Vin angeschlossen sind, der PullUP aber nicht - somit wird an Vcc 'irgend was Anderes' anliegen, als die 5V.

Bisherige Vermutung: Kabel zum Taster defekt (Kurzschluss)/Taster defekt (Kontakte verbrannt)

MfG

HotSystems:
Dann hast du evtl. einen Kurzschluss auf dem Kabel oder Taster.

Das werde ich testen, wobei mit dem ESP32 Board und Direktanschluss hat es funktioniert.

HotSystems:
Wenn der Arduino das nicht registriert ist auch an der Anschaltung zum Arduino noch ein Fehler oder der Sketch ist falsch.

Einen Fehler im Sketch schließe ich mal aus, weil das mit kürzerem Kabel immer funktioniert und dieser Sketch im wesentlichen vom ESP32 stammt, wo es immer funktionierte.

HotSystems:
Edit:

Warum nimmst du A5, obwohl du einen digitalen Pin nutzen kannst.
0 (aus/low) und 1 (ein/high) sind rein digital für den Arduino.

Und reicht der Strom für das Relais ?

Da hast mich erwischt. Im Grunde war es Bequemlichkeit, weil der Pin auf meinem Breakoutboard auf dem das Relais sitzt, gleich gegenüber dem Beinchen des Relais war und ich annahm, dass wenn ich einen Analog-Pin digital Konfiguriere, sich dieser auch wie ein Digital-Pin verhält, oder?

Der MP2037 kann 1,8A auf 12V liefern. Eigentlich reicht das das locker, um das Relais anzuziehen.

postmaster-ino:
Das Relais wird von dem 15m entfernten Taster erst mit 12V als Steuerspannung versorgt.
Somit sollte das Relais erst anziehen, wenn der Taster gedrückt wird.

So will ich das auch haben. Taster drücken, Relais zieht an. Nur beim 10-15m entfernten Taster erkennt der MKR1000 kein Tastsignal, obwohl das Relais anzieht.

postmaster-ino:
Das Relais schaltet GND auf A5, wird per externem PullUP (4K7) nach Vcc gezogen.
Denke mir, daß der MKR1000 ein 3,3V-Gerät ist, da die 5V an 5Vin angeschlossen sind, der PullUP aber nicht - somit wird an Vcc 'irgend was Anderes' anliegen, als die 5V.

Richtig, MKR1000 ist ein 3,3V Arduino. An VCC liegen 3,3V an. Daneben gibt es noch den 5V-Pin und den 5Vin-Pin an dem eine externe Stromversorgung ohne den USB-Anschluss angebunden werden kann.

postmaster-ino:
Bisherige Vermutung: Kabel zum Taster defekt (Kurzschluss)/Taster defekt (Kontakte verbrannt)

Da hast du mich gerade auf eine Idee gebracht mit "verbrannt". Der Vorgänger mit ESP32 ist ja wegen Überspannung gebraten worden. Gut möglich, dass die Kontakte beim entfernten Taster nicht mehr optimal funktionieren, auch wenn der Taster pro forma beim Multimeter leitet oder nicht leitet.

Wenn der MP2037 1,8A liefern kann, heißt es nicht, das auch die 12V es können.

Daß das Relais klick macht heißt noch nicht, daß die Kontakte gut geschlossen sind.
Miß mal die Spannung an den Kontakten der Spule des Relais mit dem 15m Entfernten Taster. Ist diese so um die 7-8V?
Dann mißt Du auch bei ausgeschaltener Spannungsversorgung und abgesteckten Dc/DC Wandler (oder Relais) den Widerstand des 15m langen Kabels wenn der Taster gedrückt ist.

Grüße Uwe

So, es funktioniert nun einwandfrei.

Vielen Dank an alle, die mir hier so tatkräftig Tipps gegeben haben.

Zwei Ursachen:

  • uwefed hat es bereits geschrieben. Anscheinend waren die Kontakte nicht gut genug geschlossen bei Nutzung mit einem entfernten Taster. Der Taster befindet sich außer Haus und ist ggf. dem Wetter ausgesetzt. D.h. es sind höhere Übergangswiderstände bei den Anschlüssen, Kontakten usw. gegeben. Die Ausgangsspannung des MP2037 auf 13,4V anzuheben (1V mehr + "Sicherheitsaufschlag") hat geholfen, dass das Relais immer ordentlich anzieht, auch wenn man die Taster nicht fest drückt, "schief" drückt usw.

  • Dann gab es selten noch "Aussetzer". Hier von Pin-A5 auf Pin-D0 zu wechseln hat geholfen, Beschaltung ist die gleiche, wie ich sie angegeben habe. Für meinen Merkzettel habe ich mir notiert, dass es eine schlechte Idee ist Analog-PINs als Digital-Pins zu zweckentfremden. Beim ESP32 war das nicht kritisch, also kam es zur schlechten Angewohnheit. Wieder was gelernt.

D0 am Arduino für Taster zu nutzen ist ebenfalls eine schlechte Idee, denn D0 und D1 werden für die Kommunikation mit USB und damit zum Programmieren des MC und für Serial gebraucht.
MK1000 übersehen.

Gruß Tommy

TheNX:
So, es funktioniert nun einwandfrei.

Vielen Dank an alle, die mir hier so tatkräftig Tipps gegeben haben.

Zwei Ursachen:

  • uwefed hat es bereits geschrieben. Anscheinend waren die Kontakte nicht gut genug geschlossen bei Nutzung mit einem entfernten Taster. Der Taster befindet sich außer Haus und ist ggf. dem Wetter ausgesetzt. D.h. es sind höhere Übergangswiderstände bei den Anschlüssen, Kontakten usw. gegeben. Die Ausgangsspannung des MP2037 auf 13,4V anzuheben (1V mehr + "Sicherheitsaufschlag") hat geholfen, dass das Relais immer ordentlich anzieht, auch wenn man die Taster nicht fest drückt, "schief" drückt usw.

  • Dann gab es selten noch "Aussetzer". Hier von Pin-A5 auf Pin-D0 zu wechseln hat geholfen, Beschaltung ist die gleiche, wie ich sie angegeben habe. Für meinen Merkzettel habe ich mir notiert, dass es eine schlechte Idee ist Analog-PINs als Digital-Pins zu zweckentfremden. Beim ESP32 war das nicht kritisch, also kam es zur schlechten Angewohnheit. Wieder was gelernt.

Ich hoffe, du hast später alerungsbedingt nicht wieder erneut Probleme.
Deine Schaltung erscheint mir nicht sehr stabil.
Das solltest du untersuchen.

Was den analogen Pin betrifft, ist deine Annahme falsch. Wenn du den analogen Pin als digitalen definierst geht es auch.
Allerdings weiß ich nicht, ob das auch für den MK1000 auch so gilt.

Tommy56:
D0 am Arduino für Taster zu nutzen ist ebenfalls eine schlechte Idee, denn D0 und D1 werden für die Kommunikation mit USB und damit zum Programmieren des MC und für Serial gebraucht.

Gruß Tommy

Danke für diesen Hinweis, nochmal was gelernt. Finde ich allerdings suboptimal, dass so ein Hinweis nicht im Pinout-Diagram steht.

Aber in diesem Fall unkritisch, das Teil ist nicht per USB angeschlossen während es im Steuerkasten seinen Job macht.

HotSystems:
Ich hoffe, du hast später alerungsbedingt nicht wieder erneut Probleme.
Deine Schaltung erscheint mir nicht sehr stabil.
Das solltest du untersuchen.

Du meinst, wenn das Relais alt wird und langsam mechanische Probleme bekommt? Optokoppler altern auch. Ansonsten weiß ich ja mittlerweile was mit der langen Leitung los ist. Ich habe die Ausgangsspannung des MP2037 nicht einfach mal so hochgedreht.

Aber ich bin offen für Kritik, was erscheint an meiner Schaltung nicht stabil?

HotSystems:
Was den analogen Pin betrifft, ist deine Annahme falsch. Wenn du den analogen Pin als digitalen definierst geht es auch.
Allerdings weiß ich nicht, ob das auch für den MK1000 auch so gilt.

Im Fall des MKR1000 ist meine Annahme nicht falsch. Ich kann das einwandfrei reproduzieren, dass sich A5 anders als D0 verhält, wenn man diese als digitalen Input-PIN mit Pullup benutzt.

Ich schrieb ja auch, dass der ESP32 sich da anders verhält.

Ich kann mir schon denken, dass PIN-A5 im Mikroconroller anders aufgebaut ist und anders interpretiert wird, als ein reiner Digital-PIN, wenn man diesen als "fake-Digital-PIN" benutzt.

TheNX:
Aber ich bin offen für Kritik, was erscheint an meiner Schaltung nicht stabil?

Das hatte ich ja schon geschrieben.
Ein 12 Volt Relais sollte auch bei 12 Volt sicher anziehen.
Tut es das nicht, ist etwas faul und wäre mir zu unsicher.

Was den Pin A5 betrifft, hatte ich mich tatsächlich diesmal geirrt, ist ja kein Atmega328 drauf.

Das gilt wohl auch für die Pins D0 und D1.

Hi

Dein Problem bestand wohl zum großen Teil darin, daß der Taster 'Schrott' ist und die Leitungslänge sich schwer negativ auf die 'Kraft' des Relais auswirkt.
Wenn Du den Taster drückst, verbindest Du Dessen Kontakt - der Stromkreis ist geschlossen und die 12V Quelle versucht über 15m Draht zum Taster, Taster, 15m zum Relais, Relais, zum Minus den Strom zu drücken.
Hier werden die Drähte zum Taster viel Spannungsabfall produzieren (wenn am Relais nur 8V ankommen, bleiben an den Drähten 4V 'hängen' - also pro Leitung 2V).
Entweder benutzt Du den Taster als eine Art Sensor - dann hat Er keine Last zu schalten - das Tester-Signal wird dann von einem FET oder Ähnlichem erst 'relais-tauglich' gemacht.

Alles in Allem kein schöner Aufbau und ich befürchte, daß Du in einiger Zeit erneut Probleme bekommst, wenn 'der Gammel' so langsam in den Taster rein zieht - dann hast Du neben schlechteren Kontakten auch noch einen höheren Widerstand an den Anschlussklemmen - die Lösung sollte dann nicht sein 'der Step-UP kann bis 48V ... lasset uns ein Relais braten ...', sondern die Ursache bekämpfen.

Danke für's Feedback!

MfG

So sehe ich das auch und in dem Fall solltest du einen Optokoppler verwenden, da hast du größere Reserven, was die Steuerspannung betrifft
Achja und wo hat der dann Probleme mit Alterung ?
Da ist doch keine Mechanik drin....zumindest kenne ich keinen Optokoppler mit Mechanik.
Sicher, kaputt kann der auch gehen.

Hallo,

vielen Dank nochmals für eure Rückmeldungen.

Ich habe zur Sicherheit dem Relais noch eine Freilaufdiode beigefügt.

Mir ist inzwischen klar, dass der Taster an der Außeneinheit wohl schrott ist, bzw. gammelig.

Aber da spielt der WAF (Woman Acceptance Factor) mit rein und ich darf daher nicht das "Design-Außenteil" mal schnell durch irgendwas gebasteltes ersetzen oder die Wand aufreißen um die arg dünne Klingelleitung durch was gescheites zu ersetzen. Das muss "ordentlich" Aussehen. :wink:

Aber da ist definitiv was neues in Planung und das Außenteil wird ersetzt werden. Ich denke auch, dass sich dann die "Gammel-Problematik" erledigt haben wird.

Wobei ich inzwischen schon einige Klingelanlagen gesehen habe und alle vor-digitalen Klingeln, also kein Bus-System, hatten den Taster über mehrere Meter dünnes Klingeldraht an eine Zentraleinheit geführt. Die Spannung war dann immer relativ hoch, mind. 12V eher noch mehr.

Einfache Klingeln haben i.d.R. weniger Spannung, meistens habe ich 8V gesehen.

Irgendwie will mir da der Idealaufbau einer Außeneinheit noch nicht einfallen. Wetterfestes Gehäuse ist klar, evtl. Taster mit hoher IP Klassifizierung, aber sonst? Taster mit FET erkennen, um minimalste Kontakte zu erkennen, dann mit relativ hoher Spannung übertragen und dann an Optokoppler?

Wegen Optokoppler: LED wird dunkler, Material kann trüb werden innen. Ist sicherlich eher der Fall, wenn die LED zu viel Strom bekommt und wegen Material, wenn das Teil billigst war und ziemlich alt ist. Ich hätte gerne einen Optokoppler genutzt, nur lagen die Relais schon in der Schublade. War auch so ziemlich lehrreich für mich. :slight_smile:

Für lange Leitungen haben sich Stromschleifen (meist 20 mA) bewährt. Die könnte dann die LED des Optokopplers treiben.
Wenn für Dich die evtl. in langer Zeit vorkommende Alterung eines Optokopplers ein Problem darstellt, dürfte Taster und Relais überhaupt keine Option für Dich sein, denn die altern wesentlich schneller.

Gruß Tommy

Bezüglich Analogpins als Digitalpins verwenden hängt es immer vom verwendeten Controller ab.
Arduino UNO mit dem ATmega328 kann das auf den Analogpins A0 bis A5 aber nicht für A6 und A7 falls vorhanden sind wie zB beim Nano.
Die MKR Serie kenne ich nicht. Da ist das Datenblatt des Controllers zu konsultieren.

Das Schwachglied in Deiner jetzigen Schaltung ist der Taster. Der sollte Wasserdicht (IP67) sein. Dann hast Du keine Probleme. Außerdem müssen die Endstücke der Dräte und die Klemmen gegen Oxidation geschützt sein. Es muß kein Wasser hinkommen. Hohe Luftfeuchtigkeit im Schatten im Winter (man erkennt es an Moosbildung) genügt auch schon zur Oxidationshilfe von Kontakten.
Löten ist auch nicht das ware da Zinn bei tiefen Temperaturen sein Kristallgefüge ändert.

Ein dickerer Kabel hilft auch.

Auch ein Optokoppler macht auch weniger Probleme da dieser eine LED hat für die 1,6V ankommen müssen. Mit dem richtigen Vorwiderstand (1kOhm bei 24V und ca 20mA) kann der Kabel ruhig einige 10 Ohm haben und DU ersparst Dir den DC/DC Wandler für 12V.

Grüße Uwe