Elektrik Open Source

hier soll eine universelle Elektrik für klassische Fahrzeuge entstehen.

ältere Ideen befinden sich hier und sollten vielleicht kurz durchgeschaut werden, um zu verstehen worum es geht. Hier eine komplette Abhandlung zu platzieren würde die Seite unnötig unübersichtlich machen.

Lange Rede kurzer Sinn: Eine universelle Elektrik kann nur eine zentrale Computereinheit (die alle Schalter abfragt) und verteilte Schalteinheiten im Auto haben. Das vereinfacht vieles und führt zu deutlich weniger Verkabelungsaufwand. Nötige Kabelbäume werden sehr kurz und sind leicht selbst zu bauen und zu verlegen.

Sorgen wegen der Elektronik muss man sich nicht machen, denn die Technik ist für jeden erlernbar und deutlich einfacher, als unbekannte Elektronik in unseren modernen Autos. Das Stichwort lautet Arduino ... für jeden erlernbar und durchschaubar.

Keine Angst vor Elektronik

Das Ziel soll sein, dass JEDER mithilfe der Community sein altes Auto mit so etwas ausrüsten kann.

mitmachen?

und schon konkretisieren sich ein paar Gedanken ...

... ohne unumstösslich zu sein, weil ich einige Komponenten herumliegen habe und weil ich eine Aufstellung machte, was in welcher Ecke eigentlich benötigt wird.

Eine weitere Frage stellte sich jedoch gleich. Lege ich an die Boxen vorne und hinten ein Dauerplus oder schalte ich die Plusleitung mit einem starken Relais zentral?

Ich kam zu dem Schluss, dass ein Dauerplus nichts schadet, denn am Anlasser und an der Lichtmaschine liegt ja auch immer Plus an. Das Dauerplus hinten sorgt dafür, dass ich von der Box aus auch sehr gut den Wohnbereich hinten versorgen kann und vorne sorgt es dafür, dass der Luftkompressor auch laufen kann, wenn die Zündung aus ist. Dauerplus an die Boxen zu legen widerstrebt einem erst mal. Auch die Seilwinde habe ich deshalb ja mit einem NATO-Knochen getrennt, aber hier geht es ja um einen Aufprallbereich und ein wirklich dickes Kabel. Das Dauerplus an den Boxen werde ich am Akku absichern. Hier geht es ja nur um 20 bis 30 A. Dann ist auch ein Aufprallschutz kein Problem, weil die Sicherung beim Akku fällt, im Gegensatz zum dicken Kabel für die Seilwinde an der Front, wo man auch mal 400 A braucht und es deswegen keine Sicherung (wie der Anlassermotor ja auch) hat.

Zuerst die zentrale Computereinheit:

Ich werde dafür einen Arduino Mega 2560 benutzen, der bei mir herum liegt und nach Benutzung schreit. Er hat 54 digitale I/O Pins, 16 analoge Eingänge und auch PWM Ausgänge. Das sollte für wesentliche Funktionen sowohl von der Zahl und Funktion der Pins reichen.

Hinten:

Nach einer Aufstellung zeigte sich, dass hinten nur eine Box nötig sein wird.

Als RS485 Empfänger und Treiber für die Relais werde ich einen vorhandenen Arduino MKR Zero benutzen. Er schreit auch nach Benutzung. Der einzige "Nachteil" ist, dass für ihn ein eigenes Programm geschrieben werden muss. Der Unterschied zwischen ihm und dem RS485 Empfängerboard ist, dass der Arduino aktiv eigenen Code ausführen kann und das ursprünglich geplante RS485 Board passiv ist. Er hat genügend Ports, dass er auch den Tankfüllstand abfragen kann und einen Arbeitsscheinwerfer schalten kann. Für den Arduino habe ich ein RS485 Shield zum aufstecken, so dass er im Bus arbeiten kann. Diese Box passt in meinem Landy wunderbar geschützt hinten links in die Werkzeugbox im Kotflügel. Der kurze Kabelbaum kann hier auch sehr einfach unter dem Laderaumboden auf der Hecktraverse verlegt werden.

Vorne:

kann möglicherweise auch nur eine Box benutzt werden, was aber den Vorteil der kurzen und kleinen Kabelbäume eliminiert. Ich werde wohl vorne bei zwei Boxen bleiben.

Langes Nachdenken löst Knoten im Hirn

In diesem Fall wurde mir klar, dass ein Arduino statt einem passiven RS485 Board in jeder Box zwar eine Austauschbarkeit der Boxen verhindert, aber gleichzeitig viele Berechnungen erspart.

Das Center Unit ist ein Arduino 2560 pro auf einem Anschlussboard DNMPB28 wie bisher geplant.
Er kommuniziert mit den Relaisboxen (in denen auch ein Arduino steckt) über RS485.
Das Center Unit ist der Master und bestimmt, was auf dem RS485 passiert. Der Master fordert die Boxen zum Senden auf, wenn von dort Daten abgefragt werden sollen. Jede Box kann nur auf Anfragen reagieren, die für sie bestimmt sind. Damit entfällt die Adressierung der Boxen.
Über RS485 werden Textbefehle gesendet, da der Empfänger ja ein anderer Arduino ist.
Jeder Arduino in der Box weiss, in welcher Box er eingebaut ist (mit der einprogrammierten Software) und schaltet die entsprechenden Relais. Eine Austauschbarkeit der Boxen gibt es dann zwar nicht mehr, aber die Software im Center Unit wird deutlich vereinfacht. Jeder Arduino in einer Box kann dann pro Befehl einzelne Ausgänge (Relaise einschalten) setzten und jede komplizierte zentrale Berechnung des Bitmusters (Schaltbytes) entfällt.

Die Zentrale sendet nur noch Klartextbefehle wie "Light on", "Brakes on" oder "Brakes off"

RS485 dient als physikalischer Layer der Kommunikation, weil es sehr störsicher ist und ein eigenes Protokoll lässt sich bei den niedrigen "Eventgeschwindigkeiten" auch umsetzen. Selbst, wenn Daten zu holen sind, fordert die Zentrale mit einem Klartextbefehl diese Daten an. Die Arduinos in den Relaisboxen müssen selbständig nichts senden, da die Zentrale in einer Schleife immer alles abfragt.

Bei der Kühlwasser Temperatur könnte das zB. so aussehen:

Mehrfach pro Sekunde fragt die Zentrale nach der Temperatur. Der angefragte Arduino quittiert die Anfrage immer (alles gleich,Ende), sendet aber nur Daten, wenn sich etwas geändert hat (neue Temperatur, Ende). Die Zentrale weiss also bei jedem Durchlauf, ob alles gleich bleibt und geht zum nächsten Programmpunkt über, oder ob sie einen neuen Wert für die Anzeige ausgeben muss, bevor sie zum nächsten Punkt geht. Die Zentrale kann aufgrund des gesendeten Wertes auch ein Warnlicht und/oder einen Piepser einschalten.

5 Stück Arduino Uno R3 kosten bei Aliexpress keine 20€