Spannungsversorgungsproblem

Hallo Zusammen,
ich habe ein Problem mit der Spannungsversorgung von folgender Schaltung.
Steuerung.pdf (1.5 MB)

Wenn ich von diesem ganzen Zoo nur einzelne Bausteine betreibe, dann funktioniert das jeweils reibungslos. Im Ganzen funktioniert es kurz - dann bleibt das ganze stehen.
Auf Seite 2 der Darstellung habe ich zwei Arten der Spannungsversorgung dargestellt die ich bisher getestet habe. Bei beiden Arten bekomme ich das gleiche Problem.
Wie kann ich das am besten beheben?
Für einen Tip wäre ich sehr dankbar.

Verwendete Bausteine:
Netzteile:

5 Volt Netzteil:

12 Volt Netzteil:

https://www.leuchtenfox.de/deko-light/hep-led-12v-dc-60-watt-schaltnetzteil-lhv60w12/dk-872791

24 Volt Netzteil:

I2C Bausteine:

LCD Display:

IIC/I2C/TWI 2004 Serielle Blau Grün Hintergrundbeleuchtung LCD Modul für Arduino UNO R3 MEGA2560 20X4 LCD2004|LCD Modules| - AliExpress

Temperatursensoren:

MCP9808 High Accuracy I2C Temperature Sensor Breakout Board : ID 1782 : $4.95 : Adafruit Industries, Unique & fun DIY electronics and kits

Lichtsensoren:

Lichtsensor BH1750 I2C für Arduino und Raspberry Pi - MAKERSHOP.DE

Echtzeituhr:

Real Time Clock RTC DS3231 I2C Echtzeituhr – AZ-Delivery

Weitere Bausteine:

Summer:

Aktiver Summer Buzzer Sound Alarm Modul Kabel Raspberry Pi Arduino aktiv active - MAKERSHOP.DE

SPI Reader:

SPI SD Kartenreader gesucht? – AZ-Delivery

16 Kanal Relaismodul:

16 Channel relay module (5V) - www.funduinoshop.com

Matrixtastatur:

Matrix Schalter Tastatur 34 44 4x4 3x4 12 16 Tasten Tastatur Array modul ABS Kunststoff Tasten Taste Membran Schalter DIY für Arduino|Integrated Circuits| - AliExpress

RGB LED-Controller:

hui wow wat ne umfangreiche Doku und Projekt!

Arduino über über 12V versorgt bedeutet bei größerem Strombedarf geht der Spanungsregler in die Knie. Bei 5V weiß ich es nicht genau.

Ich würde alle 5V-Komponenten direkt aus dem 5V/3A-Netzteil versorgen.

Das bedeutet die GND-Leitungen von Arduino und 5V-Netzeil sind miteinander verbunden
aber die 5V auf dem Arduino bleiben frei und nur die +5V vom 3A-Netzteil sind mit den Komponenten verbunden.

Du hast noch nicht genauer beschrieben wie der Test einzeln/alles abläuft

Hast du ein Gesamtprogramm und dann hast du alle bis auf eine Komponente abgeklemmt und dann getestet? Als es läuft immer das gleiche Gesamtprogramm das alle Komponenten ansteuern kann, aber es ist immer nur eine Komponente elektrisch angeschlossen?

Oder hast du mit lauter verschiedenen Einzelprogrammen getestet?
Dann könnte es ja auch ein Softwarefehler sein.

Was passiert wenn du eine zweite, dritte, vierte Komponente hinzunimmst?

Hast du im Programm serielle Ausgaben mit denen du mitverfolgen kannst was abläuft?
vgs

woher weißt du dass es an der Spannungsversorgung liegt und nicht am Programm?
Zeige bitte auch ein Echtbild von deinem Aufbau damit wir sehen welche Distanzen deine Leitungen haben.

Ich teile die Ansicht von StefanL38 daß der Spannungsstabilisator auf dem Arduino überlastet wird. und das das primäre Problem sein könnte.
Des Weiteren sind noch andere Unzulässigkeiten:

Aus dem PDF Dokument:

5m sind für I2C zuviel. zwei Mal 5m auch.

Ich weiß nicht ob das 24V Netzteil für die Spannungsversorgung der 24V Relais geeignet ist.

Grüße Uwe

Die Distanzen der Leitungen sowie Leitungsquerschnitte habe ich jeweils in den Skizzen angegeben.
Das Programm läuft sauber durch wenn ich bspw. die Sensoren abklemme und die Sensorwerte in Variablen simuliere (solange keine großen Verbraucher dran hängen habe).

Hi,
super - vielen Dank für die umfangreiche Antwort.
Der Test läuft so, dass ich immer das Gesamtprogramm verwende welches alles ansteuert. Lediglich Hardwarekomponenten sind dann einzeln abgeklemmt. Im Falle der Sensoren gebe ich dann Sensorwerte an den Variablen vor.
Das mit dem systematischen Testen und Ausgeben des Systemzustandes über die serielle Schnittstelle habe ich versucht. Zustandsvariablen etc. gibt er mir jeweils immer korrekt wieder.
Das mit dem systematischen nacheinander Abklemmen bzw. Anklemmen einzelner Komponenten hab ich auch versucht - komme da komischerweise nicht wirklich auf genau wiederholbare Ereignisse. Zwei Erkenntnisse haben sich aber immer wieder wiederholt gezeigt.
Am kritischsten scheinen die I2C Sensoren über die langen 5 Meter Leitungen zu sein. Wenn z.B. nur der Helligkeitssensor abgeklemmt ist, dann läuft das ganze stabil solange krine großen Lasten geschaltet werden. Solange kein Vebrbraucher in den Steckdosen steckt, dann schaltet er diese auch korrekt ein und aus. Man kann messen, dass die Spannungszustände dort jeweils korrekt anliegen. Sobald aber ein etwas größerer Verbraucher in einer Steckdose steckt, dann spielt das ganze wieder verrückt.
Bezüglich des Anschlusses der Komponenten bin ich mir in allen Fällen bis auf eine Ausnahme eigentlich auch recht sicher, dass dieser korrekt ist. In den meisten Fällen waren recht gute Beschreibungen dabei.
Die Ausnahme ist das Relaismodul. Hierzu gab es keine Anleitung. Ich habe daher einfach die externe 5V Spannungsversorgung an den Relais-Lüsterklemmenblock angeklemmt und alle Pins mit dem Arduino. Damit bekommt das Teil aber zweimal 5V - einmal von der externen Spannungsversorgung und zum anderen über den 5V Pin vom Arduino. Das kommt mir mit meinem laienhaften Elektronikverständnis komisch vor.

Yupp - diese Leitungslängen scheinen es zu sein.
Ist das ein generelles Problem oder kann ich das in den Griff bekomme wenn ich diese einfach separat mit 5V versorge wie von StefanL38 vorgeschlagen?

Zu dem 24V Netzteil - mmh - ich wusste nicht, dass es da geeignete und ungeeignete 24V Quellen gibt. Hast Du einen weiterführenden Vorschlag wie ich mich da schlau machen kann bzw. wie ich erkennen kann was funktioniert?

I2C ist ein spezieller Bus, der für eine Geräte interne Kommunikation entwickelt wurde.
Da sind 5m Kabellänge def. Immer zu lang, wenn keine besonderen Vorkehrungen getroffen werden. Dies können z.B. Bus-Extender sein, die du dazwischen schalten kannst.
Zudem ist der Bus auch sehr empfindlich, Störungen von geschalteten Motoren gegenüber. Ein sauberer elektrischer Aufbau kann da sehr hilfreich sein.

I2C ist nicht für mehr als 1m geeignet. Durch 2 Sensoren mit jeweils 5m erreichst Du eine Gesamtkabellänge von über 11 m.

Das ist das Problem!!!!
Zeichne mal ganz genau wie der I2C Bus aussieht, wo die einzelnen Teilstücke angeschlossen sind und wie lang sie sind.

Grüße Uwe

wurde ja schon geschrieben. I2C ist für sehr kurze Leitungslängen entwickelt.
Für die Tmperatursensoren könnt man als alternative Onewire-sensoren nehmen.
DS18B20. Da gehen auch 20m Leitungslänge wenn man eine Linientopologie verwendet.

beim quoogeln habe ich diesen Hersteller gefunden.
Die Preise sind schon etwas höher 30 Euro für den Helligkeitssensor.

Hier habe ich einen I2C-Bus-driver-chip gefunden

Wirklich störungssicher wird das ganze aber nur wenn man eine Übertragungstechnik benutzt die extra auf große Störsicherheit hin entwickelt wurde RS485 zum Beispiel.
Einen RS485 Bus könnte man um einen fetten Drehstrommotor drum herumwickeln und es würde immer noch gut funktionieren auch wenn Störspannungen induziert würden.
Frage an die Bus-Experten: Könnte man eine RS485-Strecke zwischen I2C-Master/Slave dazwischen hängen und die SCL SDA-Signale würden immer noch im richtigen Takt LOW-HIGH gehen?

vgs

Bei den beschriebenen 3 Sensoren kommt der TO sogar leicht auf 15 Meter I2C-Kabellänge.

Noch besser scheint mir dieser Chip geeignet

PCA9615
oder dieser hier
https://www.analog.com/media/en/technical-documentation/data-sheets/LTC4331.pdf

Jetzt müsste man mal schauen ob es das auch als fertige Module gibt.
I2C ist einfach nix für lange Strecken und die IC2-library ist auch noch blockierend
deswegen bleibt dann wahrscheinlich das Programm stehen.

Was sind denn das für Temperaturen die du da misst und welche Helligkeit?

Hier gibt es ein driver-Modul

da braucht man dann aber gleich 2 davon pro I2C-slave macht dann 20 Euro.
Für den Preis gibt es jede Menge andere Alternativen.

vgs

Fertige Module (Bausatz) gibt es hier: I2C-Extender.
Da weiß ich auch, daß die gut funktionieren. Bei mir bis ca. 30 m.

Ich wollte keine Module/ICs vorschlagen bevor ich nicht die genaue Geometrie des I2C Busses kenne. Ich weiß nicht wieweit der Bus Sternförmig ist oder mehr linear.
Eine Punkt zu Punkt Erweiterung ist etwas anderes als eine Sternverteilung mit den beschriebenen Bausteinen.

Grüße Uwe


Anbei mal ne modifizierte Grafik der I2C Anschlüsse mit den eingetragenen Leitungslängen. Habe das jetzt nachgemessen. Die Temperatursensoren hängen jeweils an 4 Meter Leitungen.
Der Helligkeitssensor hängt an einer 7 Meter Leitung.
Wie man sieht geht das sternförmig auseinander. Wenn ich keine Spannungen über das Relais schalte, dann bekomme ich von allen 3 Sensoren damit sogar korrekte Werte angegeben. Der eine Temperatursensor misst die Lufttemperatur (so um die 20 Grad zur Zeit) und der andere misst eine Wassertemperatur (etwas niedriger).
Der Helligkeitssensor gibt mir je nach Tageszeit und Sonnenstand einen Wert zwischen 0 und rund 1500 zurück. Damit kann ich eigentlich gut arbeiten.

Vielen dank für Eure Tips zum I2C Bus - das gibt mir schonmal jede Menge Ansätze wie ich es weiter versuchen kann.
Ein Problem habe ich noch mit dem Anschluss des Relaismoduls.

sh. oben ... " Hierzu gab es keine Anleitung. Ich habe daher einfach die externe 5V Spannungsversorgung an den Relais-Lüsterklemmenblock angeklemmt und alle Pins mit dem Arduino. Damit bekommt das Teil aber zweimal 5V - einmal von der externen Spannungsversorgung und zum anderen über den 5V Pin vom Arduino. Das kommt mir mit meinem laienhaften Elektronikverständnis komisch vor."
Hat dazu jemand einen Hinweis?

Wenn die beiden Spannungen nicht exakt gleich sind fließt da ein Ausgleichsstrom.
Das sollte man nicht machen. Nimm die Verbindung +5V zwischen Arduino und Relaisplatine wieder weg. Es genügt wenn die GND-Leitungen zwischen Arduino und Relaisplatine verbunden sind.

Sternförmige Topologie ist vermutlich schlechter als Linientopologie. Beim onewire-Bus ist das auf jeden Fall so. Ob es beim I2C-Bus ähnlich ist weiß ich nicht genau. Ich vermute ja.
Noch einmal die Frage:
Was misst du da für Temperaturen? Und was für eine Helligkeit?
Ich will drauf hinaus könnte man die Helligkeit auch an einem dem Arduino näher gelegenen Ort messen?
vgs

Vielen Dank - mache ich.

Das mit der Linientopologie kann ich zumindest für die beiden Temperatursensoren gut umsetzen - mache ich. Diese messen wie geschrieben 1 x Luft/Umgebungstemperatur und 1x Wassertemperatur. Diese Anschlussleitung kann ich wahrscheinlich auch noch auf ca. 2,5 Meter reduzieren.
Beim Helligkeitssensor wird das ganze aufwändiger. Ich könnte den näher positionieren, das kommt aber mit einigen Nachteilen. Er misst einfach die Umgebungshelligkeit draussen.

Du hast ja einen Ardiuno Mega mit richtig vielen IO-Pins.
Da ist bestimmt einer frei den man für Onewire-sensoren nehmen könnte

Im Kunststoffgehäuse kosten die pro Stück 2-3 Euro.
vgs

Du hast gewonnen. Es sind mehr als 15m.