Go Down

Topic: Sensor ±10V an Analogeingang Arduino (Read 2156 times) previous topic - next topic

DrThunderhell

Hallo zusammen,

ich noch ziemlich unerfahren was Arduino und co angeht und soll hier einen Analogwert eines Wegsensors einlesen. Dieser gibt Analog -10V bis +10V aus.
Ich besitze einen Arduino Mega 2560. Die Analogports können ja nur 5V ab, bei einseitiger Versorgung hätt ich einen Spannungsteiler genommen, aber wie macht man es bei positivem und negativen Spannungen?

Gruß Jens

ch-hunn

Zuerst mit einem Spannungsteiler die Eingangsspannung auf +/- 2V runterteilen. Dann mit einem zweiten Spannungsteiler eine 2.5V Offetspannung darüberlegen.

Im beigefügten Schaltplan solltest du sehen, wie ich das meine. Die Widerstände müssen noch entsprechend angepasst werden.

guntherb

#2
Apr 18, 2013, 05:14 pm Last Edit: Apr 19, 2013, 07:35 am by guntherb Reason: 1
Das kann natürlich nur funktionieren, wenn der Sensor potentialfrei ist.

Wenn der Sensor aber am gleichen GND hängt wie der Arduino dann wirst du um einen Operationsverstärker nicht umhinkommen.

Im angehängten Beispiel ist ein Doppel-OP drin, ein einfacher tuts aber auch.
Zu beachten ist, dass die Spannung am Arduino-Eingang invertiert ankommt:
-10V ergeben 4,5V
+10V ergeben 0,5V

Um Widerstandstoleranzen auszugleichen, solltest du aber zumindest einen Nullpunktabgleich machen.

Gunther

Grüße
Gunther

DrThunderhell

Oh Männer, ich Danke euch.

Jetzt muss ich zwar erst schauen ob der Sensor potentialfrei wäre, aber die OP Lösung müsste ja immer gehen.

Warum kommt die Spannung invertiert an? Wenn +10V = 4,5V ergeben und -10V = 0,5V dann ist es doch nur um einen von 2V Offset verschoben und mit dem Faktor 0,25 belegt, was ja rechnerisch wieder korrigiert werden könnte.

Den Nullabgleich mach ich wie? über Poti oder Programmtechnisch?


Gruß Jens

sth77

Ich habe noch ein kleines Verständnisproblem mit der Opamp-Schaltung. Brauchen wir hier keine negative Spannung? Also eine symmetrische Spannungsversorgung für den Operationsverstärker? Wenn nein, warum nicht?
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

uwefed

Quote
Brauchen wir hier keine negative Spannung?


Das sehe ich auch so. Die Schaltung braucht eine negative Versogungspannung von -12V und das Signal muß zwischen Eingang und Masse eingespeist werden.

Grüße Uwe

Linpotec

Ciao Dottore,

für den Auslese- Teil guck mal in meinen Logger ein, vllt hilfst...

Mein Sensor hat zum Glück 0- 10V, eine gemeinsame Masse mit dem PE...

Danke für den Tipp mit den +- 2V...ein prima Trick !!

Greetz, Linpotec

????? ????? ?? ????? ????????

DrThunderhell

#7
Apr 18, 2013, 09:41 pm Last Edit: Apr 19, 2013, 07:52 am by DrThunderhell Reason: 1
Dann nehm ich einfach einen DC/DC Wandler mit rein für die OPs. D.h. wieviel zieht so ein OP, die Wandler machen zwischen 30-60mA maximal.
Kann ich den Schaltplan mit den OPs dann so verwenden oder passt der so nicht ?

sorry für die doofen Fragen aber OPs sind Neuland für mich.

@Linpotec
Naja wenn es mal auf 5V ist wird das Auslesen kein Problem mehr sein oder was soll ich da nachlesen?

Gruß Jens

guntherb

Sorry, das war ein Tipfehler, es muß so heißen:

Zu beachten ist, dass die Spannung am Arduino-Eingang invertiert ankommt:
-10V ergeben 4,5V
+10V ergeben 0,5V


(ich habe es oben geändert)

Der OP braucht keine negative Versorgungsspannung!

Durch die Schaltung sind alle Ein- und Ausgänge des OPs immer im Spannungsbereich 0-5V.
Einzig die Versorgungsspannung muß höher sein als 5V, es reichen aber auch 7V. Müssen keine 12V sein.

Funktion:
Der nichtinvertierende Pin liegt auf 2,14 V.
Damit stellt der OP über den Spannungsteiler R1,R4 seinen Ausgang so ein, dass am nichtinvertierenden Pin auch 2,14V anliegen.
Wenn der Sensor 0V liefert, dann liefert der OP 2,56V am Ausgang. (wenns genau die Hälfte der Arduino Versorgungsspannung sein soll, dann sollte ein Poti in den Zwei R2,R3 rein.)

Ich habe es gerade nochmal nachgerechnet:
Mit R2 = 3,3k und R3 = 2,4k passt der Mittelpunkt noch besser.

Grüße

Gunther
Grüße
Gunther

DrThunderhell

oder mit einem Instrumentenverstärker? is das besser ?

an U1 ein 4:1 Sapnnungsteiler vom Sensor der mit ±2Vbringt und
an U2 ein 1:1 Spannungsteiler vom Arduino der mir 2,5V bringt.


guntherb

Dazu bräuchte es mehr Infos:
Was für eine Sensor?
Wie wird der Sensor versorgt?
Wie genau ist das Signal / muß die Auswertung sein?
Wie schnell? (sollte aber kein Thema sein, da mechanik immer langsam ist)

Der Instrumentenverstärker ist m.E. ein overkill. Generell gilt: je mehr OPs du drin hast, um so mehr Fehlerquelle kriegst du. Je einfacher die Schaltung, desto einfacher der Abgleich.

Also erst mal die Anforderungen an die Schaltung beschreiben, dann die dazu passende Schaltung suchen. OP-Verstärkerschaltungen gibts es wie Sand am Meer.
(Das ist wie die Suche nach der richtigen Frau: Es muß nicht die Schönste sein, es muß die sein die perfekt zu mir passt!)  ;)

Grüße

Gunther
Grüße
Gunther

DrThunderhell

Hallo guntherb,

einfach ist schon gut, wenn das mit den OPs geht is es auch kein Thema.
zum Einsatz käme ein:
http://www.micro-epsilon.com/displacement-position-sensors/laser-sensor/optoNCDT_1607/index.html

Allerdings kann ich nur den Analogen Ausgang und Analog GND anzapfen. D.h. der Sensor wird extern versorgt und ich beziehe nur die 2 Analogsignale


Wenn ich das jetzt richtig verstanden habe ist das hier ein Invertierender Verstärker mit dem Verstärkungsfaktor -0,2 und
die Anhebung des Signals erfolgt über R2,R3. Aber warum nehm ich nicht 2 gleiche Wiederstände, dann hätte ich doch genau 2,5V am Spannungsteiler wenn der Eingang 0V hat oder nicht?

Die Sensormasse kann ich auf die Masse vom OP legen?

gruß Jens

guntherb


Wow! das hast du dir ja eine echtes High-Tech Teil besorgt!
MICRO-EPSILON Laservibrometer setzen wir bei uns der Firma auch ein, die sind nicht billig...

Zu deinen Fragen:
Wenn ich das jetzt richtig verstanden habe ist das hier ein Invertierender Verstärker mit dem Verstärkungsfaktor -0,2 und
die Anhebung des Signals erfolgt über R2,R3. Aber warum nehm ich nicht 2 gleiche Wiederstände, dann hätte ich doch genau 2,5V am Spannungsteiler wenn der Eingang 0V hat oder nicht?

Die Sensormasse kann ich auf die Masse vom OP legen?


Im Prinzip ja.
Die Verstärkung ist zwar 0.2, aber es wird ja auch der DC-Anteil mit verstärkt. Daher auch die unsymetrischen Widerstände: Bei 0V Eingangsspannung sollen ja 2,5V am Ausgang anstehen.

Und, ja, die beiden Massen werden verbunden.

Aber, warum liest du den Sensor denn nicht seriell aus?
der hat doch eine RS232!

das wäre sicherlich genauer, und ein fertiger RS232 - TTL Converter kostet nur 3€.

Gunther
Grüße
Gunther

DrThunderhell

ja hmm, weil ich mich damit noch weniger auskenne^^
und das auslesen über seriell wird evtl mehr Programmzeilen kosten was die laufzeit verlängert.

Das ganze hier Arduino, OP, Labview ist relativ neu für mich,
Außerdem solle es flexibel sein, wer weiß was ich für einen Sensor das nächste mal zur verfügung habe.

Aber warum braucht der OP keine symetrische Spannungsversorgung? in allen Büchern ist die schaltung immer Symetrisch abgebildet.


gruß Jens

guntherb

Wenn du flexibel sein willst, dann setze beide Methoden um!
Letztlich ist eine digitale Schnittstelle immer zuverlässiger und einfacher.

Ob sie langsamer ist, hängt von vielen Faktoren ab. Auch da gilt wieder: wie schnell brauchst du es?

Und es gibt sicherlich schon fertige Code-Beispiele für RS232 hier im Forum...

Zur symetrischen Versorgung:
Im Prinzip hast du recht: Ein OP, der +/-10V Signale verarbeiten soll, braucht eine Versorgung von +/-15V.
Das wird vor allem in der analogen Signalverarbeitung gemacht, wenn ich symetrische Signale habe und die auch symetrisch weiterverarbeiten will. Das der Arduino aber nur Signale von 0V-5V kann ist das nicht nötig.
Die von mir vorgeschlagene Schaltung arbeitet hier mit einem Trick:
Die Eingänge liegen fest auf einem Pegel (ca.2V-2,5V).
Der Ausgang bewegt sich von 0,5V bis 4,5V.
Dadurch ist es es nicht nötig, den OP symetrisch zu versorgen.

Grüße
Gunther

Go Up