kann ein Magnetfeld/Induktion Interruptprobleme verursachen?

Hallo zusammen,

ich stehe leider vor einem Problem das ich selbst durch tagelange Lösungsversuche nur lokalisieren aber nicht beheben konnte. Evtl. hat hier ja jemand einen kleinen Tipp für mich.

Kurze Beschreibung: Ich habe einen effeff 118 elektrischen Türöffner versorgt mit DC12V angesteuert über entkoppelte Relais. Neben der Tür verwende ich einen NFC Kartenleser der Wiegand34 spricht. Beide Geräte sind über eine 10m lange 8x0,8 Klingelleitung an ein Arduino Mega 2560 angeschlossen. Die verwendete Wiegandlibrary ist die ugge75/Wiegand-Protocol-Library-for-Arduino-MEGA-2560. Diese Library verwendet die Interrupt PINs um eingehende Kommunikation zu erkennen.

Sowohl der Kartenleser funktioniert reibungslos als auch der Türöffner unabhängig voneinander (reproduzierbar fehlerfrei) Verwende ich allerdings einmal den Türöffner dann funktioniert der Kartenleser nicht mehr. Mit nicht funktionieren meine ich, dass der Arduino nicht mehr darauf reagiert und nicht feststellt dass eine Kommunikation ankommt.

Folgendes kann ich ausschließen: - Der Kartenleser funktioniert nach dem betätigen fehlerfrei. Ich habe mit einem Logikanalyzer die PINs am Arduino abgefragt. die einsen und nullen kommen perfekt an. Somit muss es am Arduino bzw. der Auswertung des Interrupts liegen. - Die Spannungsversorgung ist nicht das Problem. Ich hatte Über- oder Unterspannung vom Netzteil im Verdacht. Wenn ich den Türöffner seperat völlig unabhängig über eine 12V Batterie versorge (direkt angeklemmt ohne über das 10M lange Kabel zu gehen) habe ich das Problem ebenfalls. - Ein "Übersprechen/Induktion" durch den Türöffner erfolgt nicht in diesem Sinne dass ein Bitfehler zustande kommt. Ich habe auf dem Logikanalyzer keinerlei Aktivität erkennen können, während der Türöffner betätigt wird.

Da die Spannungsversorgung zum Testen völlig unabhängig war, kann ich eigentlich nur noch den Fehler auf das Magnetfeld durch den Türöffner schließen.

Wenn ich den Reset des Arduinos danach betätige funktioniert alles Fehlerfrei..

Frage: ist es möglich dass der Türöffner irgendwie eine Störung auf die Leitung gibt, die dann die Interrupts zum Abstürzen bringt ? Ein zweiter Kartenleser (an einer anderen Tür, somit andere Leitungsführung) auf den anderen InterruptPINs funktioniert konstant einwandfrei.

Ich bin nun absolut Ratlos. Evtl. hat ja jemand noch ein paar Vorschläge/Tipps für mich.

Vielen Dank.

Grüße

Michael

Hast du evtl die Freilaufdiode vergessen?

Nicht nur Interruptproblem können vorhanden sein.

Dein langen Leitungen empfangen Störungen, da brauchst du unbedingt Pullup-Widerstände an den Eingängen und du musst für den Magneten eine Freilaufdiode einsetzen.

Wenn du ein Schaltbild postest, können wir dir auch deine Fehler aufzeigen.

Hi

Das 8-Adrige Telefonkabel, gibt's dazu eine genauere Bezeichnung? Bei einem JY(st)Y 4x2x0,8 wären immer zwei Drähte miteinander verdrillt - Diese sollten auch zusammen benutzt werden, damit sich Störungen gegenseitig (Hin- und Rückweg) auflösen. Rot-Blau wäre so ein Pärchen, wenn die anderen Pärchen nicht mehr zuzuordnen sind (ist jeweils ein weißer Draht mit drin, entspricht dem Roten).

Frage an 'die Anderen': Kann man den Kartenlesen erneut initialisieren? Also kann ich die Instanz des Kartenleser 'abschießen' und neu erstellen? (käme mir auch gerade recht, da ich eine Dot-Matrix habe, Die sich ab und an aufhängt ...)

MfG

Hallo zusammen, vielen Dank für die schnellen Rückmeldungen.

Der Türöffner hat eine integrierte bipolare Schutzdiode enthalten. Da der Stromkreis vom Türöffner aber absolut getrennt von der Elektronik des Arduinos ist, sehe ich hier nicht die Probleme. Selbst wenn ich Ihn direkt an eine Batterie klemme habe ich das Problem. Hier besteht dann absolut keinerlei Kontakt mehr zu meiner Steuerung (höchstens durch Strahlung/Induktion).

Leider ist das Kabel eine "Klingelleitung". Keine Telefonleitung oder ähnliches. Keine Schrimung und nicht einmal eine Verdrillung. Hier sind wir natürlich absolut einer menge potentiellen Problemen ausgesetzt. (Ich kenne mich in der Nachrichtentechnik relativ gut aus)

Ich habe ein Serial.println in der Interruptmethode eingefügt und habe in der Tat gesehen dass das Magnetfeld des Türöffners eine Induktive Last auf die Leitung bringt die den Interrupt flappen lässt.

Der Interne Pullup Widerstand war wohl nicht stark genug (??) um diese Störungen zu kompensieren.

Um das genauer testen zu können werde ich ein Widerstand erst kaufen müssen (habe leider kein Sortiment mehr)

Ich gebe zu dass die physikalische Grundlage (Kabel, ...) nicht die optimalste ist. Ich habe das Problem jetzt wegen des Zeitdrucks umgangen, indem ich vor dem anziehen des Türöffners ein detachInterrupt mache (und somit die Störungen ignoriere) und danach wieder ein attachInterrupt.(das ganze geschieht alles innerhalb von max. 100ms, weshalb ich hier sogar ausnahmsweise mit einem delay arbeite)

@postmaster-ino ich verstehe nicht genau was du mit neu initialisieren meinst. Mein Kartenleser kann man komplett neu starten wenn der Strom kurz weg genommen wird. Ansonsten ist das Wiegand Protokoll ja nur eine Abfolge von einsen und nullen auf der Leitung die gezählt werden (abhängig auf welcher der zwei Leitungen der Stromimpuls kommt). Hier muss seitens des Arduinos nichts resettet werden sondern evtl. einfach nur ein attach/detachInterrup(falls dein Aufbau analog funktioniert) und die counter variablen zurückgesetzt werden.

Viele Grüße Michael

Dann mach doch bitte, worum wir dich gebeten haben.

Der Türöffner hat eine integrierte bipolare Schutzdiode enthalten. Da der Stromkreis vom Türöffner aber absolut getrennt von der Elektronik des Arduinos ist, sehe ich hier nicht die Probleme. Selbst wenn ich Ihn direkt an eine Batterie klemme habe ich das Problem. Hier besteht dann absolut keinerlei Kontakt mehr zu meiner Steuerung (höchstens durch Strahlung/Induktion).

Alles klar... Keine Fragen. Alles klar.

Du glaubst ein Problem mit "Strahlung/Induktion" zu haben. Bist dir aber sicher dass eine Freilaufdiode nicht hilft.

Alles klar... Keine Fragen. Alles klar.

Damit endet mein Hilfeversuch hier.

clusti: ..... Hier besteht dann absolut keinerlei Kontakt mehr zu meiner Steuerung (höchstens durch Strahlung/Induktion). .....

Und warum fragst du da nicht in einem "EMV-Forum" nach. Dann hat es deiner Meinung nach ja nichts mit dem Arduino zu tun.

Ich gehe mal davon aus, dass deine Erfahrung mit derartigen Dingen gleich NULL ist.

Aber wie combie schon "vermutet", es macht keinen Sinn hier weiter Tipps zu geben.