Ich würde gerne Meßwerte eines druckempfindlichen Widerstands digitalisieren. Der Widerstand liegt mit einem Pin an +4.3V, der andere Pin steht mir zur freien Verfügung. Mein erster Versuch war, einen 1KOhm-Widerstand an den Pin und Masse zu legen, und aus dem Spannungsteiler resultierende Spannung einem Arduino-A/D-Wandler zuzuführen. Grundsätzlich ok, aber so konnte ich dann feststellen, daß das Druck-Widerstand-Diagramm sehr unregelmäßig verläuft: Bei keinem bis ganz geringem Druck ist der Widerstand unendlich (mein A/-Wandler liefert 0). Bei weiter steigendem Druck ergibt sich plötzlich ein Widerstand von etwa 20kOhm, der dann mit nur geringfügig weitersteigendem Druck sehr schnell kleiner wird. Das Kleinerwerden verlangsamt sich mit zunehmendem Druck, so daß er bei mittlerem Druck etwa bei 1kOhm liegt. Nun muß der Druck schon deutlich zunehmen, damit der Widerstand geringer wird, bei starkem Druck sind es nur noch 400 Ohm, bei maximalem Druck dann 258Ohm. So ergibt sich am Spannungsteiler maximal 3.43V, die ich daher als konstante Referenzspannung dem Wandler biete, so daß er sein Maximum liefert. Problem ist nun, daß ein wichtiger Bereich großer Drucke auf die letzten 20% gestaucht wird, während der Bereich kleiner Drucke auf die unteren 60% gedehnt wird. Ich hatte überlegt, einen Potenzierer (http://www.jens-wesemann.de/op9.htm) zwischenzuschalten, der die 20% dehnen und die 60% stauchen soll. Ich scheine ja nur einen Widerstand, eine Diode und einen OP zu brauchen. Aber echte Analogtechnik mit allen Finessen war nie meine Stärke, daher würde ich mich über Hilfe freuen. Als OPs hab ich rumliegen: LM741CN, TL072CP, TL081CDP, NE5534N, NE5532P und RC4558P. Als Diode nur 1N4148. Bei der Auswahl des OP dürfte sicher relevant sein, daß das Drucksignal sich so schnell ändert, daß etwa 10-20.000 Abtastungen pro Sekunde nötig sind. Interessant ist auch, ob es eine Potenziererschaltung gibt, die einen unteren Offset-Abgleich zuläßt, damit bei einen Widerstand von unendlich bis 20kOhm der Wandler auf 0 gebracht werden kann?
:
Verschoben durch Moderator
AnaLogExp schrieb: > so konnte ich dann feststellen, daß das > Druck-Widerstand-Diagramm sehr unregelmäßig verläuft Dann solltest du erst einmal feststellen, ob die Wertepaare reproduzierbar sind. Wenn das nicht der Fall ist, lohnt sich der Aufwand für eine Linearisierung nicht, denn dann ist das Teil wohl nur als Schalter brauchbar.
Perfekt reproduzierbar, hab ich sehr aufwendig überprüft, damit ich nicht umsonst arbeite. Klar könnte ich auch einen Wandler mit 12 oder mehr Bit nehmen und dannn tabellarisch entzerren, aber wenn es ein einfacher OP mit wenigen Bauelementen auch annähernd tut? Mir geht es ja nur um eine ungefähre Dimensionierung von R und welchen OP und eben, ob es noch eine Modifikation für den Offset gibt oder einen anderen Anfang als nen Spannungsteiler?
Schreib doch einfach eine Simulation mit dem Compiler deiner Wahl, oder einem Mathematikprogramm.
AnaLogExp schrieb: > Klar könnte ich auch einen Wandler mit 12 oder > mehr Bit nehmen und dannn tabellarisch entzerren, aber wenn es ein > einfacher OP mit wenigen Bauelementen auch annähernd tut? Das ist die eindeutig bessere Lösung. Bist du einen analoge Linearisierung stabil und genau hast (falls das Möglich ist) bist du mit dem 12 Bit ADC schon fertig.
Ich wollte mit den 9-10Bit des AVR auskommen, es kommt nicht auf exakte Linearität an, nur ein bischen entzerren.
Die groesste Aufloesung gibt's wenn der Seriewiderstand gleich dem Widerstand des Sensors in der Mitte des Anwendungsbereichs hat.
AnaLogExp schrieb: > Bei keinem bis ganz geringem Druck ist der Widerstand unendlich (mein > A/-Wandler liefert 0). Bei weiter steigendem Druck ergibt sich plötzlich > ein Widerstand von etwa 20kOhm Wenn sich plötzlich etwas ändert, spricht das für eine Unstetigkeit der Kennlinie. Das solltest du erstmal klären. > Ich hatte überlegt, einen Potenzierer > (http://www.jens-wesemann.de/op9.htm) zwischenzuschalten, der die 20% > dehnen und die 60% stauchen soll. Ich scheine ja nur einen Widerstand, > eine Diode und einen OP zu brauchen. Das hört sich im Prinzip einfach an. Im wahren Leben macht dir z.B. die Temperaturabhängigkeit der Diodenkennlinie heftig Ärger.
Die erwähnte Diskontinuität beim Übergang von keinem zu geringem Druck ist eine "Spezialität" des Druckwandlers und liegt am Konstruktionsprinzip. Da extrem geringe Drucke nicht auftreten, darf ich den Bereich ignorieren und mich nur auf den Bereich 20kOhm bis 258Ohm konzentrieren. Der OP würde übrigens mit +5V versorgt werden.
Vielen Dank für die bisherigen Antworten. Ich fasse mal zusammen: 1) "Schreib doch einfach eine Simulation mit dem Compiler deiner Wahl, oder einem Mathematikprogramm." schrieb Siebzehn Zu Fuenfzehn Und wie? Das habe ich noch nicht gemacht. Könntest Du mir z.B. in MatLab da mal auf die Sprünge helfen, damit ich alleine weitermachen kann? 2) "Bis du eine analoge Linearisierung stabil und genau hast (falls das Möglich ist) bist du mit dem 12 Bit ADC schon fertig." schrieb Helmut Lenzen Der Schaltungsaufwand ist zu groß. Hab auch keinen 12-Bit-Wandler da, und welchen sollte ich nutzen, der 12 Bit zuverlässig schafft und nicht viel Aufwand mit analoger und digitaler Versorgungsspannung braucht und sich einfach z.B. an den Arduino Uno anschließen läßt, ohne viele Pins zu verbrauchen? 3) "Die groesste Aufloesung gibt's wenn der Seriewiderstand gleich dem Widerstand des Sensors in der Mitte des Anwendungsbereichs hat." schrieb Siebzehn Zu Fuenfzehn Dann müßte ich von 1kOhm auf ca. 470-510Ohm verringern. Da steigt der Strom durch den Drucksensor dann schon mal auf über 5mA. Weiß nicht, ob das nicht langfristig negative Auswirkungen hat. 4) "Im wahren Leben macht dir z.B. die Temperaturabhängigkeit der Diodenkennlinie heftig Ärger." schrieb Wolfgang Größere Schwankungen der Umgebungstemperatur als 15-30 Grad sind nie zu erwarten, typischerweise eher 18-26 Grad. Ist das relevant? Oder meinst Du die Schwankungen durch die variable Stronstärke durch die Diode? Meine Frage bleibt: Wie sieht eine Potenziererschaltung aus, bei der ich den Grad der Biegung in der Steigung ändern kann und ggf. den Nulloffset, so daß Eingangsspannungen von 0.2V bis 3.43V auf Ausgangsspannungen von 0V bis z.B. 3.5V abgebildet werden, wobei z.B. 1.5V eher zu 0.5V bis 1V werden sollten?
AnaLogExp schrieb: > Meine Frage bleibt: Wie sieht eine Potenziererschaltung aus, bei der ich > den Grad der Biegung in der Steigung ändern kann und ggf. den > Nulloffset, so daß Eingangsspannungen von 0.2V bis 3.43V auf > Ausgangsspannungen von 0V bis z.B. 3.5V abgebildet werden, wobei z.B. > 1.5V eher zu 0.5V bis 1V werden sollten? http://www.google.com/patents/EP0388622A1?cl=en Figure 3 sollte das sein was du suchst.
Die Schaltung hat eher eine Logarithmier-Funktion, soweit ich das überblicke. Ich brauche ja das Gegenteil: Mit zunehmender Eingangsspannung soll die Ausgangsspannung überproportional anwachsen. Hab auch schon gedacht, ob es nicht eine Strom-basierte Lösung gibt, anstatt einen simplen Spannungsteiler zu nehmen. Dann könnte der OP die Strom-Spannungswandlung auch übernehmen. Hab im Datenblatt nachgesehen und mehr als 5mA sind definiv nicht erlaubt.
AnaLogExp schrieb: > Die erwähnte Diskontinuität beim Übergang von keinem zu geringem Druck > ist eine "Spezialität" des Druckwandlers und liegt am > Konstruktionsprinzip. Ok, das ist beruhigend. > Da extrem geringe Drucke nicht auftreten, darf ich den Bereich > ignorieren und mich nur auf den Bereich 20kOhm bis 258Ohm konzentrieren. Prima. Wenn du jetzt einen Widerstand, z.B. 2,2kΩ parallel zu deinem Sensor schaltest, bewegt sich der Gesamtwiderstand in einem Bereich zwischen 1,98kΩ und 231Ω. Das macht die Sache für einen 10Bit-Wandler evtl. schon attraktiver.
AnaLogExp schrieb: > Die Schaltung hat eher eine Logarithmier-Funktion, soweit ich das > überblicke. Die Schaltung macht die Kurvenform die du haben willst, je nach dem wie die Widerstaende und die Knickpunkte eingestellt werden. Aber alle diese Schaltungen setzt man schon seit Jahren nicht mehr in der Praxis ein weil sie sehr viele unzulaenglichkeiten haben. Deshalb kann man auch kaum noch Analogmultiplizierer kaufen. Wie gesagt mach es Digital mit einem 12 Bit Wandler. AnaLogExp schrieb: > Hab auch keinen 12-Bit-Wandler da, > und welchen sollte ich nutzen, der 12 Bit zuverlässig schafft und nicht > viel Aufwand mit analoger und digitaler Versorgungsspannung braucht und > sich einfach z.B. an den Arduino Uno anschließen läßt, ohne viele Pins > zu verbrauchen? 12 Bit sind nun keine Raketentechnik. Das ist einfacher und schneller im Griff zu bekommen also so eine krumme Analogschaltung. Die meisten ADC haben heute ein serielles Interface (SPI). Da brauchst du 3 ..4 Leitung zum ADC. Der Aufwand in der Versorung haelt sich in Grenzen, ein Filter in die Analoge Versorungspannung und das wars. Aktuelle uC haben heute meistens einen 12 Bit Wandler an Board.
AnaLogExp schrieb: > Aber echte Analogtechnik mit allen Finessen war nie meine Stärke Erster Schritt: Deine Steinzeoit-OpAmps wegwerfen, denn die benötige eine Versorgungsspannung von unter 0V (so -5V) und über 5V (so 10V) damit sie deine Signale verstärken können, und solche Spannungen extra zur Verfügung stellen zu müssen ist teuer und aufwändig. Besorge dir gelegentlich TS912 oder ähnlich moderne Rail-To-Rail OpAmps, die sich eher so verhalten, wie man es erwartet. Aber zurück zum Problem: AnaLogExp schrieb: > Interessant ist auch, ob es eine Potenziererschaltung gibt, die einen > unteren Offset-Abgleich zuläßt, damit bei einen Widerstand von unendlich > bis 20kOhm der Wandler auf 0 gebracht werden kann? Wenn der Widerstand PLÖTZLICH 20k beträgt, ist da nichts zu linearisieren zwischen unendlich und 20k, und JEDE Schaltung produziert 0V bei den Werten dazwischen. Also konzentriere dich auf den Bereich zwischen 20k und 258 Ohm. Eine Linearisierung per Potenzierung per Diode ist vor allem eines: Ein Thermometer. Denn die Diode hat eine stark temperaturabhängige Kennlinie. Solche Schaltungen kannst du also auch vergessen. Ganz allgemein sind analoge logarithmierer/potenzieren so schlecht, daß man nicht mehr von Messen sprechen kann. Vergiss das also. Wählöe deinen Vorwiderstand so, daß der Bereich besser gedehnt wird, beispielsweise mit 256 Ohm und die ARef auf 2.5V, oder nimm einen höher auflösenden A/D-Wandler wie MCP3221
AnaLogExp schrieb: Für einen Analogexperten sollteeine solche Schaltung doch eine Kleinigkeit sein. :-) > 1) "Schreib doch einfach eine Simulation Wenn Du eine Kurve mit Wertepaaren in Excel einliesst, kannst Du Dir direkt die Formel für eine Kurvenanpassung n-ten Grades ausgeben lassen. Ob Dir diese Formel allerdings weiterhilft, ist eine andere Frage. > Der Schaltungsaufwand ist zu groß. Hab auch keinen 12-Bit-Wandler da, > und welchen sollte ich nutzen, der 12 Bit zuverlässig schafft und nicht > viel Aufwand mit analoger und digitaler Versorgungsspannung braucht und > sich einfach z.B. an den Arduino Uno anschließen läßt, ohne viele Pins > zu verbrauchen? 12-Bit-Wandler sind Standard, da gibts Tausende. Wenn Dir ein "Pi mal Daumen Wert" reicht, gehts natürlich auch mit weniger Bit. > 3) "Die groesste Aufloesung gibt's wenn der Seriewiderstand gleich dem > Widerstand des Sensors in der Mitte des Anwendungsbereichs hat." schrieb > Siebzehn Zu Fuenfzehn > > Dann müßte ich von 1kOhm auf ca. 470-510Ohm verringern. Da steigt der > Strom durch den Drucksensor dann schon mal auf über 5mA. Dann musst Du eben die Betriebsspannung für Deinen Sensor verringern. Das ist für eine höhere Genauigkeit ohne Temperaturfehler sowieso sinnvoll. Weiß nicht, ob > das nicht langfristig negative Auswirkungen hat. > > > 4) "Im wahren Leben macht dir z.B. die Temperaturabhängigkeit der > Diodenkennlinie heftig Ärger." schrieb Wolfgang > > Größere Schwankungen der Umgebungstemperatur als 15-30 Grad sind nie zu > erwarten, typischerweise eher 18-26 Grad. Ist das relevant? Oder meinst > Du die Schwankungen durch die variable Stronstärke durch die Diode? Beides. Der Tk einer Diode beträgt ca. 1,7mV pro Grad. Wie sich das auf Deine Schaltung auswirkt, darfst Du selbst ausrechnen. Gruss Harald
Du möchtest also mittels Analogtechnik eine irgendwie geartete mathematische Funktion nachbilden. richtig? Und dahinter steht dann ein µC, der rechnen kann. Was spricht dagegen, diese mathematische Operation im µC durchzuführen? Geschwindigkeit?
Schlumpf schrieb: > Was spricht dagegen, diese mathematische Operation im µC durchzuführen? Sein ADC hat mit 10 Bit zuwenig Aufloesung.
MaWin schrieb: > Wenn der Widerstand PLÖTZLICH 20k beträgt, ist da nichts zu > linearisieren zwischen unendlich und 20k, und JEDE Schaltung produziert > 0V bei den Werten dazwischen. Das war schon geklärt, i.e. der Bereich ist nicht weiter von Interesse. AnaLogExp schrieb: > Da extrem geringe Drucke nicht auftreten, darf ich den Bereich > ignorieren und mich nur auf den Bereich 20kOhm bis 258Ohm konzentrieren. Aber natürlich hast du Recht. Im wahren, makroskopischen Leben gibt es keine Unstetigkeiten.
Helmut Lenzen schrieb: > Sein ADC hat mit 10 Bit zuwenig Aufloesung. Dann wäre es doch jetzt an der Zeit, wenn mal die Daten zum Wandler, i.e. die R(p)-Kennlinie zusammen mit den Genauigkeitsanforderungen auf den Tisch kommt ;-)
0815 schrieb: > Dann wäre es doch jetzt an der Zeit, wenn mal die Daten zum Wandler, > i.e. die R(p)-Kennlinie zusammen mit den Genauigkeitsanforderungen auf > den Tisch kommt ;-) Tja, das ist wieder Aera 51
Helmut Lenzen schrieb: > Sein ADC hat mit 10 Bit zuwenig Aufloesung. Vielleicht ist das garnicht so, weil sein Sensor sowieso mehrere Prozent Fehler hat.
Es ist der 10-Bit-Wandler eines ATmega328. Irgendwie ist doch klar, daß ich keinen 12-Bit-Wandler verwenden werde, wenn ich das Problem näherungsweise mit 2 Widerständen in den Griff bekommen und dabei sogar auf den OP-Amp verzichten kann. Nochmal, es kommt nicht auf Genauigkeit an, nur auf ein wenig Strecken des Bereichs mit großen Drucken (Widerstand variiert hier von ca. 500Ohm bis minimal 258Ohm) und im Gegenzug Stauchen des Bereichs mit geringen Drucken (20kOhm bis etwa 1kOhm). Wir sind hier eher im 10%-5%-Bereich als <1%. Man muß zwei Dinge auseinanderhalten, Reproduzierbarkeit der Meßwerte und ihre Skala: Der Sensor ist sehr gut in seiner Reproduzierbarkeit, aber die Skala ist sehr verzerrt und außer der Diskontinuität gibt es natürlich auch noch die Sätigung bei 258Ohm, wo ein weiteres Erhöhen des Drucks keine Widerstandsveränderung mehr bewirkt. Eine grobe Korrektur wäre schon gut, eine besser einstellbare Korrektur wäre ein Traum. Eine linearer Spannungsverlauf vor dem Wandler wäre absoluter Overkill. Der Vorschlag von @Wolfgang ist doch prima, einfach ein weiterer Widerstand parallel zum Sensor und schon hab ichs fast. Muß ich jetzt allerdings erstmal ausrechnen ... @MaWin: Meine "Steinzeit"-OP-Amps schmeiße ich ungern weg. Hab auch noch den BB OPA27GP, auch in den Müll?
AnaLogExp schrieb: > Der Vorschlag von @Wolfgang ist doch prima, einfach ein weiterer > Widerstand parallel zum Sensor und schon hab ichs fast. Muß ich jetzt > allerdings erstmal ausrechnen ... Bitte, bitte. Wenn du die Kennliniendaten auf den Tisch legst, würden dich bei der Rechnung und Optimierung auch einige unterstützen ;-)
Gerne! Die Kennlinie hab ich nicht, ich hatte sie mühsam an einigen Stützstellen gemessen, um dabei festzustellen, daß sie näherungsweise logarithmisch verlauft. Daher habe ich mir nur Anfangs- und Endwert gemerkt: 20kOhm, 258Ohm. Ich habe mal eine MatLab-Programm geschrieben, mit dem ich den Einfluß von Serien- und Parallelwiderstand ansehen kann:
1 | % Parallel zum Sensor ist R_parallel, zu beiden in Serie ist R_serie |
2 | clear |
3 | |
4 | % Dem Drucksensor 201 logarithmisch gestufte Widerstandswerte unterstellen: |
5 | lo = log(258); % min. R |
6 | hi = log(20000); % max. R |
7 | stp = (hi-lo) / 200; |
8 | R = exp(lo:stp:hi); |
9 | |
10 | % Ausgangswerte (zum Probieren): |
11 | R_serie = 560; % Ohm |
12 | R_parallel = 2000; % Ohm |
13 | U_in = 4.3; % Volt |
14 | |
15 | % Resultierende Spannung über dem R_serie berechnen, die an den A/D-Wandler geht: |
16 | R_oben = 1 ./ (1 ./ R + 1 / R_parallel); |
17 | U_out = ( U_in ./ (R_oben + R_serie) ) .* R_serie; |
18 | |
19 | % Darstellung: |
20 | semilogx( R, U_out ) |
21 | set(gca, 'XLim',[250 20000]) |
Leider ist der Einfluß des Parallel-Widerstands nicht wie erhofft. Mein Wandler verteilt seine Stufen ja immer bei 0Volt beginnend bis zur Referenzspannung, die ich auf das Maximum von U_out stellen kann. Aber durch den Parallel-Widerstand wird vor allem der Bereich von 0Volt bis zum Minimum von U_out vergrößert und damit der gesamte nutzbare Bereich gestaucht.
Hi Um welchen Drucksensor handelt es sich eigentlich? Hört sich irgend wie nach Teilen in dieser Art an: http://www.conrad.de/ce/de/overview/0231110/Druck-Sensoren?filterPrice=5+-+20 MfG Spess
AnaLogExp schrieb: > Leider ist der Einfluß des Parallel-Widerstands nicht wie erhofft. Das könntest du ihm abgewöhnen, indem du einen Offset abziehst, so dass der Wertebereich vernünftig auf deinem Wandlerbereich liegt. Es bleibt natürlich die Frage, ob ein hochauflösender Wandler, angebunden über SPI nicht die einfachere Lösung ist.
Hi
>Ja genau, von dieser Bauart.
Und für die gibt es auch Datenblätter mit den Widerstandskurven. Ist
wesentlich aussagekräftiger als diese Prosaerläuterungen.
MfG Spess
spess53 schrieb: > http://www.conrad.de/ce/de/overview/0231110/Druck-Sensoren?filterPrice=5+-+20 Es ist schon etwas befremdlich, wenn bei Conrad ein Kraftsensor als Drucksensor bezeichnet wird und der Messbereich mit der Einheit der Masse angegeben wird. ;-(
Danke, @Wolfgang, für den konstruktiven Beitrag. Wie ziehe ich den Offset ab? Ich habe keine nagativen Spannungen. Transistor würde auch gehen, aber wie (ich habe hier BC237B, BC307B, BC416A, BC413C)? Klar, @Spess, und ich würde auch nicht 1000 Worte machen, wenn ich den Typen wüßte, sondern einfach das Datenblatt liefern.
AnaLogExp schrieb: > Wie ziehe ich den Offset ab? Mit einem Differenzverstärker http://www.elektronik-kompendium.de/sites/slt/0210153.htm Die Offsetspannung erzeugst du am besten auch ratiometrisch mit einem Spannungsteiler aus der Versorgungsspannung
Hier steht eine Linearisierungsschaltung mit Offsetabzug drin fuer deinen Sensor. http://www.openmusiclabs.com/learning/sensors/fsr/
@Helmut Lenzen, vielen Dank für den Link. Die dortige Schaltung mit Offsetabzug benötigt aber die eine Seite des Druckwiderstands nicht an +4.3V wie bei mir unveränderlich gegeben, sondern an 0V, daher leider ungeeignet. @Wolfgang, danke für den Tip. Aber jetzt, nachdem mir @MaWin sagte, daß die von mir aufgezählten OPs nicht an 0V-5V betreibbar sind, frage ich mich, ob ich damit die Differenzverstärkerschaltung tatsächlich aufbauen sollte, oder eben lieber transistorbasiert.
AnaLogExp schrieb: > Die dortige Schaltung mit > Offsetabzug benötigt aber die eine Seite des Druckwiderstands nicht an > +4.3V wie bei mir unveränderlich gegeben, sondern an 0V, daher leider > ungeeignet. Die sollte auch mit 4.3V am Sensor funktionieren. Das einzige was dann passiert ist das die Spannung am OP Ausgang kleiner wird anstatt groesser wird wenn der Sensor an GND liegt. Das macht aber nix weil man es in der Software beruecksichtigen kann. Dann ist halt nicht der Wert 0 vom ADC dein 0 sondern der Fullscale vom ADC dein Nullpunkt. AnaLogExp schrieb: > frage ich > mich, ob ich damit die Differenzverstärkerschaltung tatsächlich aufbauen > sollte, oder eben lieber transistorbasiert. Das wirst du nicht hinbekommen. Der OP der dabei rauskommt ist noch schlechter als was du in der Kiste hast. Rail To Rail OPs haben meistens FETs drin. Du wirst also nicht darum kommen einen besseren OP dir zu besorgen. TS912/914 wurde ja bereits erwaehnt.
Helmut Lenzen schrieb: > Schlumpf schrieb: >> Was spricht dagegen, diese mathematische Operation im µC durchzuführen? > > Sein ADC hat mit 10 Bit zuwenig Aufloesung. Dann hoffen wir mal, dass seine 4,3V und die Referenz am AD-Wandler auch so genau und Temperaturstabil sind, dass er den Vorteil einer 12Bit-Wandlung überhaupt ausspielen kann. Irgendwie kapiere ich den Zusammenhang zwischen den Aussagen wie: "es muss nur so ganz grob linearisiert werden" und "ich benötige aber 12Bit" noch nicht so ganz
Schlumpf schrieb: > Dann hoffen wir mal, dass seine 4,3V und die Referenz am AD-Wandler auch > so genau und Temperaturstabil sind, dass er den Vorteil einer > 12Bit-Wandlung überhaupt ausspielen kann. Die Spannungsteiler sollte man schon mit der gleichen Spannung füttern, die auch als Referenz für den µC dient, damit man rein ratiometrisch arbeitet. Schlumpf schrieb: > Irgendwie kapiere ich den Zusammenhang zwischen den Aussagen wie: "es > muss nur so ganz grob linearisiert werden" und "ich benötige aber 12Bit" > noch nicht so ganz Wenn die Kennlinie des Sensors bei hohen kräften zu flach wird, hat man bei zu niedriger Auflösung der Rohdaten keine Möglichkeit, um rechnerisch die Kennlinie glatt zu kriegen, weil das Bitrauschen zu hoch wird.
Wolfgang schrieb: > Die Spannungsteiler sollte man schon mit der gleichen Spannung füttern, > die auch als Referenz für den µC dient, damit man rein ratiometrisch > arbeitet. richtig Wolfgang schrieb: > Wenn die Kennlinie des Sensors bei hohen kräften zu flach wird, hat man > bei zu niedriger Auflösung der Rohdaten keine Möglichkeit, um > rechnerisch die Kennlinie glatt zu kriegen, weil das Bitrauschen zu hoch > wird. auch richtig.. aber bei 12 Bit Wandlung von 0...4V beträgt die Auflösung 1mV bei 10 Bit Wandlung beträgt sie 4mV Stell sich dann halt die Frage, ob die Referenz bzw Versorgung so gut ist, dass sich dieser Vorteil noch bemerkbar macht. Ein Schaltregler rippelt z.B. immer ein bisschen. Ich vermisse hier einfach bis jetzt eine Kennlinie des Drucksensors und eine Angabe darüber, welche Genauigkeit in Bar gefordert ist. Oder habe ich diese Angabe irgendwo überlesen? Erst dann kann nach einer Lösung gesucht werden.
Schlumpf schrieb: > Ich vermisse hier einfach bis jetzt eine Kennlinie des Drucksensors und > eine Angabe darüber, welche Genauigkeit in Bar gefordert ist. Die vermissen wir alle: Also ein Tabelle: Druck [bar] | Widerstandswert [Ohm] | Ausgangsspannung an ADC [V] ------------------------------------------------------------------------ - | | | | Bitte ausfuellen.
Schlumpf schrieb: > Ich vermisse hier einfach bis jetzt eine Kennlinie des Drucksensors und > eine Angabe darüber, welche Genauigkeit in Bar gefordert ist. > Oder habe ich diese Angabe irgendwo überlesen? Ich habe mir mal das Datenblatt eines solchen Sensors von Conrad angesehen. Das steht u.a. , das die Genauigkeit des Sensors eher im zweistelligen Prozentbereich anzusiedeln ist. Da reicht zur Erstellung einer passenden Wertetabelle sicherlich auch ein 10-Bit-Wandler. Gruss Harald
Druck [bar] | Widerstandswert [Ohm] -------------------------------------- | | Sowas würde auch schon reichen. Dann kann man ermitteln, in welcher Beschaltung der Sensor sinnvollerweise betrieben wird. (z.B. Brücke o.ä.) Harald Wilhelms schrieb: > das die Genauigkeit des Sensors eher > im zweistelligen Prozentbereich anzusiedeln ist. gut, dass wir das dann mit 250ppm Genauigkeit erfassen wollen ;-) Schon alleine der Widerstand in einem Spannungsteiler ist üblicherweise ein 1%er + Temperaturdrift von +-100ppm/K...
Schlumpf schrieb: > Ich vermisse hier einfach bis jetzt eine Kennlinie des Drucksensors spess53 schrieb: > http://www.conrad.de/ce/de/overview/0231110/Druck-Sensoren?filterPrice=5+-+20 Oder hier http://media.digikey.com/pdf/Data%20Sheets/Interlink%20Electronics.PDF/FSR400_Series.pdf
Oh @Schlumpf, immer nur auf der Suche nach dem Wurm im Apfel. Alles wurde schon beantwortet, ist nur mittlerweile durch die ganzen Wurm-im-Apfel-Fragen so viel Text geworden, daß man es nicht mehr lesen mag. Ich möchte lieber den Apfel probieren. KURZFORM: Ein druckempfindlicher R ohne Typangabe und Datenblatt, der an einer Seite mit 4.3V verbunden ist, soll mit dem 10-Bit-Wandler im ATmega328P digitalisiert werden (der übrigens realistisch eher 9 Bit hat, da das letzte Bit hauptsächlich Rauschen ist). Er hat eine quasi-logarithmische Kennlinie, die soll vor dem Wandeln grob ausgeglichen werden, damit die paar Stufen des Wandlers auch voll zur Geltung kommen und nicht der gesamte Bereich hohen Drucks sich in nur 20 Digit abspielt. Genauigkeit ist zweitrangig. Auch eine mittelfristige Temperaturdrift ist unproblematisch, es kommt hauptsächlich darauf an, kurzfristige Zu- und Abnahmen zu quantisieren. Und da brauche ich später noch eine Tabelle, aber die soll nicht größer als 1kByte sein, daher nützt mir ein 12-Bit-Wandler wiederum nichts. Der Serienwiderstand darf nicht kleiner als 560 Ohm sein, da sonst der Strom durch den Drucksensor zu hoch wird. Sein kleinstes R bei höchstem Druck von 258Ohm führt dann dazu, daß die Auflösung der größten Drucke doch sehr grobstufig wird, da er auch noch in den Sättigungsbereich kommt. Ich hätte übrigens auch den LF356DP und ich werde jetzt im Probierstadium keinen neuen OP-Amp besorgen. Einer der genannten wird es erträglich hinbekommen müssen und ich hatte natürlich gehofft, daß einer von Euch mir sagen könnte, welcher davon statt mit +-12V eben auch mit 0 und 4.8V einen brauchbaren Differenzverstärker hergibt, denn durch den Parallel-R liegen die Eingangsspannungen zwischen 1.1 und 3.2V. Eine Ausgangsspannung nahe an 0 wäre natürlich schön.
AnaLogExp schrieb: > Oh @Schlumpf, immer nur auf der Suche nach dem Wurm im Apfel. Wenn es dir schmeckt, dann will ich dich nicht daran hindern, deinen Apfel auch mit Wurm zu verspeißen. AnaLogExp schrieb: > Alles > wurde schon beantwortet Wirklich, dann ist es wohl in dem(deinem?) Geschwafel untergegangen. Ich habe jedenfalls noch keine Kennlinie gesehen. Nur eine Angabe in Textform dass sie so ein bisschen logarithmisch sei. Außerdem habe ich noch keine Angabe darüber gefunden, wie groß die maximale Abweichung des gemessenen Drucks vom Tatsächlichen Druck sein darf. Beides grundlegende Punkte, die man zuerst klärt, bevor man sich über einen Lösungsansatz her macht. Ich würde das Problem so angehen. Aber ich bevorzuge es auch, Äpfel ohne Wurm zu essen. Guten Appetit :-)
Schlumpf schrieb: > Ich habe jedenfalls noch keine Kennlinie gesehen. Nun, hier findest Du einige Angaben einschliesslich grobe Kennlinie: www.produktinfo.conrad.com/datenblaetter/500000-524999/503370-in-01-de-D RUCKSENSOR_FSR_406.pdf Für eine zuverlässige und reproduzierbare Druckmessung erscheint mir dieser Sensor jedenfalls nicht besonders gut geeignet zu sein. Gruss Harald
Ich habe hier nun schon massenweise Kennlinien gesehen, die meiner ähnlich sind. Schlumpf, lerne auch Lösungen zu suchen und zu finden, wenn nicht alle Variablen dieser Welt Dir bekannt gemacht wurden. Ebenfalls guten Appetit, und schwafel dabei nicht zuviel. Vermutlich brauche ich tatsächlich einen besseren OP und habe ja auch schon Tipps bekommen. Vielen Dank dafür.
AnaLogExp schrieb: > lerne auch Lösungen zu suchen und zu finden, > wenn nicht alle Variablen dieser Welt Dir bekannt gemacht wurden. Nein, das lerne ich nicht.. denn das ist absoluter Unsinn, so vorzugehen. Das ist wie: "Ich suche ein Lösung für ein Problem, das ich nicht kenne." Aber wenn das deine Art zu Arbeiten ist, dann sei dir das gegönnt. Und wenn du nicht fähig bist, für deinen Sensor 10 Stützpunkte R über Druck zu messen und hier zu posten, und dann noch festzulegen, welche maximale Abweichung zwischen gemessenem Druck und tatsächlichem Druck deine Anwendung erfordert, dann hast du einfach keine Ahung, wie man ein Problem einigermaßen geordnet angeht. Tut mir leid, dass ich dir zeigen wollte, dass du einen prinzipiellen Fehler in deiner Herangehensweise an das Thema hast. Du hast dich auf einen Lösungsweg eingeschossen und ignorierst die Rahmenparameter, die es dabei unbedingt zu beachten gibt. Harald Wilhelms schrieb: > Für eine zuverlässige und reproduzierbare Druckmessung erscheint mir > dieser Sensor jedenfalls nicht besonders gut geeignet zu sein. doch klar, mit nem "besseren" OP geht das ;-)
AnaLogExp schrieb: > Ich hätte übrigens auch den LF356DP und ich werde jetzt im > Probierstadium keinen neuen OP-Amp besorgen. Da ist auch ein alter Hund der hoehere Spannungen bevorzugt und mit 5V nix anfangen kann.
Stimmt leider. Von meiner anfänglichen Idee des Potenzierers bin ich abgekommen, Wolfgangs Parallelwiderstand läßt mich den unteren Bereich stauchen, ein moderner Differenzverstärker würde meinen Offset beseitigen. Ich glaube, das funktioniert so. Besten Dank an alle.
AnaLogExp schrieb: > Perfekt reproduzierbar, hab ich sehr aufwendig überprüft, damit ich > nicht umsonst arbeite. Wo liegt dann das Problem, eine solche Tabelle zu veröffentlichen: Schlumpf schrieb: > Druck [bar] | Widerstandswert [Ohm] > -------------------------------------- > | > | Dann könnte man sehen, durch welche einfach zu realisierende Funktion man die Messwerte grob linearisieren kann. Ach so, hier hast du das Problem genannt: AnaLogExp schrieb: > Die Kennlinie hab ich nicht, ich hatte sie mühsam an einigen > Stützstellen gemessen, um dabei festzustellen, daß sie näherungsweise > logarithmisch verlauft. Daher habe ich mir nur Anfangs- und Endwert > gemerkt: 20kOhm, 258Ohm. Und alle anderen der mühsam ermittelten Messwerte hast du vergessen? Also wenn ich mühsame Messungen mache, dann schreibe ich mir die Ergebnisse immer auf. Es könnte ja sein, dass ich sie kurze Zeit später noch einmal brauche ;-) Eine Logarithmusfunktion ist das, was du in deinem ersten Beitrag beschreibst, jedenfalls ganz und gar nicht, denn die sieht so aus: http://upload.wikimedia.org/wikipedia/commons/a/ae/Log4.svg Schon eher ist es eine Kehrwertfunktion. Das würde sich auch ganz gut mit der Kennline auf Seite 3 des von Wolfgang verlinkten Datenblatt decken: http://media.digikey.com/pdf/Data%20Sheets/Interlink%20Electronics.PDF/FSR400_Series.pdf Sieht dein Sensor denn wenigstens so ähnlich aus, wie die im Datenblatt beschriebenen? Dann könnte man auf ein ähnliches Funktionsprinzip und damit auch auf eine ähnliche Kennlinie hoffen. Und eine Funktion die den Widerstandswert des Sensors in eine umgekehrt proportionale Spannung umsetzt und dabei sogar noch den Offset berücksichtigt, kannst du sehr einfach mit einem Opamp und ein paar wenigen Widerständen (und ohne die Verwendung temperaturempfindlicher Dioden) realisieren. Kommst du drauf, wie?
:
Bearbeitet durch Moderator
Ich hatte im ersten Post noch eine Stützstelle genannt. Vergessen habe ich die Werte nicht, sondern sie haben meine Vermutung gestützt, daß die Kennlinie in etwa logarithmisch verläuft, also habe ich sie nicht aufgeschrieben, sonst hätte ich sie ja leicht posten können oder mir genauso gut Werte ausdenken können. Auch hatte ich gesagt, daß der Sensor den von Wolfgang genannten ähnlich ist und eine sehr ähnliche Kennlinie hat. Und natürlich suche ich bestenfalls die Umkehrfunktion und dachte, ein Potenzierer würde das in etwa leisten. Und ich würde sehr gerne drauf kommen, aber dafür reichen meine Fähigkeiten und Wissen eben nicht, weswegen ich mich an dieses Forum gewendet hatte.
AnaLogExp schrieb: > Auch hatte ich gesagt, daß der Sensor den von Wolfgang genannten ähnlich > ist und eine sehr ähnliche Kennlinie hat. Sorry, das habe ich übersehen. Damit lässt sich ja schon mal etwas anfangen: Diese Kennlinie (erstes Bild im Anhang) verläuft im interessierenden Bereich in der doppeltlogarithmischen Darstellung fast gerade, d.h.
Mehr noch: Die Gerade fällt ganz grob geschätzt mit 1 Dekade pro Dekade, d.h. m ist ungefähr -1. Damit ist
Das ist die Kehrwertfunktion, von der ich oben schrieb. Ersetzt man x durch die Kraft F und y durch den Sensorwiderstand Rs, ergibt sich
Die gesuchte Linearisierungschaltung soll idealerweise in Abhängigkeit von der Kraft die Ausgangsspannung
liefern, wobei über die Parameter k und U0 der Bereich, in dem sich die Ausgangsspannung bewegt, festgelegt wird. Setz man obige Näherungsformel für F ein, ergibt sich
Es ist also eine Schaltung gesucht, die genau diese Gleichung für den variablen Widerstand Rs umsetzt. Der mit einem Opamp aufgebaute nichtinvertierende Verstärker http://www.elektronik-kompendium.de/sites/slt/0210151.htm hat die Verstärkung
d.h. seine Ausgangsspannung ist
Diese Gleichung sieht der gesuchten doch schon sehr ähnlich. Man muss nur noch R2·Ue=k·c, R1=Rs und Ue=U0 setzen, dann hat man das Ziel erreicht. Die gesuchte Linearisierungschaltung ist also ein nichtinvertierender Verstärker mit konstanter Eingangsspannung, bei dem der untere der beiden Gegenkopplungswiderstände der Sensor ist. Durch geeignete Wahl der Eingangsspannung und des oberen Widerstands lässt sich der Ausgangsspannungsbereich so festlegen, dass sie den Messbereich des ADCs möglichst vollständig abdeckt. Dazu wird die Eingangsspannung recht klein gewählt, bspw. 0,1V. Das ist die Spannung, die bei Rs = ∞ auch am Ausgang erscheint. R2 wählt man so, dass beim kleinsten interessierenden Wert von Rs ein Eingangsspannug auf knapp 5V verstärkt wird. Das Ganze würde jetzt schon funktionieren, wenn nicht noch folgende Einschränkung gegeben wäre: AnaLogExp schrieb: > Ein druckempfindlicher R […], der an einer Seite mit 4.3V verbunden > ist Beim nichtinvertierenden Verstärker liegt der untere Widerstand normalerweise auf Masse. Man kann ihn aber auch mit 4,3V verbinden, muss dann aber Ue und R2 entsprechend anpassen. Für Ue wählt man einen Wert, der geringfügig unterhalb der 4,3V, also bspw. bei 4,2V liegt. Leider ist die maximale Ausgangsspannung dann aber ebenfalls auf 4,2V begrenzt. Besser wären knapp 5V. Man kann die Ausgangsspannung dadurch anheben, dass man einen weiteren Widerstand vom invertierenden Eingang des Opamp nach Masse schaltet. Die obere Hälfte des zweiten Bilds im Anhang zeigt die aus diesen Überlegungen heraus entstandene Linearisierungschaltung. Um die Schaltung simulieren zu können, braucht man ein Modell für den Kraftsensor. Da Spice nicht mit Kräften, sondern nur mit elektrischen Größen umgehen kann, habe ich die Kraftquelle durch die Spannungsquelle VKraft ersetzt, bei der 1 Volt der Gewichtskraft von 1 Gramm entspricht Anmerkung: Da im Datenblatt das Gramm bzw. g als Krafteinheit genutzt wird, steht g im nachfolgenden Text ebenfalls für ein "Kraftgramm". Da die Kennlinie bis 2000g geht, liefert die Spannungsquelle also bis zu 2000V. Die nichtlineare Kennlinie des Sensors habe ich durch einen Polygonzug mit 5 Stützstellen angenähert, zwischen denen in der doppeltlogarithmischen Darstellung linear interpoliert wird:
1 | F/g bzw. U/V R/kΩ |
2 | ———————————————————————— |
3 | 26 200 |
4 | 28 75 |
5 | 60 30 |
6 | 70 20 |
7 | 2000 1.5 |
8 | ———————————————————————— |
Das dritte Bild im Anhang zeigt, dass diese Näherung ganz gut mit dem Diagramm im Datenblatt übereinstimmt. Das Simulationsergebnis ist in der unteren Hälfte des zweiten Bilds zu sehen: Auf der x-Achse ist die Kraft von 0 bis 2000g aufgetragen. Die blaue Kurve ist der Widerstand Rs (hier nichtlogarithmisch dargestellt). Die Grüne Kurve ist die Ausgangsspannung der Schaltung, also das, was der ADC zu sehen bekommt. Man sieht, dass fast der vollständige Messbereich des ADCs (0-5V) genutzt wird und die Kurve über den gesamten interessierenden Bereich ziemlich geradlinig verläuft. Die verbleibende Nichtlinearität kann problemlos per Software korrigiert werden. Um bei einer Versorgungsspannung von +5V mit der Ausgangsspannung einen möglichst großen Bereich innerhalb von 0-5V abzudecken, braucht man einen Rail-to-Rail-Opamp. Die Typen die du herumliegen hast (LM741CN, TL072CP, TL081CDP, NE5534N, NE5532P und RC4558P) sind für den Betrieb an 5V leider denkbar ungeeignet, da für diese niedrige Versorgungsspannung entweder gar nicht spezifiziert sind oder dabei nur einen sehr kleinen Ausgangsspannungsbereich von etwa 2-3V haben. Da dein Sensor andere Parameter als der hier betrachtete hat, müssen die Widerstände in der Schaltung entsprechend angepasst werden. In der Schaltung ist die gewünschte Abtastrate von 20kHz noch nicht berücksichtigt. Mit einem sehr schnellen Opamp kann man sie vermutlich erreichen, evtl. können aber auch die Widerstände so dimensioniert werden, dass man auch mit einem langsameren Opamp auskommt.
Eine so ausführliche Antwort ist etwas ganz besonderes. Vielen Dank! Hinsichtlich des Typs des OP wurde der TS912 vorgeschlagen. Ist das eine gute Wahl? Dann werde ich mir den jetzt erstmal besorgen.
TS912 ist ein Rail to Rail. Kannst aber versuchen einen OPA2340 zu bekommen, ist zwar ein bisschen teurer hat aber bessere Werte.
AnaLogExp schrieb: > Hinsichtlich des Typs des OP wurde der TS912 vorgeschlagen. Ist das eine > gute Wahl? Ja. Der TS912 hat eine GBW von 0,8MHz und ein Aol von 80dB. Damit habe ich mal das Frequenzverhalten simuliert (frequenzgang1.png). Die Grenzfrequenz liegt bei 34kHz, und bei 20kHz ist die Dämpfung -1,27dB (13,6%), was nicht sehr berauschend ist. Da die Grenzfrequenz des Verstärkers umgekehrt proportional zur genutzten Verstärkung ist, kann man das Frequenzverhalten verbessern, wenn man die Verstärkung reduziert und zum Ausgleich die konstante Eingangsspannung erhöht. In kraftsensor2.png ist die geänderte Dimensionierung der Widerstände gezeigt. Die Grenzfrequenz liegt jeztzt bei 190kHz, und bei 20kHz ist die Dämpfung nur noch 0,05dB (0,57%), was schon ziemlich gut ist (frequenzgang2.png). Beliebig weit kann man dieses Spiel aber nicht treiben, da dabei auch der Strom durch den Sensor steigt. In der gezeigten Dimensionierung liegt er mit 1,3mA aber noch im akzeptablen Bereich. Der von Helmut vorgeschlagene OPA2340 (GBW=5,5MHz, Aol=124dB) kann natürlich alles noch ein ganzes Stück besser. Da der Kraftsensor aber kein Präzisionsinstrumentist, dürfte auch der billige TS912 ausreichen.
Man koennte sich nun Fragen was ein Drucksensor mit 20kHz soll. Schallwellen messen? Was ist denn die spezifizierte Bandbreite des Sensors, was ist die Bandbreite der Anwendung ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.