Geschaltete Masse auswerten

?
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.

Ja meinte einen DC-DC-Wandler

Falls einer es genauer weiß - funktioniert das?

Mit einem DC-DC-Wandler hast du doch immer noch das Problem das Arduino Masse und Motorrad Masse nicht verbinden darfst.

Und somit die Schalterstellungen nicht auswerten kannst.
Mach einfach einen Versuch, mit einen Atmel und dem 7805 in der üblichen standard Schaltung.

Schau einfach was passiert, hängt er sich auf oder macht komische Sachen dann brauchst du Optokoppler und galvanische Trennung.
Wenn nicht, bist du am Ziel :slight_smile:

Wieso darf man die sekundäre und primäre Masse beim DC-DC-Wandler nicht verbinden?

Hast schon recht, kommt drauf an um welchem DC-DC Wandler es sich handelt

Es gibt auch hier welche mit galvanischer Trennung und eben ohne.

Und bei denen ohne galvanischer Trennung ist die Masse identisch, somit hast du das Problem mit den vermeintlichen Störungen aus dem Bordnetz dann immer noch.
Also nichts gewonnen.

Warum versuchst du es nicht einfach mal mit einem Längsregler (7805) ??

Wenn die Massen nicht durchkontaktiert sind, darf ich sie auch nicht mit einander verbinden?
Was ist der Grund dafür?

Wo wir hier gerade bei Optokopplern sind. Ich suche was mit Ic = 100mA, aber das ist sehr schwer. Die meisten haben vielleicht die Hälfte. Wenn in einem Shop was davon steht, dann schaut man oft ins Datenblatt und findet es nicht. Oder es ist nur der Spitzenstrom für 1µs.

Der Standard-Wert ist DC Current Transfer Ratio. Aber wenn die 50 ist und man hat If = 10mA, dann würde Ic = 500mA sein. Das geht ja nicht...

Am einfachsten wird es sein den Optokoppler nur Schalter für einen anderen Transistor zu verwenden. Dann muss ich nichts besonderes nehmen. Oder gleich ein Miniatur-Relais wie das hier:
http://www.reichelt.de/Miniaturrelais/FRT5-DC5V/3/index.html?;ACTION=3;LA=2;ARTICLE=79365;GROUPID=3292;artnr=FRT5+DC5V

maeckes:
Wenn die Massen nicht durchkontaktiert sind, darf ich sie auch nicht mit einander verbinden?
Was ist der Grund dafür?

Wenn es sich um einen DC-DC Wandler mit galvanischer Trennung handelt, und wenn du die Massen verbindest wären diese DC Stromkreise nicht mehr galvanischer getrennt.
Somit sinnfrei.

Habe eben den DC-DC-Wandler bekommen

Nachgemessen -> Masse ist durchgeschleift! $)
Also gibt es gar keine Probleme, die ich befürchtet habe

Super!
Danke Euch für die Infos!