Go Down

Topic: Seltsames Problem bei Nutzung eines Relais  (Read 335 times) previous topic - next topic

TheNX

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!

 

DrDiettrich

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?

ElEspanol

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  :)

HotSystems

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.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

TheNX

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.


HotSystems

#5
Oct 20, 2019, 12:51 pm Last Edit: Oct 20, 2019, 12:58 pm by HotSystems
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 ?
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

postmaster-ino

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
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

TheNX

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.

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.

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.


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.

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.

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.


HotSystems

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

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uwefed

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

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.

Tommy56

#11
Oct 20, 2019, 04:09 pm Last Edit: Oct 20, 2019, 04:23 pm by 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.
MK1000 übersehen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

HotSystems

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.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

TheNX

#13
Oct 20, 2019, 04:26 pm Last Edit: Oct 20, 2019, 04:28 pm by TheNX
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.

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?

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. 

HotSystems

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.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Go Up