Geschaltete Masse auswerten

Hi!

Ich möchte die geschaltete Masse VOR meinem Netzteil im Arduino verwenden.

Zum genauen "Problem":
Kfz-Spannung wird per DC-DC-Step-Down-Modul auf Arduino-freundliche Spannung am Hohlstecker transformiert.
Innerhalb des KFZ-Boardnetzes gibt es einen Schließerkontakt, der auf Masse schaltet.

Kann ich die Masse nach dem Step-Down Modul mit der KFZ-Masse verbinden und dann am Digitaleingang den Schließerkontakt auswerten?

Gruß
Morris

Da musst du mal in das Datenblatt des Wandlers schauen ob der galvanisch getrennt ist. "Richtige" DC-DC-Wandler sind glaube ich immer getrennt, aber manchmal bezeichnet man damit auch einfache Step-Down Wandler.

Hatte da letztens auch mal was wo ich eine kleinere Spannung galvanisch getrennt brauchte. Habe dann einen DC-DC-Wandler für die Trennung gehabt und dahinter noch mal einen nicht getrennten Step-Down Wandler um auf die gewünschte Spannung zu kommen.

Datenblatt leider nicht vorhanden.... :roll_eyes:

Kannst auch einfach mit einem Ohm-Meter messen ob die verbunden sind

Ja, aber was ist denn, wenn

  • die verbunden sind
  • wenn die nicht verbunden sind

Kann ich in beiden Fällen die Masse vom Arduino mit der vom KFZ verbinden?

Wenn die Massen verbunden sind und damit keine galvanische Trennung da ist, kannst das natürlich einfach machen.

Ob man eine galvanische Trennung aufheben kann in dem man die Massen einfach verbindet und das dann alles noch läuft weiß ich nicht. Die Frage ist ob der DC-DC-Wandler dann noch richtig läuft. Er muss nicht kaputt gehen, aber ich wäre erst mal vorsichtig damit.

Andere Sache: wenn das ein einzelner Kontakt ist, ist es nicht möglich daran einfach zwei Kabel vom Arduino hinlegen? Mit der Masse vor dem Wandler hat das dann doch nichts mehr zu tun. Vielleicht denkst du da einfach zu kompliziert. Oder ist der Kontakt direkt auf einer Platine verlötet? Selbst dann kann man eventuell die Leiterbahn unterbrechen.

Wenn es galvanisch getrennt ist, kannst du auch einfach einen Optokoppler dazwischen schalten. So ähnlich

Den Vorwiderstand der LED mit 12V berechnen und mit dem Ausgangstransitor in Emitterschaltung kannst du dann ein 5V Signal erzeugen, das invertiert zu dem Schließer ist. Die Dinger gibts für 30-40 Cent.

Serenifly:
Mit der Masse vor dem Wandler hat das dann doch nichts mehr zu tun. Vielleicht denkst du da einfach zu kompliziert.

Dann denke ich wohl auch zu kompliziert, denn der Wandler hat seine Masse an dem Bordnetz des Fahrzeugs.
Wenn du nun ein Signal in den Arduino vom Auto bekommen will, muss man die Arduinomasse auf die Masse des Autos klemmen.

Ich würde wie vorgeschlagen mit nem Ohmmeter die Massen vom Wandler messen, und den Schaltplan des Wandlers ansehen.

Wenn galvanisch getrennt, dann halt mit den Optos.

Es geht dabei um einen Kontakt am Getriebe.
Der holt sich die Masse vom Motor/Rahmen/Generator/Batterie.

Ich meinte damit, dass der Schaltkontakt doch zwei Anschlüsse hat. Das hängt jetzt damit zusammen wie das mechanisch gemacht ist, aber wenn die beide offen/frei sind kann man ja einmal Arduino-Masse hinhängen.

Oder hat der Kontakt schon eine Funktion und die soll beibehalten werden? Dann geht das natürlich nicht. Mit einem Optokoppler lässt sich das aber einfach und sauber lösen. Sind klein und billig.

?
Wie gesagt... Ein Kontakt vom Schließer liegt zwangsläufig auf Fahrzeugmasse.
Das kann ich nicht ändern!

Der andere Kontakt ist zur Zeit mit dem Kontakt einer Lampe verbunden, die wiederum mit Dauerplus versorgt wird. Lampe leuchtet also, wenn der Schließer am Getriebe schaltet (Leerlauf eingelegt ist).

Nun soll der Arduino diese Anzeige übernehmen -> de geschaltete Masse auswerten.

Also ich sehe dann diese Optionen:

  1. Keine galvanische Trennung -> einfach verbinden

  2. Galvanische Trennung ->
    2.1. Die Verbindung des Kontakts zur Masse zerstören. Leiterbahnen kann man z.B. mit einem scharfen Gegenstand durchtrennen oder leicht anbohren. Das hängt wie gesagt vom Aufbau ab. Wie gesagt eventuell nicht möglich
    2.2. Optokoppler

... Man kann den Kontakt vom getriebe/motor zur Masse nicht unterbrechen!
Sonst läuft der Motor nicht mehr.....

Sollte man irgendwelche Dioden/Sicherungen verbauen, um den Arduino zu schützen?

Nein. Durch den Optokoppler ist ja alles getrennt. :slight_smile: Das ist einfach eine LED und ein Foto-Transistor. Der Ausgangstransistor schaltet einfach zwischen 5V und Masse je nachdem ob die LED an ist oder nicht.

z.B. hier:
http://www.reichelt.de/Optokoppler/MOC-3043-ISO/3/index.html?;ACTION=3;LA=446;ARTICLE=42048;GROUPID=3046;artnr=MOC+3043+ISO

Schau nur wegen dem Strom. Manche haben 20mA und andere bis zu 60mA. Das ist in dieser Anwendung im Prinzip egal, aber du musst den Vorwiderstand demnach auslegen. Gibt sogar in DIP-4

Hm ich kann es noch nicht ganz nachvollziehen.

Ich möchte genau genommen 7 Schaltkontakte auswerten.
Der Optokoppler ist ja scheinbar (von der Funktion her) wie ein Relais.

Am einfachsten wäre es halt, ich lege einfach die Arduino-Masse auf die Fahrzeugmasse, setze die Pullup-Widerstände und hänge jeden Kontakt an einen Pin.
Wenn dann einer der Kontakte auf Masse schaltet, ist der Digitaleingang geschaltet und ich kann ihn auswerten.

Wie sähe denn die Schaltung bei Verwendung des Optokopplers aus? Ich habe es jetzt so verstanden:
Die LED (Relaisspule) wird auf der einen Seite mit Dauer+ versorgt, mit der anderen Seite von der geschalteten Masse.
Der Schaltausgang des Transistors (der Schließer des Relais) wird dann auf der einen Seite an die Arduino-Masse/5V/3,3V gehangen und die andere Seite kommt jeweils an einen Dig.Eingang.
Je nach dem, werden halt noch Pullup/Pulldown Widerstände geschaltet.

Nur bräuchte ich dann 7 Optokoppler und hätte deutlich mehr Verdrahtungsaufwand. Da währe die erste Möglichkeit doch einfacher

Es ist halt die Frage wie wichtig da die galvanische Trennung ist. Manche Lasten stören auch. Da ist eine Trennung schon sinnvoll. Gerade wenn man mit einem µC arbeitet, der Spannungsabfälle oder -spitzen nicht gut verkraftet. Es ist auch theoretisch möglich, dass der DC-DC-Wandler nicht mehr arbeitet wenn man beide Massen verbinden. Das weiß ich nicht.

Du liegst richtig mit der Erklärung. Das Prinzip des Optokopplers ist so:

Der LED Vorwiderstand ist (12V - Uf) / If. Das sind IR LEDs also ist Uf (Vorwärtsspannung) ca. 1,4-1,6V. Genauer Wert dafür und If (Vorwärtstrom) siehe Datenblatt. Nimm da die "typischen" Werte.

Auf dem Bild, denke dir die LED im Ausgangskreis weg. Statt dessen einfach vom Kollektor auf den Digital-Eingang. Da liegen dann 5V und wenn der Transistor durchschaltet zieht er den Pin auf Masse runter. Den Kollektorwiderstand so wählen dass ein vertretbarer Strom fließt. Dazu sollte auch was im Datenblatt über den Kollektorstrom Ic stehen. Logisch musst du dann beachten, dass du durch die Emitterschaltung einen Inverter gebastelt hast. Also ist der Eingang LOW wenn der Kontakt geschlossen ist.

Für 7 Kontakte kannst du 2 ICs verwenden die je 4 Koppler haben.

Ich tendiere ebenfalls zu einem Optokoppler.

Aber: Wie alt ist dein Auto? Wenn die Anzeigelampe ihrerseits ein LED ist, und evtl dann noch weitere Signale für die Autoelektrik aus den Signalen erzeugt werden, kannst Du mit dem Opto locker Irrlichter für die Steuergeräte erzeugen.

Evtl. die Eingänge mit 5,1V Z-Dioden abblocken, mit 10 oder mehr k Ohm an den heißen Teil des Schalters, also der, welcher von der Lampe kommt, anschließen. Damit kommst Du aber wieder in die Problematik verbundene Massen. Kannst Du nicht den Ardru über einen Längsregler versorgen?

Greetz, Linpo

Wenn wirklich eine Seite mit Masse und die andere mit einer Lampe verbunden ist, dann würde ich einen Optokoppler (+Vorwiderstand) parallel zur Lampe klemmen und gut ist.

Insbesondere ist der Arduino dann besser von der Bordelektrik getrennt. So dreckig wie das Bordnetz üblicherweise ist wird das die sauberste Lösung sein.

@maeckes: Die Frage wurde hier schon mal gestellt: Wie alt ist dein Auto ? - bzw hast du schon einen OBD Stecker an dem der Diagnosecan rausgeführt ist ?

Je nach dem was du genau vorhast, könnte man einen anderen Weg gehen evtl. mit mehr Komfort.

Bei modernen Autos ist das Bordnetz nicht mehr so "dreckig" wie früher.
Ein Arduino mit 7805 wäre natürlich auch ein einfache Lösung.

Ich vermute mal du willst die Wählhebelstellung eines Automatikgetriebes auswerten ?

Es handelt sich um ein Motorrad.
KEIN OBD!

An der Schaltwelle im Getriebe ist quasi ein Nocken befestigt.
Dieser rastet in 7 Positionen (6 Gänge + Leerlauf) ein.

Der Nocken gleitet dabei über 7 Kontakte.
An einem der Kontakte hängt die "Neutrallampe".
Die anderen sind (noch) nicht belegt.

Jedoch liegt halt immer an einem der Kontakte Masse an, wenn der Nocken der Welle am jeweiligen Pin liegt.

Zur Not nehm ich halt wirklich son Optokoppler...

EDIT:
Ich hatte noch eine Idee... Was haltet Ihr davon, dass ich die Masse mit der des Arduinos verbinde, aber dazwischen eine Diode packe? Sperrichtung so, dass nur zum Boardnetz hin, jedoch nicht zurück fließen kann. Das müsste den Arduino doch vor der dreckigen Boardspannung auf der Masseseite schon mal schützen, oder?

Wie ist es denn mal ganz generell - das KFZ-Netz mal ausgenommen:
Was passiert, wenn ich einen Trafo von einer Batterie versorge. Auf die Sekundärseite hänge ich dann den Arduino.
Dann verbinde ich die Masse der Sekundärseite mit der, von der Primärseite.
Kann der Arduino das ab? Geht sowas gut, um die Masse dann am Digitalen Eingang auszuwerten?

Denn was anderes tu ich dann ja am KFZ-Boardnetz auch nicht! Das auf der Primärseite noch nen Generator und nen paar Zündspulen parallel laufen, ist doch uninteressant. Die Spannung ist halt nicht so schön.

Einen Trafo kannst du nicht mit einer Batterie betreiben, da Gleichspannung. Dafür sind ja DC/DC-Wandler da. Vielleicht hast du das gemeint :slight_smile:

Wenn keiner weiß was da passiert könntest du einen Testaufbau machen. Kostet aber 5 Euro:
http://www.conrad.de/ce/de/product/154224/DCDC-Wandler-TMA-Serie-1-W-SIL-7-TracoPower-TMA-1205S-In-10-12-VDC-Out-5-VDC-200-mA-1-W

Was mich da beschäftigt ist ob der Wandler überhaupt noch korrekt läuft wenn man die Massen verbindet.