12V als Eingangssignal für Arduino aufbereiten

OP #7591480
Lesenswert?

Hallo,

ich plane in einem Fahrzeug einen Adapter zu bauen um Analoge Signale, welche von einem Steuergerät geschalten werden um Verbraucher zu bestromen, in Can Bus-Signale umzuwandeln. Grundsätzlich soll es nachher so funktionieren, dass der Verbraucher nicht mehr vom eigentlichen Steuergerät geschalten wird sondern von einem externen, welches die Can Bus Nachricht auswertet und dann schaltet. Das heißt, dass das aktuelle Ausgangssignal, das ich verwerten möchte mit 12V Batteriespannung geschalten wird. Wie kann ich die 12V so aufbereiten, dass ich sie einfach als simples Schaltsignal für z.B. einen Arduino nutzen kann?

Beste Grüße Maxi

#7591489
Lesenswert?

Es gibt verschiedene Ansätze, die du verfolgen kannst:

  • Spannungsteiler + Dioden nach VCC und GND, um Über- und Unterspannungsspitzen abzufangen

  • Optokoppler mit passendem Vorwiderstand sind sehr beliebt, auch wenn die galv. Trennung nicht benötigt bzw. oftmals aufgehoben wird

  • Die angehängte Schaltung ist luxuriöser Overkill. Galvanische Trennung und der Optokoppler wird mit einer Konstanstromquellen-Diode betrieben, die für die 15mA durch die LED im OK sorgt.

Angehängte Dateien:
OP #7591496
Lesenswert?

Ich denke ein Spannungsteiler ist nicht wirklich geeignet, da die Ausgangsspannung ja über die Batteriespannung relativ hohen Schwankungen ausgesetzt ist - oder? Wie sieht es dann mit der Wärmeentwicklung aus, ich kann den Gesamtstrom in der Schaltung ja durch große Widerstände gering halten, aber wie viel wird noch benötigt um den Arduino sauber zu schalten?

Danke Sebastian, von Optokopplern habe ich auch gelesen. Ich verstehe nur die Schaltung nicht so ganz. Klar ist, dass ich mit den 12V auf der linken Seite die rechte Seite des Optokopplers schalte. Aber wozu dienen die zwei Anschlüsse mit 3,3V mit einer LED? Also ich verstehe noch nicht so ganz was ich wann an CAR_OK messen kann.

#7591499
Lesenswert?

Maxi schrieb:

Aber wozu dienen die zwei Anschlüsse mit 3,3V mit einer LED? Also ich verstehe noch nicht so ganz was ich wann an CAR_OK messen kann.

Naja, der Optokoppler hat einen NPN-Ausgang, kann also so erst einmal nur nach GND schalten. Für ein High-Signal am Controller braucht es dazu einen Pullup-Widerstand. Entweder den internen vom Controller oder wie in meiner Schaltung einen externen.

Die LED Leuchtet, sobald auf der linken Seite ~5...30V anliegen. Ohne 12V am Eingang ist CAR_OK high auf 3.3V, mit 12V am Eingang ist CAR_OK low auf GND.

Zur Sicherheit: Möchtest du erkennen, ob die Batteriespannung nur vorhanden ist oder möchtest du wissen, ob sie eine bestimmte Spannung über/Unterschritten hat? Oder gar die Spannung quantitativ messen?

OP #7591514
Lesenswert?

Okay, das verstehe ich soweit.

Ich möchte quasi nur erkennen, ob eine Lampe eingeschaltet wird oder nicht. Wenn also z.B. das Abblendlicht mit Spannung versorgt wird möchte ich das mit der Elektronik auswerten und die Information auf einen externen Can Bus senden, auf welchem ein Steuergerät die Daten empfangen soll und dann die Lampen, welche dann ebenso Bus gesteuert sind einschaltet. Das 12V Signal schaltet dann also nicht mehr die Lampe sondern nur noch den Eingang am Arduino. Ich müsste damit ca. 6 Signale auswerten müssen.

Vllt. ist das auch alles zu kompliziert, aber so ist erstmal meine Wunschvorstellung.

Moderator (Firma: Titel) Persönliche Seite #7591528
Lesenswert?

Maxi schrieb:

Ich denke ein Spannungsteiler ist nicht wirklich geeignet, da die Ausgangsspannung ja über die Batteriespannung relativ hohen Schwankungen ausgesetzt ist - oder?

Die Steuergeräte in KFZ können das damit problemlos (Optokoppler wären da schlicht zu teuer und haben zudem pfundige Fertigungstoleranzen). Der Witz beim Spannungsteiler sind die ebenfalls erwähnten Klemmdioden nach Vcc und GND.

#7592263
Lesenswert?

Maxi schrieb:

Ich möchte quasi nur erkennen, ob eine Lampe eingeschaltet wird oder nicht. Wenn also z.B. das Abblendlicht mit Spannung versorgt wird möchte ich das mit der Elektronik auswerten und die Information

"Mit Spannung versorgt" heißt aber noch lange nicht, dass die Lampe auch leuchtet. Das zu ermitteln wird wohl nur über den Stromverbrauch gehen.

Ganz früher gab's mal Kontrollrelais, die aus einem Reedkontakt und einer Wicklung mit dicken Kupferlackdraht bestanden. Konnte man ganz einfach nachbauen, geht heute immer noch (*).

Blackbird (*) das Nachbauen und auch die nachgebauten und originalen Kontrollrelais.

#7598904
Lesenswert?

Lothar M. schrieb:

Die Steuergeräte in KFZ können das damit problemlos (Optokoppler wären da schlicht zu teuer und haben zudem pfundige Fertigungstoleranzen). Der Witz beim Spannungsteiler sind die ebenfalls erwähnten Klemmdioden nach Vcc und GND.

Wenn die Schaltung sich aus der gleichen Spannung speist wie das Signal das sie verwerte, ok.

Sonst: Wenn die 12V da sind, die Versorgung der Schaltung aber nicht, gilt zu bedenken, was passiert, wenn das auftritt. Die meisten IC haben Klemmdioden, und damit fließt ein Strom in die Versorgung.

Das muss bei einem Spannungsteiler nicht zwingend ein Problem sein. Man sollte es aber bedenken. Einen Reset-Loop trotz fehlender Versorgung durch Fremdspeisung über eine UART sieht man leider manchmal. Inklusive kaputter Platinen.

Lösungen dafür gibts viele. Wie der vorgeschlagene Optokoppler, ein einfacher FET, ein Logikgatter das Spannung am Eingang ohne Versorgung toleriert (74LVC-Serie z.B.) oder auch nur den Spannungsteiler hochohmig machen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren