12V Sensor auslesen

Servus Leute,

ich weiß es ist ein alter Hut mit dem auslesen von 12V Sensoren. Aber ich suche nun schon seit knappen 3h im Netz nach einer eindeutigen Antwort. Das Schema hier zu den Spannungsteilern kenne ich: http://arduino.cc/playground/uploads/Learning/Level_shifting_4_arduino.pdf

Nun ist mir dabei aber einfach nicht klar, ob bei einer Schaltung mit dem Optoisolator mein Sensor nach wie vor mit 12V betrieben wird (der brauch das nämlich zwingend um exakt zu arbeiten). Kurzer Background: Ich möchte einen Wasserstand bestimmen, der mit einem Wasserdrucksensor bestimmt wird (Vorgabe). Der Sensor arbeitet mit 12 bis 30V und gibt dann je nach Druck zw. 4 und 20mA zurück.

So. Nun ist ja auf dem Schema zu sehen, dass da der R2 Widerstand ist. Daher meine Vermutung, dass mir da der ganze Messkreis runtergeregelt wird - denn eine Spannung herrscht ja immer im ganzen Kreis, d.h. der Sensor hätte ja dann keine 12V mehr? :roll_eyes: Meine weitere Annahme: Ich habe 12V an einem Netzteil, daran ist der Sensor angeschlossen und dessen zweites Kabel geht eben an den 12V Eingang, der wiederum zu R2 usw. geht.

Bitte helft mir, ich habe da irgendwo einen Denkfehler den ich selbst nicht lösen kann.

Entweder ich habe einen Denkrfehler, oder das ganze passt überhaupt nicht zusammen:

Du willst einen Analogwert messen, und zwar ein 4..20mA Signal. Dein Spannungsteiler-Link bezieht sich auf Digital-Signale.

Dein Sensor braucht genügend Versorgungsspannung, um - "egal" wie hoch der Leitungswiderstand ist - , bis 20 mA fliessen lassen zu können.

Arduino kann nur Spannungen messen. Deine gemessenen 4 .. 20 mA leitest du also durch einen 250 Ohm Widerstand, an dem du dann 1 .. 5 V abnehmen kannst. - Oder du arbeitest mit kleinerer Referenz-Spannung und machst aus deinem 20mA Signal nur eine 1V Spannung ( 50 Ohm )

Michael_X hat dies schon richtig ausgeführt. Dein Link bezieht sich darauf wenn du mir deinem 5V Arduino 12V digital Signale auswerten bzw. setzten willst. Dein Analoger Sensor braucht halt 12V aus einer separaten Spannungsversorgung. Die Massen von der Arduino versorgung und von der Sensor versorgumng müssen verbunden sein. Oder du Versorgst deinen Arduino am Vin auch mit den Selben 12V. An den Analogausgang 4-20mA verbindest du dann halt den 250Ohm Wiederstand gegen Masse und misst dann am Widerstand deine 1-5V Volt. Damit haste dann alles für deine Auswertung

Hallo Ihr beiden!
Ich danke euch sehr für Eure hilfreichen Antworten! :slight_smile:

Dass die Schaltung für digitale Eingänge ist, war mir garnicht bewusst. Hatte mich zwar schon gefragt, wie der Transistor und der Optoisolator die Werte so gleichmäßig regeln sollen.

Euren Vorschlag find ich gut, ich kann ihn nur noch nicht zu 100% “verdrahten”.
Habe mal (sehr schnell) eine kleine Skizze gemacht. Darauf sieht man die Arduino, den Sensor (S) und den Analogen Eingang (A).

Wie muss ich das andere Kabel nun an den Widerstand anschließen?
Wenn ich den Sensor nun direkt mit dem Widerstand zu (A) verbinden würde, hätte ich ja keine 12V mehr im Sensor, oder?

Beste Grüße!

Schaltung.jpg

+12V ---- Sensor ---+--- 250 ----  -12V
                    |
                    +------  Arduino A0 

-12V ---------------------- Arduino GND

edit: ascii graphik so gut es geht

Wenn ich den Sensor nun direkt mit dem Widerstand zu (A) verbinde, hätte ich ja keine 12V mehr im Sensor?

Der Sensor ( wenn er nur 2 Anschlüsse hat ) braucht nur irgendeine eine Spannung, aus der er 20 mA machen kann.

Du kannst auch eine lange Leitung mit nochmal einigen Ohm nehmen, daran ist auch ein Spannungsabfall zu messen.
Du kannst auch 50 Ohm nehmen, falls die 12 V zu schwach sind, und daran nur 1 V max messen.
Du kannst auch 24V statt 12 nehmen, der Sensor sollte trotzdem 4 - 20 mA liefern und an deinem Widerstand sind es immer noch 1 … 5 V

Stromquellen sind etwas gewöhnungsbedürftig: man darf sie kurzschliessen, aber nicht offen lassen.

Hallo michael_x!

Danke für deine Mühen!

Kann es sein, dass Du aus Versehen den Widerstand falsch gesetzt hast? So habe ich doch 12V am A0. Im Sensorkreis jedoch keine 12V. Dachte mir der Widerstand muss vor den A0 => ?

Ne, stimmt schon (denke ich ; )

Aber du schliesst natürlich zuerst nur 12V, Sensor und 250 Ohm in einen Kreis, und schaust die das ganze mit einem Spannungsmesser an.

Am Sensor solltest du 11 … 7 V, am Widerstand 1 … 5 V haben, falls deine 12V sich nicht je nach Messwert und Stromfluss ändern.
Der Widerstand sollte auch nicht wirklich warm werden ; ) 5V * 20 mA = 0.1 W

Stromquellen sind gewöhnungsbedürftig: Du kannst sie kurzschliessen, aber eigentlich nicht offen lassen.

Also ich denke ich kann langsam nachvollziehen was Du mir sagen willst :)

Aber bei dem Widerstand bleibe ich stecken. Ich würde das so verstehen:

+12V ---- Sensor --------- -12V | +--R250---- A0---------------|Arduino|--- +5V

-12V ------------------------------------+-----|Arduino|-+- -5V |_____________|

(ich würde es ja "schnell" testen, aber der Sensor kostet ca. 250 Euro - muss mir erst sicher sein bevor ich den kaufe)

Was für ein Sensor willst du denn. Der Messwiderstand (Lastwiderstand) muss auch an den Sensor angepasst werden.

Auszug aus einem Datenblatt. Dein Arduino ersetzt das Voltmeter (V). Das entspricht exakt der Darstellung von michael_x

Ich stimme zu.

Ohne das Datenblatt ist es schwierig, genaues zu sagen.

Die Schaltung die du brauchst ist so wie unten.

Du brauchst definitiv keine -12V! Das ist Käse!

du brauchst eine externe Spannungsquelle die (wahrscheinlich) 12v hat, hängt aber von deinem sensor ab.
Die Masse der externen Spannungsquelle muß mit der Masse deines Arduino Boards verbunden werden.
Darauf achten, dass mindestes eine der beiden Spannungen potentialfrei ist, oder gleich ein kombiniertes Netzteil, das beide Spannungern erzeugt.

Der Messwiderstand sollte maximal 240 Ohm betragen, damit du zwischen Vollausschlag und Kurzschluss unterscheiden kannst.

Und bevor du das Geld ausgiebst: Welche Genauigkeit brauchst du denn?
Reicht dir die Genauigkeit, die du so erhälst?

Gunther

Drucksens.jpg

guntherb:
Du brauchst definitiv keine -12V! Das ist Käse!

Ausschließen sollte man das nie… :wink: Ich habe es schon mehrfach beobachtet, dass Einsteiger die “der 12V-Spannung zugeordnete” Masse mit -12V bezeichnen. Da wir es hier in der Regel nicht mit symmetrischen Spannungen zu tun haben, ist 0V als Bezugspotential gemeint. (Und ja, ich weiß dass die neue Rechtschreibung mir weismachen will, dass es Potenzial heißt. :D)
Ein Datenblatt zum Sensor wäre auf jeden Fall aufschlussreich.

sth77:

guntherb:
Du brauchst definitiv keine -12V! Das ist Käse!

Ausschließen sollte man das nie… :wink: Ich habe es schon mehrfach beobachtet, dass Einsteiger die “der 12V-Spannung zugeordnete” Masse mit -12V bezeichnen. Da wir es hier in der Regel nicht mit symmetrischen Spannungen zu tun haben, ist 0V als Bezugspotential gemeint. (Und ja, ich weiß dass die neue Rechtschreibung mir weismachen will, dass es Potenzial heißt. :D)
Ein Datenblatt zum Sensor wäre auf jeden Fall aufschlussreich.

Ja, du hast ja Recht.
Schließlich hat eine Batterie ja auch einen Plus- und einen Minus-Pol. Also quasi +1,5V und -1,5V. :wink:
Strom ist einfach kompliziert, weil man ihn nicht sehen kann, nur spüren und riechen. :smiley:

Gunther

Hallo zusammen!

Zuerst nochmals Dankeschön für die fleißigen Helfer hier! :)

Ja ich denke auch dass es am besten wäre, wenn Ihr den Sensor kennt: http://www.shop.robotikhardware.de/shop/catalog/product_info.php?products_id=142 Der liegt vom Preis zwar an der Obergrenze, hat aber sonst alles was ich brauche, um meine drei Tanks zu messen (brauche 3 der Sensoren für das eigentliche Hauptziel: Eine Niveauregulierung). Habe auch schon andere Sensoren gefunden, aber die haben dann meist kein Kabel dran - ich kann den Sensor jedoch nicht von außen befestigen, sondern muss ihn ins Wasser lassen.

Wenn ihr euch einig seit, dass ich den Sensor so anschließen muss ist gut :) Dann habe ich was gelernt :) Zum Messwiderstand kann ich leider nichts sagen.

Das mit den 12V ist übrigens so: Ich ging nur von + und - aus. Also einmal 12V+ und einmal Masse. Wirkliche -12V habe ich noch nie gesehen....

PS: Danke guntherb - dein Schaubild verstehe ich am besten ;)

FromAtoD:
Das mit den 12V ist übrigens so: Ich ging nur von + und - aus. Also einmal 12V+ und einmal Masse. Wirkliche -12V habe ich noch nie gesehen…

Sehr häufig stößt man darauf im Audio-Bereich. Viele Verstärker arbeiten mit symmetrischen Spannungen, dazu baut man dann eine Versorgungsschaltung auf, wie man sie (hoffentlich) im Anhang findet. Kennt man erst einmal solch ein Beispiel, macht man diesen Fehler dann nicht mehr. Schließlich ist eine Spannung auch nur eine Potentialdifferenz - bei +12V und -12V ergibt sich eine Spannung von 12V-(-12V)=12V+12V=24V. :astonished:

Und damit zurück zum Thema. Schein ja ein echt teurer Spaß zu werden, was du da vorhast. Darf man erfahren, wozu das Ganze dann dient? Vielleicht gibt es Ideen, mit denen das doch etwas kostengünstiger realisierbar ist…

Ja, billig wirds nicht. Aber diese Sonden sind die Anforderung.

Kann mir noch jmd. für mein Verständnis erklären, wie der Sensor auf dem Schaubild von guntherb (Post # 9) mit 12V versorgt wird, obwohl er in seinem Kreis einen Widerstand hat? :blush:

Das Datenblatt, das du verlinkt hast, ist ja nun nicht wirklich aussagekräftig.
Das ist mehr eine Werbebroschüre, als ein Datenblatt.

Was vor allem fehlt, ist die Übertragungsfunktion. Also bei welcher Druckdifferenz wird welcher Strom ausgegeben?

Zur Genauigkeit:
in die Genauigkeit der Messung geht direkt die Genauigkeit der 5V des Arduino mit ein.
wenn die Arduino-Spannungsquelle also 10% hat, dann ist auch dein Messwert um 10% daneben.

Zum Schaltbild:
das vorhin gezeigte ist natürlich start schematisch.
da muß mindestens noch ein RC-Glied vor den AD.

Weiß jemand, ob der Arduino eine Schutzbeschaltung am AD hat? Oder geht der gleich in Rauch auf, wenn die AD-Eingänge eine zu hohe Eingangsspannung sehen?

Zu deiner Frage:

der Sensor ist eine Stromquelle.
Also abhängig vom gemessenen Druckwert, fliesen zwischen 4mA und 20mA durch den Sensor durch.

Dieser Strom erzeugt am Messwiderstand einen Spannungsabfall, den du mit dem Arduino mißt.
Die Versorgungsspannung, die am Sensor anliegt ist also: Externe Versorgung - Spannung am Messwiderstand.

Beispiel:
Externe Versorgungsspannung Vext=20V
gemessener Differenzdruck Pdiff = 100mBar // entspricht 1m Wassersäule
Ausgangsstrom Isens = 10,4mA // falls der Sensor linear sein sollte

Spannungsabfall am Messwiderstand: Um = 10,4mA * 220R = 2,288V

Versorgungsspannung am Sensor: Uext - Um = 20V - 2,288V = 17,712V

Da dein Datenblatt keine genaue Auskunft über den Sensor gibt, würde ich mindestens 17V als externe Versorgung nehmen, dann sind die 12V auf alle Fälle eingehalten, und max 30V.

Gunther

Drucksens.jpg

Wäre es nicht überlegenswert, mit einem OpAmp einen Strom-Spannungswandler zu bauen? http://de.wikipedia.org/wiki/Operationsverst%C3%A4rker#Strom-Spannungs-Wandler Dann könnte man auch vorab mit dem Multimeter mal ne Kennlinie aufnehmen, ohne den Arduino bzw. dessen Eingang zu gefährden. Überspannung mag der nämlich nicht.

Servus guntherb!
Ich schreibe Dir einfach mal direkt drunter. Sonst weiß nachher keiner was sich auf was bezieht.

guntherb:
Zur Genauigkeit:
in die Genauigkeit der Messung geht direkt die Genauigkeit der 5V des Arduino mit ein.
wenn die Arduino-Spannungsquelle also 10% hat, dann ist auch dein Messwert um 10% daneben.

Ich werde den Sensor mit der Arduino Ausgabe mal messen.
Wert bei Leerem Tank. Wert bei vollem Tank. Dann habe ich den Bereich der sich verändernden Werte und passe da einfach die Variablen an.

guntherb:
Zum Schaltbild:
das vorhin gezeigte ist natürlich start schematisch.
da muß mindestens noch ein RC-Glied vor den AD.

“RC”?

guntherb:
der Sensor ist eine Stromquelle.
Also abhängig vom gemessenen Druckwert, fliesen zwischen 4mA und 20mA durch den Sensor durch.

Dieser Strom erzeugt am Messwiderstand einen Spannungsabfall, den du mit dem Arduino mißt.
Die Versorgungsspannung, die am Sensor anliegt ist also: Externe Versorgung - Spannung am Messwiderstand.

Beispiel:
Externe Versorgungsspannung Vext=20V
gemessener Differenzdruck Pdiff = 100mBar // entspricht 1m Wassersäule
Ausgangsstrom Isens = 10,4mA // falls der Sensor linear sein sollte

Spannungsabfall am Messwiderstand: Um = 10,4mA * 220R = 2,288V

Versorgungsspannung am Sensor: Uext - Um = 20V - 2,288V = 17,712V

Da dein Datenblatt keine genaue Auskunft über den Sensor gibt, würde ich mindestens 17V als externe Versorgung nehmen, dann sind die 12V auf alle Fälle eingehalten, und max 30V.

Aha. Klingt einleuchtend. Ich kann natürlich auch ein 24V Netzteil dafür kaufen. Danke für den Hinweis und das Rechenbeispiel (!)

Allgemein wäre es natürlich einfacher, wenn es einen Wasserdrucksensor geben würde, der einfach 5V hat.
Anforderung ist eigentlich hierbei nur, dass er getaucht werden kann, d.h. die Kabel müssen schon dran und vergossen sein.
Falls da jmd. einen kennt => Immer her damit :slight_smile: Habe da schon etliche Shops durchsucht.

Dein Schaltplan sieht für mich nun schon verständlicher aus, da eben ein R vor dem analogen Eingang ist.
Der Kondensator ist mir fraglich (ist jetzt aber auch nicht weiter schlimm, den würd ich dann einfach so verbauen. Muss ja nicht alles bis ins Detail verstehen. Lediglich das mit dem Widerstand im 12V-Kreis ist mir fraglich…)

Was hälst du vvon der Idee den Stand indirekt über einen Differenzdruckmessung zu machen also über einen unten offen angeschlossenen Schlauch bis oben hin dann einen Diffrenzdruckmesser ähnlich MPX4250. Damit misst du den "Überdruck im schlauch" gegenüber dem Atmospherendruck. Damit dürftest du ein ziemlich genauen Stand bekommen und du hast keinen Sensor in der Flüssigkeit. Und der Preis der Sensoren sind um 20€

Hoffe habe mich verständlich ausgedrückt

volvodani:
Was hälst du vvon der Idee den Stand indirekt über einen Differenzdruckmessung zu machen also über einen unten offen angeschlossenen Schlauch bis oben hin dann einen Diffrenzdruckmesser ähnlich MPX4250. Damit misst du den “Überdruck im schlauch” gegenüber dem Atmospherendruck. Damit dürftest du ein ziemlich genauen Stand bekommen und du hast keinen Sensor in der Flüssigkeit. Und der Preis der Sensoren sind um 20€

Hoffe habe mich verständlich ausgedrückt

Hi! :slight_smile: Jepp, verstehe was Du meinst. Sowas ähnliches war auch schonmal im Einsatz. Die Lösung ist verdreckte jedoch immer wieder mal. War nicht zuverlässig und verursachte dann immer wieder größeren Folgeschaden :~
Trotzdem Danke! :slight_smile: