PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Luftdrucksensor Auswertung OpAmp



goara
09.07.2008, 13:43
Hallo

habe einen luftdrucksensor MPX4115A
datenblatt:
http://www.datasheetcatalog.org/datasheet/motorola/MPX4115A.pdf
den will ich am adc auswerten..
bis jetzt habe ich ihn so angeschlossen:
http://www.dyyyh.de/robo/luftdruck.jpg

allerdings zeigt der adc immer 0 an... ist dann die referenzspannung falsch ?? bzw soll ich die mal über ein poti hinundherfahren bis ich sinnvolle werte bekomme oder wie würdet ihr das machen ?? bzw liegt es an was anderem??
danke shcon mal[/url]

ranke
09.07.2008, 14:12
Ich schätze, Du betreibst die schaltung bei Umbebungsdruch (etwa 100 kPa). Als Ausgangsspannung des Sensors ist dann etwa 4,2 Volt zu erwarten.
Fall Vcc = 5V und gnd = 0 V, kann man sich ausrechnen, daß der Ausgang des OpAmp bei etwa 95 V liegen müßte.
Der klebt also am oberen Anschlag.

Besserwessi
09.07.2008, 20:09
Je nach gewünschtem Meßbareich kann man den Sensor direkt an den AD anschließen. Der TLC272 ist bei den 4,2 V schon ganz ander Grenze bei 5 V Versorgung. Die Schaltung so wie gezeichnet würed da am oberen Anschlag sein. Der Wert 0 vom AD wandler paßt da aber nicht zu. Da sollte eignetlich immer er Maximalwert (z.B. 1023 bei einem 10 Bit Wandler) rauskommen. Da Scheint noch ein Software Problem dazuzukommen.

Bis man die Software richtig hin hat, ist eine Poti für den AD Eingang eine gute Idee.

Bei der Schaltung müßte man eher die Werte von R12 und R13 vertauschen. Wenn der OP nur 5 V als Versorgung hat, sollte das besser eine Rail to Rail OP sein. Bei mehr als 5 V sollte noch eine Widerstand (ca. 10 K) an den Ausgang.

Gock
09.07.2008, 22:53
Ich schließe mich größtenteils dem gesagten an.
Bei diesem nicht invertierenden Verstärker ist die Verstärkung 22. Damit würdest Du eine hohe Auflösung im unteren Bereich erreichen (bei 5V/22=0,22V) wenn der Sensor soweit runter käme, tut er aber nicht.
Du solltest also R14 tauschen gegen R14 = 1k * Vcc(OP)/Vcc(ADC). Wenn also beide Vccs 5V sind, dann R14=1k und damit ist die Verstärkung 1. Dann kannst Du den Druck über den gesamten MessBereich messen (0,25V-knapp 5V).
Allerdings müsste wie schon gesagt diese Schaltung ständig am oberen Anschlag kleben, weshalb es einen Software- und/oder aber einen Hardwarefehler (zB am ADC) gibt.
Der obere Anschlag sollte höchstens 5V sein, da Dein ADC sonst bereits tot ist.
Nach dem Umbau würde ich mal mit einem Multimeter die Spannung am OP messen, am besten während DU den Druck änderst.

@Besserwessi
R12 und R13 würde ich nicht tauschen, da das wie eine Art Messbereichserweiterung aussieht. Weil der Sensor nur bis 0,25V runterkommt, erhält man am OP Ausgang dann 0V.

goara
12.07.2008, 19:15
hmm ok, da habt ihr recht... so macht das nicht viel sinn.
wie kann ich denn erreichen, dass ich im bereich des normalen luftdrucks ( so 900 bis 1100 hPa) von 0 auf 1024 komme ?? steh da gerad einw neig auf m shclauch..

goara
18.07.2008, 14:42
ok, habe die widerstände jetz mal getauscht, das bringt aber auch nichts...

die 2 widerstände sind so gedacht, dass ich den ausgang des sensors von 3,5 - 4,5 volt hoch auflösen kann..ausserhlb leigen die werte ja nie..
wie muesste ich denn dafür die schaltung machen? also dass die das 1 V different auf 0 bis 5 volt verstärkt wird..

Besserwessi
18.07.2008, 15:31
In der Schaltung oben sind R12 und R13 so dass etwa spannungen von etwa 0,5-0,7 V Verstärkt werden können. Mit getauschenten Widerständen wären es etwa 4,3-4,5 V, wenn denn der OP das mitmachen würde.
Am einfachsten nimmt man für R12/R13 einen Poti (z.B. 1..5K) und stellt damit den Spannungsbereich ein. Dann noch einen Widerstand (3.3 K) vor den Schleifer damit die Vertärkung nicht so stark variiert. Ganz auf 5 V am Ausgang wird man nicht kommen, sonst müßte man einen Rail to Rail OP nehmen. Auch der Eingang geht beim TLC27x nur bis etwa 4,3 V, aber das könnte ja gerade noch reichen.

goara
18.07.2008, 16:30
ein poti ist schlecht, weil ich die platine schon geätzt habe und nicht nochmal neu bestücken will :( ... wie kann ich das denn berechnen? finde zwar viele schaltungen zu ops, aber keine die so aussieht wie meine :)
im prinzip leigt ja am + eingang immer eie feste spannung an sagen wir U_0 am - eingang liegt eine spannung zwischen 3,5 und 4,5 volt.(U_e)
wie berechnet sich dann U_a in abhängigkeit von U_0 , U_e R12 R13 und R14 ??

alternativ könnte ich noch einen weiteren widerstand am sensorausgang einsetzen, dann wäre es ein differenzverstärker, damit sollte das dann ja gehen oder??

Besserwessi
18.07.2008, 22:01
Ein extra Widerstand am Sensor hilft nicht viel weiter, denn da fließt kein Strom. Man muß nur die passenden Widerstände finden, dann paßt das schon.

Die Schaltung läßt sich berechenen indem man die Ström am - Eingang aufsummiert:

0 = (5V-Ue)/R12 + (0-Ue)/R13 + (Ua-Ue)/R14

Wenn man da die 2 Grenzwere einsetzt sollte man die Widerstände rauskriegen.

Wenn das Rechnen zu mühsam ist, kann man z.B. mit LTSpice (auch Switchercad genannt) auch mal Probieren.

goara
18.07.2008, 22:25
ok, das lässt sich rechnen... :) aber die software ist auch nett.. danke ...

Roger
23.12.2008, 20:59
Wie ging's denn mit dem Thema weiter? Ich bin gerade dabei genau das gleiche zu machen. Will den MPX4115A an einen Atmega als Barometer benutzen. ...

Danke!

goara
24.12.2008, 08:01
hi Roger,

habe jetzt einen Digitales i2c Poti verwendet um die Referenz anzupassen, damit ich eine höhere Auflösung bei grossem bereich habe. Das ist aber warscheinlich ein wenig überdimensioniert, mit 2 - 3 widerständen an verschiedenen Pins geht das auch ...
Ansosnten geht es jetzt.

Besserwessi
25.12.2008, 15:37
Ein Digitalpoti ist wirklich übertrieben, und nicht mal besonders gut, denn man aht dann nur viele Bereiche mit hoher Auflösung, aber keine festen Zusammenhang zwischen den Bereichen. Ein trimmpoti wäre wahrscheinlich schon ausreichend. Wenn man wirklich mehr Auflösung braucht gibt es auch AD Wandler mit mehr Auflösung: z.B. LTC2400 oder MC3421. Da braucht man sich dann um die Signalanpassung kaum noch gedanken machen und kann viels in Software regeln. Es macht bei 18 oder 24 Bit Auflösung nicht mehr so viel aus, wenn man 3 oder 4 Bits verschenkt.

.:Sebastian:.
25.12.2008, 16:51
Moin Moin ...

Gut das der Thread hier wieder auftaucht.
Ich hätte da nämlich auch mal eine Frage.
Und zwar bin ich grade dabei einen simplen Höhenmesser zu planen.
Er muss jetzt nicht so höllengenau sein, deshalb wollte ich das über Luftdruck machen.
Um die wetterbedingten Schwankungen auszugleichen kann ich das Teil ja an einem Bezugspunkt mit bekannter Höhe eichen.
Ich würde mich dann mit dem Teil dann so grob zwischen 250 und 500 vllt. auch mal 1000m über NN bewegen.

Meine Idee war auch das Signal mit nem OpAmp so zu verstärken, das der interessante Bereich 98 bis 96kPa (= 250 bis 500m ü. NN) genau dem Bereich von meinem AD-Wandler (wahrscheinlich 0-5V) entspricht.

Allerdings steht in dem Datenblatt vom IC Sensitivity : 45,9 mV/kPa.
Bedeutet das, dass die Auflösung von dem IC nur 1kPa ist ?
Weil dann hätte ich auf der ganzen Strecke von 250 bis 500m gerade mal 2-3 Abstufungen.
Das ist mir dann schon etwas zu grob. (Da reicht mir ja ein 2 bit AD Wandler :D)

Liegen da Erfahrungen vor (nach dem Datum des ersten Posts hoff ich das doch schwer) oder hab ich einfach nur das Datenblatt falsch verstanden ?

Sebastian

Besserwessi
25.12.2008, 17:03
Der Wert 49 mV/kPa heißt, dass für ein kPa an Druckänderung sich die Spannung um 49 mV ändert. Kleinere Druckänderungen lassen sich natürlich auch Messen. Ein 10 Bit Wandler kann beo 5 V Refferenz rund 5 mV auflösen, was dann halt rund 0,1 kPa = 1 hPa = 1 mbar oder rund 10 m Höhendifferenz entspricht.

.:Sebastian:.
25.12.2008, 17:25
Okay danke ... hatte ich mir auch fast schon gedacht.
Wär ja etwas dämlich sonst, den als Barometer zu nutzen.
Ich wollte mir bloß sicher ein, bevor ich mal wieder ein Satz falsche Bautteile bestelle ;-)

10m is so der Bereich in den ich wollte. (1mbar is übrigens eher 8 meter Höhendifferenz *klugscheiß*)
Vllt. auch weniger also ich hab einfach mal mit einem 16bit AD Wandler geplant.


Fröhliche Weihnachten
Sebastian

Suggarman
30.12.2008, 11:23
Es gibt solche Sensoren als "barometrische" Versionen. Die gehen dann ca. vom 800 bis 1100 mbar. Mit einem 12-bit AD-Wandler habe ich eine Höhen-Auflösung gut einem halben Meter.
Diese Sensoren sind etwas seltener und dadurch etwas teurer.

mfg

Stefan

robonooby
21.12.2012, 18:50
ich möchte dieses Thema nochmal aufgreifen, da ich auch gerade an einer Luftdrucksensor Schaltung arbeite, aber einfach nicht weiter komm.

Und zwar Benutze ich ebenfalls den MPX4115A (http://www.freescale.com/files/sensors/doc/data_sheet/MPX4115.pdf)Luftdrucksensor.

so nun hab ich eine passende Verstärkerschaltung und Informationen im MikroKopter Wiki (http://www.mikrokopter.de/ucwiki/H%C3%B6hensensor?action=show&redirect=LuftdruckSensor) gefunden.
Ich hab diese Schaltung nachgebaut, allerdings verwende ich einen anderen OP (UA741CP), welcher noch hier bei mir im Keller rum flog, und sie funktioniert nicht wie sie soll.
Hier mal der Original Schaltplan aus dem MikroKopter und mein selbst erstelltes Platinenlayout hierzu.
24078

Wenn ich den Ausgang meiner Verstärkerschaltung ans Oszi oder an nen Multimeter hänge, bekomm ich immer 1,82 V angezeigt.
Diese Spannung wird auch angezeigt wenn ich den Offset über den Jumper verändere. Und das kann doch eigentlich gar nicht sein oder?
Dirket am Sensor (Pin 1) messe ich 3,95 V.

Hab meine Schaltung auch nocheinmal überprüft, aber finde einfach keinen Fehler. Weder im Layout noch bei mir beim Löten :confused:

Ich hoff mir kann da einer von euch weiterhelfen.


Ach ja zuer Anwendung. Möchte, dass mein Robo die Höhe bestimmt. Also nach einer kalibrierung auf der Höhe X soll er Feststellen wenn er sich höher bewegt hat um wie viel Höhenmeter er sich nach oben bewegt hat. Und dies relativ genau, daher diese Verstärkungsschaltung mit dem OP.

Besserwessi
22.12.2012, 10:19
Der uA741 braucht mehr als 5 V Versorgung (so ab 8 V) und der Ausgang geht auch nur bis rund 2 V an die Versorgung ran. Die 1,8 V könnten also einfach die untere Grenze sein, weniger kann der OP vermutlich nicht.

robonooby
22.12.2012, 12:29
oh okey, danke für die Information. Das heißt meine geätzte Schaltung kann ich weg werfen, weil der OP für meine Anwendung net geeignet ist :-(
Sehr schade. aber gut, hätt ich mich vorher mal genauer schlau machen müssen.
also muss ich nen anderen OP mir besorgen und ne neue Schaltung machen.
danke aber schonmal für die Info. Das erklärt auf jedenfall einiges.

Besserwessi
22.12.2012, 13:53
Die Schaltung muss man nicht wegwerfen, den OP könnte man gegen einen anderen Austauschen. Günstigerweise haben fast alle OPs die gleiche Pinbelegung. Ein MCP6001 sollte ein passender Ersatz sein - wenn die Versorgung maximal 5 V ist. In der Regel verwendet man für die ICs im DIP Gehäuse auch eine Steckfassung für das IC, dann ist der Austausch sehr leicht. Der Grund für die Fassung ist weniger der Wert des ICs, sondern der Aufwand zum Auslöten eines ICs falls es doch mal kaputt geht, und die Schonung beim Einlöten.

robonooby
22.12.2012, 21:57
okey danke. Aber der von dir genannte OP ist nicht Pinkompatibel zu meinem. Meiner hat 8 Pins (2 Zusätzliche Offset Anschlüsse) und deiner nur 6. Auch sonst passt es nicht ganz.
Aber ich schau mich vielleicht wirklich mal nach nem anderen OP um der Pinkompatibel ist, bevor ich neu ätzen lass.

Che Guevara
22.12.2012, 22:08
Hi,

ohne jetzt den ganzen Thread gelesen zu haben, kennst du schon die Schaltung vom Mikrokopter? Dort wird der selbe Drucksensor verwendet und der Offset lässt sich über PWM - bei Bedarf - einstellen.

Gruß
Chris

robonooby
22.12.2012, 22:26
Hi,

ohne jetzt den ganzen Thread gelesen zu haben, kennst du schon die Schaltung vom Mikrokopter? Dort wird der selbe Drucksensor verwendet und der Offset lässt sich über PWM - bei Bedarf - einstellen.

Gruß
Chris

danke für deinen Hinweis, genau diese Schaltung hab ich versucht nachzubauen. Aber dadurch, dass ich nen anderen OP verwendet habe funktioniert das leider nicht.

Besserwessi
23.12.2012, 11:18
Bei den Rail-Rail einfach OPs ist die Auswahl wirklich nicht so gut. Gehen sollte ein OPA 347.

robonooby
24.12.2012, 13:06
ja hab jetzt von nem Kumpel noch nen anderen bekommen. Der Funktioniert soweit. Musste paar Drahtbrücken legen, aber ist net so schlimm.
Bekomm jetzt 0,753 Volt am Ausgang. Allerdings nur wenn ich ne Offsetspannung von ca 3 Volt einspeiße. Daher mit 5 Volt Offset geht er auf 0Volt am Ausgang und bei 0 V geht der Ausgang auf Maximalanschlag (5V)
Dort auf der HP (http://www.mikrokopter.de/ucwiki/H%C3%B6hensensor?action=show&redirect=LuftdruckSensor)Wird ne Messgenauigkeit von 0,9Meter angegeben. Wenn ich aber die Schaltung um 2 Meter (Mittels Leiter) in der Höhe ändere, ändert sich nix am Oszi.
also irgendwas stimmt da noch nicht, oder ich mach nen Denkfehler.

Schöne Feiertage

Che Guevara
24.12.2012, 13:40
Hi,

also mit dem Sensor und dieser Beschaltung erreichst du mehr als 0.9m Auflösung. In der Software vom MK wird der Wert 18 mal aufaddiert, sprich es wird interpoliert. Damit kommen sie auf eine theoretische Auflösung von 0.98cm / Step. Allerdings wird dieser Wert wohl auch einiges an Rauschen beinhalten.
Wenn sich allerdings am Oszi nichts ändert, hast du wohl ein Hardwareproblem... Hast du den auch die richtige Auflösung beim Oszi eingestellt? Der Wert ändert sich ja nur um ein paar mV.

Gruß
Chris

robonooby
25.12.2012, 20:43
hmm leider kann ich am Oszi nix genaueres einstellen xD
also das ist eigentlich nur der Pololu USB AVR Programmer (http://www.pololu.com/catalog/product/1300/pictures) mit eingebautem Oszi eingang und Software.
also für mich reicht es im Prinzip. Weil genauer wirds ja dann am Controller auch net. Hat auch 8Bit Eingang.
Aber wirklich was erkennen tu ich dadrauf wie gesagt nicht.
Ich werds mal direkt an den Controller hängen und gucken was der sagt.

Besserwessi
25.12.2012, 21:29
Der AD Wandler im AVR hat an sich 10 Bit Auflösung - wenn die Software als Scope nur 8 Bit nutzt, reduziert sich natürlich die Auflösung. Für die Druckmessung wird man dazu vermutlich auch noch heftig mitteln müssen, schon um Störungen wie 50 Hz oder auch nur Schwankungen vom Wind zu unterdrücken. Damit bekommt man dann auch noch gleich einiges mehr an Auflösung durch Oversampling. Es ist eher so das ein durchgängig konstanter Wert verdächtig ist.

robonooby
27.12.2012, 17:18
okey. also um dann brauchbare Ergebnisse zu bekommen muss ich auf jedenfall dann Mitteln.
Werd ich dann mal probieren, hab erstmal den Sensor zerstört. Kam leider beim Anschluss an Plus mit dem Ausgang und hab ihn dadurch zerstört. jetzt kommt gar nix mehr raus. Hab mir schon nen neuen bestellt. Man sollte definitiv Strom vom Controller board abziehen bevor man was anschließt :)

Hab mich jetzt an die nächste Hürde gemacht. Den Kompass und Beschleunigungssensor xD
Werd mich aber nochmal melden sobalt ich den Luftdrucksensor hab und zum laufen bekommen habe.