Luftdruckmessung mit MS5534/MS5540

Hi Thomas,

Du hat Recht, die Einser davor habe ich aber einfach mal ignoriert und nur die Takte gezählt. Aber jetzt, wo wir es ansprechen. Vielleicht lese ich ja einmal zu früh oder zu spät das Wort ? Boahh, das kanns sein ! Würde auch erklären, warum die Meßwerte so "komisch genau" immer um die typischen Werte liegen, die Kalibrationsdaten aber streuen. Die Meßwerte haben ja auch keine "vorlaufende" Einser. Dino, das kann es schon sein !
Ich würde nach Abschicken des Befehlsgezappels auf die Bitwechsel auf der
Dout triggern (egal wieviele Takte) und dann nach der letzten Flanke
die entsprechende Anzahl Takte bis zum Anfang des Datenstromes
zählen. Danach dann die Datenbits in zwei Register (16-Bit) reintakten.

Also zuerst für den Kommandomodus die Takte für die entsprechende
Anzahl Bits zählen, danach die Anzahl Takte ignorieren und auf die
Flankenwechsel auf Dout triggern und danach wieder Takte zählen.

Gruß
Dino
 
Hallo,

ich gebs auf Leute :mad:

Den ganzen Tag wieder damit verbracht und kein bißchen Erfolg. Hab sogar schon C-Schnippsel übersetzt und eingebaut. Aber es ist immer das Gleiche. Egal mit welchem Programmschnippsel oder Application-Note ich es probiere, die Werte bleiben gleich. So langsam deicht mir, das die Sensoren doch irgendwie nicht ganz in Ordnung sind. Ich habe die Dinger von ELV, da die sie im Angebot haben. Ich muß mal scheuen, ob ich die Sensoren irgendwo anders auftreiben kann. Will ja nichts behaupten, aber vielleicht verramschen die ihren Schrott bei ELV !

OK, die Berechnung selbst scheint zu passen. Ausgehend von den gelesen Werten kommt beim AVR das gleiche auf dem Display raus, wie auf meinem Taschenrechner, wenn ich es von Hand mache. Da scheint in der Berechnung selbst kein Fehler zu sein.

Da ich auch immer wieder die gleichen Korrekturwerte, egal mit welchem Programm und in welcher Sprache, bekomme gehe ich auch mal davon aus, das ich die Werte korrekt auslese.

Hier mal ein paar Beispiele :

Sensor 1
W1 = 14350
W2 = 14226
W3 = 42013
W4 = 9252
daraus die berechneten Korrekturwerte
C1 = 7175
C2 = 1892
C3 = 144
C4 = 656
C5 = 222
C6 = 18
ergibt mit den gemessenen Werten
D1 = 17037
D2 = 26988
folgende korrigierten Werte
T = 53,15°C
P = 618,8mbar

Sensor 2
W1 = 33714
W2 = 34822
W3 = 274
W4 = 33120
daraus die berechneten Korrekturwerte
C1 = 16857
C2 = 1184
C3 = 517
C4 = 4
C5 = 544
C6 = 6
ergibt mit den gemessenen Werten
D1 = 16876
D2 = 27059
folgende korrigierten Werte
T = 33,57°C
P = 902,0mbar

Sensor 3
W1 = 47692
W2 = 50070
W3 = 42971
W4 = 47004
daraus die berechneten Korrekturwerte
C1 = 23846
C2 = 1756
C3 = 734
C4 = 671
C5 = 782
C6 = 22
ergibt mit den gemessenen Werten
D1 = 16915
D2 = 27496
folgende korrigierten Werte
T = 27,15°C
P = 943,0mbar

Beispiel Datenblatt
W1 = 50426
W2 = 9504
W3 = 48029
W4 = 55028
daraus die berechneten Korrekturwerte
C1 = 25213
C2 = 1908
C3 = 859
C4 = 750
C5 = 148
C6 = 32
ergibt mit den Beispiel-Werten
D1 = 17000
D2 = 22500
folgende korrigierten Werte
T = 28,70°C
P = 960,3mbar

Man sieht, Sensor 3 paßt sehr gut zu dem Beispiel im Datenblatt. Auch die höhenbezogene Druckkorrektur stimmt gut mit meinem lokal gemessenen Luftdruck einer gekauften Wetterstation überein (1013,3mbar).

Ich vermute mal, ich suche ein Fehler, wo keiner ist :confused:

Thomas
 
Wenn dus wirklich aufgibst.
Kannst du mir mal einen Sensor schicken?
Ich wills auch mal Probiren.

Erinnert mich ja irgendwie an die Geschichte mit dem göttlichen Pfannenwender. Nur ein Burgerbrater der einen göttlichen Hamburger zubereiten kann, kann den Pfannenwender aus dem Topf mit dem verhärteten Bratfett ziehen.

Villeicht schaffts ja jemand der nur unerfahren genug ist.
 
Hi Thomas,

lass den Kopf nicht hängen, immerhin haben wir da schon einige Stunden zusammen rein investiert. Hast Du Lust mich mal zu besuchen, z.B. nächsten Samstag und dann schauen wir uns das nochmal zusammen an?

In der Zwischenzeit würde ich folgendes machen: Schreib doch eine nette Email an den Hersteller der Sensoren und bitte um Rat. Das habe ich auch schon gemacht, z.B. bei Dallas bzgl. des DS18S20 und ich hatte bisher immer gute Erfahrung gemacht.

Schilder denen in Deiner Email doch mal Dein Problem und bitte sie um Rat oder um einen Tipp an was es liegen könnte. Ggf. rücken wir dem Ding mit dem 4-Kanal-Oszi auf den Leib. Mal schauen was das Timing spricht.

Was hältst Du von der Idee?

Grüße,
Markus
 
Versteh meinen Post aber bitte nicht falsch.
Ich will natürlich nicht dass du aufgibst und ich dafür die ganzen Sensoren
einkassiere.
Es wäre schade wenn du aufgeben würdest.
 
Thomas,

ich finde die Idee von Nomis nicht schlecht. Ich würde sagen er bekommt einen Sensor und damit wir auch einen Nutzen davon haben ist das "Geschenk" mit einer Auflage verbungen:

"Es darf nur in BASCOM programmiert werden":D

Grüße,
Markus
 
Hallo Thomas,

ich kann mir die Tage die Daten ja auch nochmal ansehen wenn bei mir
wieder Luft ist. Im Moment hab ich relativ viel um die Ohren und immer nur
Bruchstückhaft Zeit. Da kann man leider keine längeren Gedankengänge
knüpfen.

Na denn - Munter bleiben!

Gruß
Dino
 
Hi Thomas,

so wie ich das verstanden habe, bist du eigentlich sicher, daß die Übertragung der Daten selbst in Ordnung ist?! Ansonsten ... würde es vielleicht Sinn machen, die Übertragung in Assembler zu realisieren, so daß man den code in eine Bascom-Lib einpflegt? Muss aber noch dazu sagen, daß ich nicht weiß, welche Voraussetzungen der Assemblercode haben muß, um diesen in Bascom weiterverwenden zu können, auch ob man einfach so das SPI-Modul belegen kann, weiß ich nicht.

Dirk
 
Also ich hab jetzt nachgerechnet:
Du hast nicht Falsch gerechnet. Zumindest nich solange ich nicht auch irgendwas bei der Rechnung versaut hab.

Außerdem glaub ich nicht dass deine Datenübertragung spinnt. Weil die von dir ausgelesenen Daten in der selben Größenordnung sind, wie die vom Rechenbeispiel wie im Datenblatt.
Wäre da irgendein Problem mit einer Bitverschiebung wie von dino angedeutet, würden die Werte doch etwa doppelt oder halb so groß sein wie die im Rechenbeispiel?
 
Hallo Leute :)

Aufmunternde Worte ...

OK, mal ein paar Fakten :

- Die Umrechnung aus den Wörtern MS5534w(x) zu den Kalibrierungsdaten MS5534c(x) ist korrekt. Habs an mehreren Beispielen ausprobiert und "per Fuß" nachvollzogen.

- Die Berechnung der Temperatur und Druckwerte aus den eingelesenen Daten D1 und D2 ist ebenfalls korrekt. Auch hier an mehreren Beispielen getestet.

- Die "Second-Order Temperatur Kompensation" und die Druckberechnung bezogen auf Meereshöhe lassen wir jetzt der Einfachheit mal außen vor. Aber auch die ist korrekt.

Summa Summarum, alles was ich in meinen Prozessor rein bekomme wird korrekt verarbeitet und angezeigt. Bleibt also nur noch die Rein- und Rausschieberei von den Daten, sprich mein gebasteltes SPI. Ich kann die Hardware-SPI nicht verwenden, da diese PINs belegt sind.

Wieso ist ASM verboten ? Nee, wie schon angedeutet kann das auch mit einer LIB geschehen. Und die ist ASM ! Ich muß nur die PINs Din, Dout und SCLK übergeben können. Dann sollten idealerweise entweder die Kalibrationsdaten oder die gemessenen Werte ausgelesen werden können und in eine Variable geschrieben werden.

Aber ehrlich gesagt, es keimt in mir schon ein wenig der Verdacht, das ich Müll gekauft habe, da hin und wieder ein Sensor gute Werte zeigt. Sensor 3 z.B. mißt die Werte ja fast perfekt. Die Temperatur ist ein bißchen hoch. Das kommt aber wahrscheinlich von dem Rumgefummel. Ich werde den Sensor mal eine Weile in Ruhe lassen und schauen, was die Temperatur dann macht.

Thomas
 
Hallo Thomas,

sag mal, in welchen Abständen liest Du denn den Druck und die Temperatur aus dem Sensor?

Mit dem SHT71 habe ich ähnliche interessante Effekt. Wenn ich hier zu schnell/häufig die Daten aus dem Modul lese dann erwärmt sicht der Sensor selbst. Und zwar so stark dass ich in kurzer Zeit einige Grad Unterschied gegenüber der Umgebungdtemperatur habe. Dazu sollte aber ein Hinweis im Datenblatt stehen, was es beim SHT71 nämlich auch tut.

Grüße,
Markus
 
Hallo,

die Erwärmung kommt bei mir hauptsächlich von der Displaybeleuchtung über die Ladungspumpe. Die wird etwas warm. Ich lese die Daten alle 10 Sekunden aus, im Datenblatt steht etwas von 0,5s.

Ach ja, jetzt, da ich das Ding mal in Ruhe gelassen habe, ist die Temperatur bei 22,19°C, was auch plausibel erscheint.

Thomas
 
Sodale,

die eMail an Intersema ist unterwegs. Irgend so ein Webformular. Bis jetzt habe ich keine Bestätigung, auch wenn man das ankreuzen konnte. Leider habe ich in solchen Sachen nicht viel Erfolg bis jetzt gehabt. Meistens kam keine Antwort zurück. Aber mal abwarten !

Das Ding macht mich echt noch rappelig. Mein Verdacht, das die Sensoren Schrott sind erhärtet sich immer mehr :stupido2:

Die werben auf ihrer Seite mit so hoher Genauigkeit, das kann nicht sein, was ich da raus bekomme. Paßt hinten und vorne nicht. Wobei seltsamerweise die ausgelesenen Meßwerte bei allen Sensoren fast identisch sind. Nur die Kalibrierungswerte sind Müll.

Thomas
 
na, da sind wir ja dann mal gespannt was die sagen, wenn sie was sagen...
 
Ja Markus,

die nächste Ladung Sensoren wird bei Intersema direkt bestellt. Da habe ich dann wenigstens die Möglichkeit, das anzumahnen. Ich glaube nicht, das ELV sich da je was scheren wird, Vielleicht steige ich auch auf die MS5540 um. Die sind billiger als die MS5534. Da zahle ich dann gerne die 75 Fränkli Porto und Verpackung.

Ich habe auch noch mal in den unendlichen Weiten des WWW gegooglet. Es gibt anscheinend ein Nachbau von den Dingern : Hope RF Elektronics. Sehen verdammt ähnlich aus und das Datenblatt liest sich fast identisch. Die Dinger werden anscheinend für ca. 3 Euro angeboten. Dummerweise kommts aus Fernost, was immer wieder Probleme mit dem Zahlungsverkehr bereitet.

Thomas
 

Anhänge

  • HP03.pdf
    296,2 KB · Aufrufe: 34
Hallo zusammen,

nachdem die letzten 24 Stunden der Luftdruck dermaßen gesunken ist, hab ich noch einen "Effekt". Die Steigung der Kurve ist ebenfalls total daneben ! Bei den Sensoren, bei denen die Kalibrierungs- und Meßwerte einigermaßen stimmen, paßt auch die Druckdifferenz. Bei den Sensoren mit den "schlechten" Werten ist der Druck noch um mind. 10mbar zu hoch *grmpfff* Man kann die Dinger also quasi in die Tonne treten, selbst mit eigenhändig "korrigierten" Werten.

Ich werde jetzt mal alle Module auf eine kleine Platine machen und alle Kalibrierungswerte auslesen. Mal sehen, ob vielleicht doch die meisten noch zu verwenden sind. Alle anderen Sensoren verschicke ich gerne kostenlos an Euch, damit ihr mal ein bißchen damit spielen könnt. Natürlich nur unter der Bedingung, das ihr die Dinger auch mal ausprobiert. Vielleicht finden wir gemeinsam eine Lösung. Ich muß endlich sicher sein, ob die Sensoren wirklich ein Problem haben.

2 Sensoren sind jetzt schon als "schlecht" markiert. Wer will ?

Thomas
 
OK,

4 Stück habe ich zum Ausprobieren, ob ihr da bessere Werte raus bekommt. Ich verstehe das einfach nicht. Laut Hersteller soll der Druck innerhalb +/-1,5mbar und die Temperatur innerhalb +/-0,8°C sein.

Hier nochmal alle Werte der Sensoren zum Vergleich :

Sensor 1
W1 = 14350
W2 = 14226
W3 = 42013
W4 = 9252
C1 = 7175
C2 = 1892
C3 = 144
C4 = 656
C5 = 222
C6 = 18

Sensor 2
W1 = 33714
W2 = 34822
W3 = 274
W4 = 33120
C1 = 16857
C2 = 1184
C3 = 517
C4 = 4
C5 = 544
C6 = 6

Sensor 3
W1 = 47692
W2 = 50070
W3 = 42971
W4 = 47004
C1 = 23846
C2 = 1756
C3 = 734
C4 = 671
C5 = 782
C6 = 22

Sensor 4
W1 = 14392
W2 = 45142
W3 = 42396
W4 = 13601
C1 = 7196
C2 = 1825
C3 = 212
C4 = 662
C5 = 705
C6 = 22

Sensor 5
W1 = 44250
W2 = 40025
W3 = 43937
W4 = 47365
C1 = 22125
C2 = 2117
C3 = 740
C4 = 686
C5 = 625
C6 = 25

Sensor 6
W1 = 46422
W2 = 46358
W3 = 45023
W4 = 45924
C1 = 23211
C2 = 2020
C3 = 717
C4 = 703
C5 = 724
C6 = 22

Sensor 7
W1 = 48676
W2 = 49046
W3 = 41883
W4 = 47277
C1 = 24338
C2 = 1773
C3 = 738
C4 = 654
C5 = 766
C6 = 22

Sensor 8
W1 = 41474
W2 = 402
W3 = 32800
W4 = 1285
C1 = 20737
C2 = 2053
C3 = 20
C4 = 512
C5 = 6
C6 = 18

Sensor 9
W1 = 48084
W2 = 50518
W3 = 37659
W4 = 44966
C1 = 24042
C2 = 1766
C3 = 702
C4 = 588
C5 = 789
C6 = 22

Sensor 10
W1 = 46182
W2 = 48980
W3 = 45024
W4 = 47246
C1 = 23091
C2 = 2062
C3 = 738
C4 = 703
C5 = 765
C6 = 20

Thomas
 

Anhänge

  • Bild1.jpg
    Bild1.jpg
    189,7 KB · Aufrufe: 33
Hi Thomas,

4 Stück habe ich zum Ausprobieren, ob ihr da bessere Werte raus bekommt. Ich verstehe das einfach nicht. Laut Hersteller soll der Druck innerhalb +/-1,5mbar und die Temperatur innerhalb +/-0,8°C sein.
ich hab da mal ne ganz blöde Frage :D Ich hab das bei irgendeinem Datenblatt
von einem Drucksensor gelesen.

Die Siliziumchips liegen ja gegenüber der Sensoröffnung. Und da Silizium ja
lichtempfindlich ist soll man die Sensoröffnung absolut lichtdicht verdecken,
damit da auch kein Streulicht reinkommt da man sonst nen wunderbaren
Infrarotsensor hat. Hast Du da schon mal dran gedacht ???? Ist jetzt nur
so ne Idee :confused: :confused:

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)