PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Current to Voltage converter



Könich
26.06.2013, 21:58
moinmoin

ich möchte gerne einen "Drucksensor"/ FSR als Eingangssignal für meinen µC benutzen.
Da meine Praxiserfahrung im Schaltungsentwurf relativ gering ist habe ich mich an einer Beispielschaltung aus dem Datenblatt versucht.

https://www.sparkfun.com/datasheets/Sensors/Pressure/fsrguide.pdf
Den auf S.23 beschriebenen Current to Voltage converter wollte ich nachbauen, meinen gesamten Aufbau hänge ich in den Anhang.
Als Verstärker verwende ich einen LM358 http://www.fairchildsemi.com/ds/LM/LM358.pdf
Die -5V erzeuge ich mit einem ilc 7660 http://www.intersil.com/content/dam/Intersil/documents/fn30/fn3072.pdf

Mein Problem: Mit zunehmender Kraft auf den FSR nimmt die Ausgangsspannung des LM358 zu (korrekt), nach 3,66V fällt sie aber sprungartig auf -0,5V ab.

Ist bestimmt irgend ein dummer Anfängerfehler...

Besserwessi
26.06.2013, 22:23
Bei einer Versorgung mit 5 V sind für den LM358 etwa 3,5 V das Maximum der Spannung die der OP noch ausgeben kann - mehr geht einfach nicht mit dem OP.

Die Schaltung als solche ist relativ ungewöhnlich und unpraktisch, weil man die negative Hilfsspannung braucht. Das geht einfacher mit einer Schaltung die die halbe Spannung als Ref. nutzt. Alternativ könnte man auch den Spannungsteiler mit Sensor und einem relativ kleinen Widerstand nutzen, und dann die Spannung am Widerstand verstärken.

Schachmann
27.06.2013, 10:26
Hallo,

mir scheint es, als solltest Du Pin 4 vom LM358 an Pin 5 vom ICL7660 anschließen und nicht an GND. Dann hättest Du wenigstens schon mal die neg. Versorgungsspannung.

25885

Ich würde aber die Schaltung wie auf meinem Plan versuchen (siehe Bild). Dann hättest Du den 7660 komplett eingespart. Wenn Du R1 so groß machst, wie der FSR ohne Druck ist, erhälst Du am Ausgang des OpAmp ca. 15 mV (voller Druck) bis ca. 4,5 V (kein Druck). Wenn ich das Datenblatt des FSR richtig verstanden habe (ich habs nur kurz überflogen), dann steht also jetzt das Verhältnis von kein Druck bis voller Druck zu keine Spannung bis volle Spannung auf dem Kopf. Das würde ich dann im Controller umdrehen, also z.B. die Spannung mit einem 10-Bit-ADC gelesen und in "druck" gespeichert ergäbe:
druck = 1023 - druck; // 0 = kein Druck - 1023 = max. Druck

Gruß,
Ralf

PICture
27.06.2013, 11:44
Hallo!

@ Könich

Ich denke, dass in der richtigen ersten Schaltung der R1 bloss zu gross ist.

Schachmann
27.06.2013, 12:09
Hallo,

lt. Datenblatt LM358: LARGE OUTPUT VOLTAGE SWING 0V TO (VCC – 1.5V)

Vcc ist in der ersten Schaltung - wenn ich das richtig sehe - 5V, also 5V - 1.5V = 3.5V. Dabei ist es egal, wie groß R1 ist.

Gruß,
Ralf

PICture
27.06.2013, 12:18
Sorry, aber bei einem I/U Wandler siehst du das leider falsch, weil Uout = - R1 * Iin, wobei Uout Ausgangsspannung und Iin Eingangsstrom vom OPV ist.

Siehe, bitte, Strom-Spannungs-Wandler in: http://de.wikipedia.org/wiki/Operationsverst%C3%A4rker .

Wenn die Ausgangsspannung höher als möglich seien sollte, geht der OPV in Sättigung mit in erstem Beitrag beschriebenen Konsequenzen.

Übrigens, ein einfachster I/U Wandler ist ein Widerstand. ;)

Schachmann
27.06.2013, 14:12
@PICture: In obiger Schaltung ist der OPV in Sättigung, d.h. er clippt bei rd. 3,5V. Es bringt dann nichts, den Widerstand zu ändern. Die Spannung wird nicht über 3,5V gehen. Darauf wollte ich hinweisen.
Die Formel in Wikipedia ist natürlich richtig, sie war ist mir auch bekannt. Trotzdem Danke für den Hinweis.

Gruß,
Ralf

PICture
27.06.2013, 14:19
Natürlich, aber Minderung des R1 wird den linearen Bereich von Iin bis zur Sättigung des OPV's vergrössern. ;)

Beispielweise für R1 = 3k wird das "clipping" erst beim 1,22 mA vorkommen, anstatt wie bisher für R1 = 4,7 k bei 0,78 mA.

Könich
27.06.2013, 21:39
moinmoin

Erst einmal vielen Dank für die schnelle und ausführliche Hilfe.
Für die Schaltung hatte ich mich entschieden, da ich mir ein "lineareres" Signal praktisch vorgestellt habe.

Doch bei genauerer Betrachtung ist es das ja eigentlich garnicht. Denn ich muss dann vorher einen Bereich definieren, in welchem der FSR bleibt, (durch auswahl von R1), wird der FSR zu gering komme ich immer entweder in die sättigung des OPs, oder bei einer vergrößerten Versorgungsspannung des OPs (zB direkt die 9V um sättigung zu vermeiden) komme ich irgendwann über 5V was sicher dem µC nicht gut tun würde.
In meiner Anwendung sollen eigentlich relativ kleine Kräfte auftauchen, aber ich will eben dass große Kräfte zumindest erkannt werden und nichts beschädigen.
Also ist wohl der einfache Spannungsteiler wesentlich praktischer, seine Nichtlinearität ist eigentlich ein Vorteil da kleine kräfte im AD wandler genauer aufgelöst werden als große

Also ein Spannungsteiler. (Zur sicherheit):
5V
|
FSR
|
+------ADC µC
|
R1
|
GND


der 4k7R scheint mir da ein guter wert zu sein, vllt auch 10k, das muss ich einfach in der praxis herausfinden.

jetzt frage ich mich, wozu man bei dem Spannungsteiler noch einen Opamp bräuchte. (wie in dem datenblatt des FSR auf S.18 )
könnte der ADC die Spannung am Teiler sonst verfälschen? im Datenblatt des Atmega32 hab ich einen input Leaking current des IO-Pin von max 1µA gefunden, das sollte bei den ~1mA des Spannungsteilers ja nichts ausmachen, oder ist da sonst noch was zu beachten?

Außerdem habe ich ja jetzt die Option die Spannung über den FSR oder den R1 zu messen. Gibt es da irgendwelche Argumente für eine bestimmte Entscheidung, oder wähle ich das nach perönlichem Geschmack? (also zB 0V soll auch 0N auf dem sensor entsprechen)

PICture
27.06.2013, 22:05
jetzt frage ich mich, wozu man bei dem Spannungsteiler noch einen Opamp bräuchte. (wie in dem datenblatt des FSR auf S.18 ) könnte der ADC die Spannung am Teiler sonst verfälschen? im Datenblatt des Atmega32 hab ich einen input Leaking current des IO-Pin von max 1µA gefunden, das sollte bei den ~1mA des Spannungsteilers ja nichts ausmachen, oder ist da sonst noch was zu beachten?

Ein I/U Wandler mit OpAmp wird vor allem für sehr kleine Iin (in µA Bereich) bzw. kleinen Ausgangswiderstand bei grossem R1 (im MOhm Bereich), also bei sehr genauen Messungen benötigt. In deinem Fall, wenn sogar keine Linearität erforderlich ist, wäre ein I/U Wandler mit OpAmp, wie Kanonen auf Spatzen.


Außerdem habe ich ja jetzt die Option die Spannung über den FSR oder den R1 zu messen. Gibt es da irgendwelche Argumente für eine bestimmte Entscheidung, oder wähle ich das nach perönlichem Geschmack? (also zB 0V soll auch 0N auf dem sensor entsprechen)

Meine Meinung nach kannst du es nach Geschmack machen, wenn es für dich richtig funktionieren würde. :)

Schachmann
28.06.2013, 08:05
@Könich: Hallo, ich nehme an, die Fragen beziehen sich auf meinen Schaltungsvorschlag? Ich habe den OPV eingesetzt, weil ich angenommen hatte, Du hättest diesen sowieso. Er ist in meinem Vorschlag als Impedanz-Wandler geschaltet, d.h. wenn Du ihn benutzt, kannst Du den Spannungsteiler praktisch als unbelastet ansehen. Ich habe im Web irgendwo gelesen (ich habe es noch nicht nachgemessen), dass ein ATMega bis zu 0,8mA Strom bei der Analog-Digital-Wandlung über den Portpin ziehen kann. Wenn dem wirklich so ist, kann er das Messergebnis schon erheblich verfälschen. Meiner Meinung nach (und ich möchte jetzt keine theoretische Diskussion lostreten, sondern nur meine Meinung kundtun) sollte eine Messung selbst das Messergebnis so wenig wie möglich verfälschen. Deshalb würde ich den OPV einbauen. Du machst das natürlich so, wie Du willst.

Gruß,
Ralf

PsiQ
01.07.2013, 21:58
5V
|
FSR
|
+------ADC µC
|
R1
|
GND

Abend!
Ich würde bei obiger Schaltung oben den Widerstand setzen, und unten den Sensor.
wenn der Sensor verreckt oder einen kurzen kriegt hängt dein µC Pins sonst direkt an +
.. ist eigentlich egal wenn das die gleichen 5V sind wie am µC, aber ich geh da immer auf Nummer sicher,
...
und würde sogar noch eine 5,2V Z-Diode parallel zum Sensor setzen.
Ich weiß nicht wo dein Sensor nachher sitzt, aber wenn der im Freien hängt mit etwas Zuleitung und evtl mal was mit der Verkabelung
passiert ist so der µC zusätzlich etwas geschützt.



+5V
|
[4k7]
|
+---------+-- ADC µC
| _|_
[FSR] A Z-Diode 5.2V
| |
GND_______|



(Eigentlich würde ich dann zur Z-diode noch n 1k davor und 100nF dahinter setzen am µC Pin wie im kfz ;-) )