EMV für Arduino

Hallo zusammen,

ich nutze einen Pro Mini Clone zur Pumpensteuerung. Nichts aufwändiges, nur abhängig von Schwimmerschaltern wird ein Relais angesteuert und eine Nachricht an einen PC gesendet.
Das Programm ist übersichtlich und läuft wie gewünscht, trotzdem kam es zu unerklärlichem Verhalten.
Bei debuggen stellte sich heraus, dass die Inputpins mit low gemessen werden, obwohl der Schwimmerschalter nicht geschaltet hat.

Die Ursachensuche hat dann gedauert, bis ich festgestellt habe, dass das Problem recht reproduzierbar auftritt, wenn eine Leuchtstoffröhre mit KVG geschaltet wird.

Der erste Versuch, statt den internen Pullupwiderständen externe 4,7 KOhm Widerstände zu verwenden, brachte kaum Besserung.
Deutlich größeren Effekt hatte es, das Gehäuse mit etwas stärkerer Alufolie auszukleiden, die ich mit der Schirmumg der Kabel verbunden habe.

Die Leuchtstoffröhre habe ich jetzt gegen eine LED-Leuchte getauscht, mit der die Proleme nicht auftreten, allerdings tritt das Problem hin und wieder auf, wenn eine entferntere Leuchtstoffröhre geschaltet wird.

Mich interessiert jetzt, was macht ihr standardmäßig für eure Schaltungen, um die EMV-Probleme zu vermeiden? Diese Probleme habe ja ich sicherlich nicht alleine.

Meine bisherigen Ansätze:
-nur noch geschirmte Kabel für Leitungen zu Sensoren
-Schirmung mit GND verbunden
-Keramikkondensator 104 und ein Elko in die Stromversorgungsleitung nahe am Arduino
-Relais immer mit Freilaufdiode

Nutzt ihr Zenerdioden oder TVS-Dioden?
Falls ja, wie bestimmt man da, welche man benötigt? Kenne mich damit leider nicht aus.

Bin gespannt auf eure Rückmeldungen. Schon mal vielen Dank.

Viele Grüße

Frank

In solchen Fällen setze ich auch schon mal 1k Pullup-Widerstände ein.
Die kannst du sogar wenn nötig noch kleiner machen.
Metallgehäuse bzw. Abschirmungen der Elektronik musste ich bisher noch nicht verwenden, kann aber nicht schaden.

(deleted)

Hallo,
schalte parallel zum Schwimmerschalter einen Keramikkondensator mit 470nF.
Das dämpft die Störspitzen und hat kaum Einfluss auf deine Schaltung.
Zusätzlich kannst du noch eine Induktivität vor deine Arduino-Eingang schalten.
Der Wert ist hier nicht entscheidend, es sollten einige (z.B. 33) µH sein.
Induktivitäten in der Plusleitung (Reihenschaltung) schaden auch nie und Glätten die Versorgungsspannung zusätzlich

Danke für die bisherigen Rückmeldungen.

Hier der aktuelle Zwischenstand:
Ich habe festgestellt, dass ich noch ein ungeschirmtes Kabel zu einer 5V Led-Leuchte habe.
Jetzt frage ich mich, kommen die Störungen darüber ins System? Breiten sich die Störungen einer Leuchtstoffröhre als Funkwelle aus oder verbreiten sie sich leitungsgebunden?
Zum Test habe ich mir vom Arduino die Werte auf den Plotter ausgeben lassen. Damit erziele ich aber keine Erkenntnisse. Ich vermute, die Übertragung über die serielle Schnittstelle ist zu langsam im Vergleich zur Dauer der Störungen. Ich habe in einem weiteren Versuch aufsummiert, wie oft ein Pin LOW ist (das konnte ich natürlich nicht für die Stromversorgung machen). Ergebnis ist, dass die Pins nur für wenige Messungen auf LOW fallen. Ich berechne deshalb jetzt nur noch einen Mittelwert und verarbeite das als Ergebnis weiter. Zusätzlich habe ich aber auch noch die Kondensatoren über die Sensorleitungen gelötet. Damit scheint es jetzt zu funktionieren.

Kann ich die Rückmeldungen hier so auffassen, dass TVS-Dioden eher unüblich sind?

Vielen Dank für den Meinungaustauch und viele Grüße

Frank

Filter doch die Störspitzen per Software raus. Schwimmerschalter und Pumpen sind ja schnarchlangsame Systeme. Reagier erst, wenn das Signal 1 Sekunde stabil (ohne Prellen) anliegt.

Momentan keine Fehlauslösungen mehr.

Vielen Dank für eure Hilfe.

(deleted)