Relaismodul

Hallo,

habe 5V Relaismodule, die vermutlich wie im angehängtem Schaltbild aufgebaut sind.
Um eine galvanische Trennung vom Arduino zu erreichen würde ich den Jumper entfernen und die Spannung zur Versorgung des Relais über VCC1 und GRD einspeisen. Wie wird aber das Steuersignal vom Arduino eingespeist? Nach meinem Verständnis, kann ich GRD nicht nutzen, wenn ich galvanisch trennen möchte. Reicht es aus, VCC und IN anzuschließen?

Viele Grüße

Gerald

Prinzipielles Problem: Wieso soll die galvanisch getrennte Ansteuerung nnochmal galvanisch getrennt werden?
Der Arbeitsstromkreis ist schon durch durch Verwendung des Relais getrennt, der Rest ist nur die Ansteuerung des Relais. JP1 ist dazu gedacht eventuell zu schwache Versorgung zur Ansteuerung zu unterstützen.

Nun der Hintergrund ist, ich habe einen Barbot (automatischer Getränkemixer) gebaut, der unter anderem ein Magnetventil schalten soll. Und nach Anschluss des Ventils, dass ich über das Relaismodul schalten wollte, stürzt der Arduino immer ab (jedenfalls zeigt des LCD Display I2C nicht mehr richtig an). Ich weiß, das man wohl mit Solid States Relays das Problem beheben kann aber da ich von den beschrieben Relaismodulen einige zu liegen habe, wollte ich versuchen dafür eine Lösungsmöglichkeit zu finden. Mein Lösungsansatz war, auf die gemeinsame Masse zu verzichten.

Pauli58:
... nach Anschluss des Ventils ... stürzt der Arduino immer ab ...

Was für ein Ventil ist das? Ein Link auf die Produktseite oder das Datenblatt wäre gut.
Wie genau hast Du das angeschlossen/anschließen bzw. wie möchtest Du es anschließen? Eine Skizze/Schaltplan wäre gut.

Gruß

Gregor

Das Ventil ist sowas in der Art
https://www.ebay.de/itm/12V-N-C-1-2-Elektrisches-Elektro-Magnetventil-Valve-Ventil-Warmwasserbereiter/401713456754?hash=item5d87fce672:g:YdAAAOSw-R5cdnzs

Da beim Testaufbau ohne I2C-Display16-2 alles funktioniert. Vermute ich, dass der Arduino auch im Barbot richtig funktioniert und "nur" das Display gestört wird. Versorgt wird das Ventil mit dem Netzteil, dass auch den Arduino mit 12V versorgt. Display und Relays wird über ein StepDown-Modul 12V-5V-Abzweig mit Spannung versorgt. Einen Schaltplan habe ich dazu aber nicht.

Mein Plan war, die Steuerung des Relais mit den vorhandenen Bauteilen soweit es geht zu entkoppeln um weiter zu testen. Richtig trennen geht bei einer gemeinsamen Spannungsversorgung wohl ohnehin nicht. Aber mit hoher Wahrscheinlichkeit ist auch nur das Display Störfunkentechnisch zu sensibel.

Also wird das Vetil wohl an den Schaltkontakten des Relais angeschlossen sein. Damit ist es doch schon galvanisch vom Rest der Schaltung getrennt, solange keine andere Verbindung besteht.
Generell ist es sinnvoll über das Ventil (wenn Gleichstromgesteuert) eine Freilaufdiode zu schalten. Du kannst auch Ferritkerne in die Leitungen zu dem Ventil verbauen - hilft auch schon manchmal.

Edit: I2C Leitungen mal mit pull-up / pull-down an beiden Enden hochohmig beschalten. Vielleicht sind es "nur" EMP - Einflüsse

Pauli58:
... Aber mit hoher Wahrscheinlichkeit ist auch nur das Display Störfunkentechnisch zu sensibel.

Ich tippe eher darauf, dass das Ventil beim Anziehen kurz zu viel Strom zieht. Der Tipp mit Pull-Up-Widerständen ist auch gut.

Gruß

Gregor

Nun, da es ohne Display funktioniert, schließe ich einen Spannungseinbruch aus (läuft auf einem alten modifiziertem PC-Netzteil 100W!).
Wie würde denn die Einbindung der Pull-Up Widerstände aussehen müssen (Software oder Hardware wie einbinden)? Bin nur Basteltechnisch elektrisch unterwegs aber bereit dazu zu lernen.

Pauli58:
Wie würde denn die Einbindung der Pull-Up Widerstände aussehen müssen (Software oder Hardware wie einbinden)?

Siehe

Gruß

Gregor

Am einfachsten ist es doch, wenn du mal nach I2C-Pullup-widerstände googelst.
Da kannst du dir sämtliche Grundlagen dazu anlesen.

Auch wenn es aktuell nicht dein Problem löst, solltest du die Freilaufdiode an den Ventilen unbedingt einsetzen.
Damit ersparst du die spätere Schäden an deinen Bauteilen.

Ist die Freilaufdiode in dem Modul nicht schon dabei (siehe Schaltplan im 1. Post)?
Also ich werde dann mal in die beiden Steuerleitungen zum I2C jeweils einen 5 kOhm Widerstand zu VCC einbinden.

Das ist die Freilaufdiode für die Relaisspule. Und genauso sollte eine über die Spule des Magnetventils.

Nun, weder Freilaufdiode noch PullUp-Widerstände haben das Problem gelöst. Ich danke erst einmal für die Hilfe. und warte auf die SolidStateRelais.

Pauli58:
Nun, weder Freilaufdiode noch PullUp-Widerstände haben das Problem gelöst. Ich danke erst einmal für die Hilfe. und warte auf die SolidStateRelais.

Zeige uns doch mal ein Schaltbild, wie du alles verdrahtet hast.

Und was für ein SSR hast du bestellt ?
Du weist sicher, dass normale SSR nur mit Wechselspannung arbeiten.

Warum verwendest du nicht einfach Mosfets zum Schalten der Ventile ?
Da sparst du die Relais und dann auch die SSR.

Ja MosFets werde ich demnächst ausprobieren (hatte die Relais halt liegen). Hab mal einen Schaltplan gemacht siehe Anhang (pullup-Widerstände und Freilaufdiode sind noch nicht dabei und das Relaismodul-Symbol ist ohne Optocopler). Im Anhang auch der Code für die Maschine (vorbereitet für Sprachausgabe für die Kinder, die noch nicht lesen können. Ist aber auskommentiert. Soll später kommen. Läuft auch alles wie gewünscht aber wenn ich das Ventil anschließe geht das Display nicht mehr richtig.

BarBot.jpg

MeinBarBot.ino (14.7 KB)

Hab jetzt scheinbar die Lösung gefunden (Jedenfalls geht das Display jetzt).
Und zwar habe ich die Reihenflge dieser Aufrufe im SETUP wie folgt geändert:

digitalWrite(WasserRelaisPin, HIGH);
pinMode(WasserRelaisPin, OUTPUT);

war vorher andersrum jedoch im geposteten Sketch schon richtig nur noch nicht hochgeladen).
Diese Reihenfolge soll das klackern des Relais beim Einschalten verhindern und bringt so scheinbar auch das Display nicht mehr durcheinander.

Hi

Ok, verstanden - durch das ditigalWrite wird der PullUP aktiviert - Das reicht dem Opto-Koppler, daß Er 'kein LOW mehr sieht' - somit zieht das Relais auch nicht an. Vorher, als reiner INPUT, wurde ebenfalls kein LOW gesehen, da der Input-Pin zu wenig Strom aufnimmt.
DANACH das pinMode schaltet den Pin auf OUTPUT um, nun wird aktiv HIGH/LOW ausgegeben - das HIGH stört das Relais nicht, das LOW würde Es anziehen lassen.

Dann muß Dein Programm aber in der Vorher-Version schon recht lange gewartet haben, bis das Relais aktiv zum ersten Mal angesprochen wird.
Das Relais ist Mechanik und wiegt auch 'ein Bisschen' - Das braucht Zeit, um den Kontakt zu schalten - für ein hörbares Klack sollten Da schon einige ms nötig sein - aber wie Dem auch sei - das Problem wurde von Dir schön umschifft!

MfG

So, nach ein paar Anpassungen, bin ich mit dem Ergebnis zufrieden. Das Magnetventil funktioniert baubedingt nur wenn Druck auf der Wasserflasche ist und es ist besser bei Schorle erst das Wasser einlaufen zu lassen und dann den Saft. Bananensaft muss verdünnt werden sonst funktioniert der Ausgießer unzuverlässig. Wer auf Facebook ist kann sich das Ding auf meiner Seite "Gerald Paul" in Aktion ansehen. Der Neopixelring wird allerdings über einen separaten pro mini angesteuert.

Ich kann mir nicht vorstellen, das deine Änderung allein das Problem löst.
Vermutlich sind alle gemachten Hardware und Software-Anpassungen die Lösung deines Problems.