Arduini Mega stürzt ab (Magnetventil über Relaisboard)

Hallo zusammen,

ich habe ein Problem mit meinem Arduino Mega 2560 in Verbindung mit einem Ventilblock (8 Magnetventile integriert) und einem 8-Kanal Relaisboard.

Hardware:

Verkabelung:
Der Arduino ist in meiner momentanen Testumgebung per USB an meinen Laptop angeschlossen und verfügt über KEINE externe Stromquelle.

Das 8-Kanal Relaisboard ist über die IN1-IN8 Pins mit den Digitial Pins am Arduino verbunden (als OUTPUT konfiguriert). Außerdem mit +5V vom Arduino für die LEDs der Optokoppler. Masse ist NICHT verbunden, somit sind sie meiner Auffassung nach galvanisch getrennt.

Außerdem ist das Relaisboard mit +5V an JD-VCC verbunden und Masse (für die Relais).

16x2 LCD Display mit I2C Controller über SDA (PIN20) und SCL (PIN21) verbunden.

Die komplette Verkabelung habe ich auf einer Grafik illustriert.

Problem:
Wenn ich einen Schalter gedrückt halte und dann wieder los lasse, stürzt der Arduino ab. Das sehe ich daran, dass das Display kurz dunkel wird und der Arduino kurz Orange blinkt (wie beim Einschalten).

Ich habe nach dem Problem gegoogelt und auch viele Beiträge mit stark ähnlichen Problemen gefunden. Die Ursache war immer die Induktionsspannung. Allerdings hat bei mir der Arduino eine komplett eigene Spannungsversorgung und ist doch durch die Optokoppler komplett von den Relais getrennt!?

Über Hilfe würde ich mich sehr freuen, da ich mit meinem Latein am Ende bin.

Besten Dank im Voraus,
Matthias

Es kann sein dass du den Jumper entfernen musst um die galvanische Trennung aufzuheben (und nicht die 5V vom Arduino mit dem anderen Netzteil zu verbinden!):

Serenifly:
Es kann sein dass du den Jumper entfernen musst um die galvanische Trennung aufzuheben (und nicht die 5V vom Arduino mit dem anderen Netzteil zu verbinden!):

Der Jumper ist entfernt.

Hast du die Schaltung auch mal ohne Display getestet ?
Ich vermute über die 4 Meter lange I2C-Leitung (ist für I2C viel zu lang) kommen Störimpulse rein, die den Mega zum Absturz bringen.

Das hatten wir doch schon paar mal, nachdem SSR genommen wurde, war das Problem weg.

Und was passiert ohne Relaiskarte?
Was passiert mit RK, aber ohne Ventile?
Wie hoch ist die Spannung am Netzteil/Spannungsregler/Allen VCC-GND Messmöglichkeiten VOR dem Schalten und WÄHREND des Schaltens?
Ich nutze auch mehrere so ähnliche Relaiskarten und kann das nicht nachvollziehen, das der Arduino abschmiert.
Den Tip mit der langen i2c-Leitung auch mal bitte ausprobieren!

HotSystems:
Hast du die Schaltung auch mal ohne Display getestet ?
Ich vermute über die 4 Meter lange I2C-Leitung (ist für I2C viel zu lang) kommen Störimpulse rein, die den Mega zum Absturz bringen.

Habe auch schon die I2C-Leitung komplett abgesteckt (sprich kein Display mehr) und das Board startet trotzdem neu.

skorpi08:
Das hatten wir doch schon paar mal, nachdem SSR genommen wurde, war das Problem weg.

SSR = Solid State Relais?
Sind die eigentlich nicht nur für Wechselstrom?
Habe nämlich dieses SSR-Board gefunden:

Aber da steht "Nennlast: 2A bei 100 bis 240VAC (50/60Hz)" und auch laut Bewertungen soll das nur mit AC funktionieren.

FlyingEagle:
Und was passiert ohne Relaiskarte?
Was passiert mit RK, aber ohne Ventile?
Wie hoch ist die Spannung am Netzteil/Spannungsregler/Allen VCC-GND Messmöglichkeiten VOR dem Schalten und WÄHREND des Schaltens?
Ich nutze auch mehrere so ähnliche Relaiskarten und kann das nicht nachvollziehen, das der Arduino abschmiert.
Den Tip mit der langen i2c-Leitung auch mal bitte ausprobieren!

Ohne Relaiskarte -> Keine Probleme
Mit Relaiskarte, aber ohne Ventile (+12V von abgeklemmt) -> Keine Probleme
Mit Relaiskarte und mit Ventile -> Absturz
I2C-Leitung komplett abgeklemmt -> trotzdem Absturz

Netzteil zeigt konstant 12V und ca. 20mA Ruhestrom an, wenn ein Ventil geschalten wird kommt ca. 1A dazu. Spannung am Spannungsregler 4,96V

matthias1987:
Mit Relaiskarte, aber ohne Ventile (+12V von abgeklemmt) -> Keine Probleme

Dann solltest du auch Freilaufdioden parallel zu den Ventilen einsetzen.

Freilaufdioden brauchts imho nicht, da doch eh Optokoppler drin sind, und noch Relais.

Hängt er sich auf, VOR, WÄHREND oder NACH dem Schaltvorgang?

Ich hatte mal so ein ähnliches Phänomen beobachtet bei 230V Rollos, welche über diese Relaiskarte geschaltet werden. Unterschied hier: es waren Schieberegister zwischen Arduino und RK. Der Arduino selbst "lebte" nach jedem Schaltvorgang nur wurden willkürlich andere Relais danach angezogen oder abgeworfen. Löste man das neu setzen der SR aus, lief wieder alles.

Ich würde dennoch empfehlen zum Treiben der Relaiskarte noch Treiber wie den ULN2803A oder UDN2981A zu verwenden, da wären dann Freilaufdioden in Richtung Arduino schon mit bei, und egal was die RK zieht, man ruiniert sich nicht den Arduino.

Die FD an den Ventilen klingen dennoch gut :wink:

10.5-16 Volts, nix von DC oder AC

FlyingEagle:
Freilaufdioden brauchts imho nicht, da doch eh Optokoppler drin sind, und noch Relais.
....
Die FD an den Ventilen klingen dennoch gut :wink:

Was denn nun ?

Die Freilaufdiode soll in diesem Fall nicht die Zerstörung eines Bauteils verhindern, sondern die entstehende Spannung beim Abfallen des Magnetventils kurzschließen.

Dieser Spannungsimpuls kann durchaus den Arduino zum Absturz bringen.

Und auf den Relaiskarten sind schon Freilaufdioden nebst Transistoren und Optokoppler verbaut.

Tja, genau das dachte ich auch, meine Probleme hatte ich ja schon geschrieben.
Hab das mit deinem TIP und den FD anfangs falsch verstanden … deswegen habe ich nochmal edit gemacht und den letzten Satz eingefügt :slight_smile:

FlyingEagle:
Tja, genau das dachte ich auch, meine Probleme hatte ich ja schon geschrieben.
Hab das mit deinem TIP und den FD anfangs falsch verstanden ... deswegen habe ich nochmal edit gemacht und den letzten Satz eingefügt :slight_smile:

OK, alles klar.

Gut, sind wir uns einig.
Kann man die FD auch bei Wechselspannung einbauen? Oder gibts da andere Möglichkeiten nen Peak zu eliminieren?

FlyingEagle:
Freilaufdioden brauchts imho nicht, da doch eh Optokoppler drin sind, und noch Relais.

Hängt er sich auf, VOR, WÄHREND oder NACH dem Schaltvorgang?

Ich hatte mal so ein ähnliches Phänomen beobachtet bei 230V Rollos, welche über diese Relaiskarte geschaltet werden. Unterschied hier: es waren Schieberegister zwischen Arduino und RK. Der Arduino selbst "lebte" nach jedem Schaltvorgang nur wurden willkürlich andere Relais danach angezogen oder abgeworfen. Löste man das neu setzen der SR aus, lief wieder alles.

Ich würde dennoch empfehlen zum Treiben der Relaiskarte noch Treiber wie den ULN2803A oder UDN2981A zu verwenden, da wären dann Freilaufdioden in Richtung Arduino schon mit bei, und egal was die RK zieht, man ruiniert sich nicht den Arduino.

Die FD an den Ventilen klingen dennoch gut :wink:

Er hängt sich nach dem Schaltvorgang auf, also wenn ich den Taster der das Ventil steuern, wieder los lasse.

Das mit den Treibern sagt mir ehrlich gesagt nichts, da ich wohl noch nicht tief genug in der Materie stecke. Hast du mir das hilfreiche Links?

HotSystems:
Dann solltest du auch Freilaufdioden parallel zu den Ventilen einsetzen.

Das mit den Freilaufdioden werde ich auf jeden Fall testen. Kannst du mir da eine bestimmt Diode empfehlen? Wenn ich z.B. bei Conrad suche, gibt es hunderte Ergebnisse.
Aber mir erschließt sich trotzdem nicht, wieso es notwendig ist, da ja Optokoppler verwendet werden.
Liegt das an den Magnetfeldern die entstehen und weil der Arduino direkt daneben ist?

Kann man die FD auch bei Wechselspannung einbauen?

Irrsinn!
NEIN!
Was für eine Frage.....?
(geprägt von einer herzerfrischend Kenntnis freien Naivität)

Oder gibts da andere Möglichkeiten nen Peak zu eliminieren?

Ja: Snubber

Macht Varistor nicht dasselbe wie Snubber?
Der Varistor verhindert die Funken, so wie ichs verstanden hab.

Der Varistor verhindert die Funken,

Er schluckt Überspannungen.
Wenn das in diesem Fall eins der Ziele ist, dann ....

Leider altern diese Dinger bei jeder Belastung.
Sie sind also eher da gut aufgehoben, wo sie nur ganz selten mal eine (sonst für die Schaltung tödliche) Spitze fressen müssen.

Aber hier dreht es sich eher darum die Relaískontakte zu schützen.
Und um störende Rückwirkungen zu vermeiden.

Der Snubber in Relaisschaltungen soll in erster Linie den Strom übernehmen, wenn das Relais öffnet.
Im Öffnungsmoment würde die Spule des Ventils sonst dafür sorgen, dass an den Kontakten ein Lichtbogen erzeugt wird. Dadurch altert das Relais. Schnell.
Der Snubber kann in AC und DC Schaltungen gleicher Maßen eingesetzt werden.

Lichtbogenvermeidung ist Funkstörungsvermeidung.
Der Snubber erschlägt also 2 Fliegen mit einer Klappe.

Die Freilaufdiode (nur DC Schaltung) übernimmt auch den Stromfluss. Begrenzt die Spitzenspannung auf ihre Durchlassspannung. Das führt aber leider dazu, dass das Ventil langsamer abfällt/schließt/öffnet, als nötig. Wenn schnelle Schaltzeiten gefordert sind, sind FDs die falsche Wahl. Ansonsten goldrichtig, da sehr zuverlässig, einfach und preiswert.

Anstelle einer einfachen FD kann man auch eine Z-Diode+Widerstands Kombi einsetzen.
Auch damit kann man Spannungen, über der Nennspannung, vermeiden/begrenzen.
Nicht ganz so schonend für die Relaiskontakte, aber mildert Funkstörungen und erlaubt das schnellere Abfallen des Ventils.
,

Na genau dafür sind doch die Varistoren?
Um die Kontakte zu schützen, damit die nicht festbrennen und keine Funken entstehen.

combie:
(geprägt von einer herzerfrischend Kenntnis freien Naivität)

Tja so isser :slight_smile: :slight_smile: :slight_smile:

Snubber, Varistor ... in AC ... gibts da evtl. fertige Komponenten?