Forum: Mikrocontroller und Digitale Elektronik Frage zu HopeRF HP03 Drucksensor


von Sebastian M. (izaseba)


Lesenswert?

Hallo,

Wer von Euch hat diesen Sensor ?

Ich habe mir mehrere bei der netten Sammelbestellung gesichert und 
möchte endlich mit meiner Wetterstation anfangen.

Nachdem ich mir eine Berechnungsroutine ausgedacht habe, die mit den 
Examplewerten aus dem Dattenblatt perfekt funktioniert gings an die 
Hardware.

Im Real kam nur Käse raus, dann ging ich meinem AVR mit Dragon ans 
Leder.

Was mir aufgefallen ist,
laut Dattenblatt hat der Parameter C5 einen Wertebereich zwischen 
0x1000-0x8000

Bei allen meinen Sensoren liegt der aber viel höher einmal 0x8B7E dann 
0x9148
oder 0x9258.

Jetzt stell ich Euch die Frage, welchen Wert hat C5 denn bei Euch ?

Ist das jetzt ein Fehler im Dattenblatt, und wenn ja, gibt es vielleicht 
noch weitere Fehler, etwa bei den Formeln ?


Gruß Sebastian

von Robert Hammann (Gast)


Lesenswert?

Hallo Sebastian,

ich kann Deine Beobachtung nur bestätigen. Genauso siehts bei mir auch 
aus. Alle Koeffizienten sind in ihrem gültigen Wertebereich mit Ausnahme 
von C5.

Hast Du schon weitere Erkenntnisse gewonnen?
War Dein Modul auch aus der Sammelbestellung in d.s.e? Vielleicht haben 
die Sensoren ein Problem.

Gruss Robert

von Benedikt K. (benedikt)


Lesenswert?

Mein HP03 (aus der ersten Sammelbestellung hier im Forum wo der HP03 
mitbestellt wurde) hat den Wert 0x782E, ist also OK.

Der gemessene Luftdruck und die Temperatur passen wirklich exakt (auf 
<1%) zu den Werten die z.B. auf wetter.com angegeben werden.

von Sebastian M. (izaseba)


Lesenswert?

Hallo,

Danke für Eure Antworten.

Meine Sensoren habe ich von der 3. Sammelbestellung bei HopeRF, ich habe 
insgesammt 5 davon bekommen und bei allen liegt C5 > 0x8000 , also über 
dem Wert, der im Dattenblatt angengeben ist.

>Hast Du schon weitere Erkenntnisse gewonnen?

Nun ja, ich habe einfach meine 16*16 Bit Multiplikation in eine 24*24 
Bit geändert um das Vorzeichen zu behalten, und sehe da, es klappt.

Die Temperatur passt 100% der Druck liegt leider um 2-3 HPa unter dem 
von wetter.com
Ich nahme an, es liegt an Rundungsfehlern beim Integerrechnen.
Wenn man nähmlich das Beispiel vom Dattenblatt ohne Komma rechnet, kommt 
man auch auf andere Werte, als HopeRF.

@Benedikt, wie rechnest Du, integer, oder fließkomma ?

Gruß Sebastian

von Benedikt K. (benedikt)


Angehängte Dateien:

Lesenswert?

Sebastian Mazur wrote:
> @Benedikt, wie rechnest Du, integer, oder fließkomma ?

Integer. Ich habe allerdings den Rechenweg ein kleinwenig umgestellt, um 
int bzw. long voll auszunutzen. Es hat mich etliche Stunden gekostet, 
den Code soweit zu "optimieren", dass es trotz Integer keinen großen 
Genauigkeitsverluste gibt.
Der Code läuft bei mir seit etlichen Monaten in einem Außensensor, 
bisher ohne Probleme. Aber keine Garantie, dass es bei extremen 
Temperaturen nicht zu Überläufen kommen kann, da ich mich bei den 
min/max Werten der einzelnen Werte am Bereich im Datenblatt orientiert 
habe. C5 dürfte aber keinen Einfluss auf einen möglichen Überlauf haben.
Die Temperatur wird als 8.8 Festkommazahl zurückgegeben (8bit Vorkomma, 
8bit Nachkomma), der Druck als 12.4 bit (12 bit Vorkomma, 4bit 
Nachkomma).
Ob die hohe Auflösung notwendig ist, darüber lässt sich streiten, aber 
wenn schon ein 16bit ADC im Sensor ist, wäre es schade um die Auflösung.

Meine Vermutung zu C5: Probleme mit der Produktionsqualität. Wenn ich 
das richtig sehe, ist C5 der Offsetwert der Temperatur.

Hast du den Luftdruck auch richtig höhenkorrigiert ?

von Sebastian M. (izaseba)


Lesenswert?

Hallo Benedikt,

>Hast du den Luftdruck auch richtig höhenkorrigiert ?

Ehrlich gesagt nein :-(
Das habe ich wohl im Dattenblatt überlesen, was muß ich jetzt genau 
korrigieren ?

Habe gerade mal nachgeschaut, laut meteo24.de liege ich 22 m NN und habe 
hier 1019,5 hPa .
Mein Sensor zeigt mir 1015,3 hPa und die Abweichung ist immer etwa 4 
hPa.

Ich dachte eigentlich, daß ich da nichts mehr korrigieren muß ?

Gruß Sebastian

P.S.
Danke für deinen Rechenweg, denn schaue ich mir in Ruhe an.

von Benedikt K. (benedikt)


Lesenswert?

Sebastian Mazur wrote:
> Hallo Benedikt,
>
>>Hast du den Luftdruck auch richtig höhenkorrigiert ?
>
> Ehrlich gesagt nein :-(
> Das habe ich wohl im Dattenblatt überlesen, was muß ich jetzt genau
> korrigieren ?

Der Sensor misst den physikalischen Luftdruck. In der Meterologie wird 
aber ein auf die Höhe normierter Wert verwendet. Siehe dazu auch:
http://de.wikipedia.org/wiki/Luftdruck

> Habe gerade mal nachgeschaut, laut meteo24.de liege ich 22 m NN und habe
> hier 1019,5 hPa .
> Mein Sensor zeigt mir 1015,3 hPa und die Abweichung ist immer etwa 4
> hPa.

Das könnte durchaus daran liegen. Bei mir beträgt der Faktor z.B. 
1.03262474, was bei 1013mbar schon 33mbar Unterschied ergibt.

Gemäß der Formel aus Wikipedia komme ich bei deiner Höhe auf einen 
Faktor von  1.002757236

Das ergibt dann 1018,1 mbar. Das sind -0,14% Fehler. Passt doch 
wunderbar.
Ähnlich genau sind die Werte auch bei mir. Die HP03 sind echt ihr Geld 
wert.

von Sebastian M. (izaseba)


Lesenswert?

Hallo Benedikt,

>Der Sensor misst den physikalischen Luftdruck. In der Meterologie wird
>aber ein auf die Höhe normierter Wert verwendet. Siehe dazu auch:
>http://de.wikipedia.org/wiki/Luftdruck

Tja, ich habe diesen Artikel zwar schon gelesen, leider nicht gründlich 
genug schäm
Vielen Dank !
Das ergibt jetzt alles Sinn, ich werde diesen Faktor mit einbauen.

>Ähnlich genau sind die Werte auch bei mir. Die HP03 sind echt ihr Geld
>wert.

Da muß ich Dir recht geben, einfach anzusteuern, einfache Beschaltung 
und sehr Sparsam.

Gruß Sebastian

P.S. Ich bin froh, daß Du meine Frage gefunden hast!
Dank deiner Ausführungen bezüglich RFM12 in einem anderem Thread  funkt 
mir mein Tiny24 die Daten vom HP03 ins Wohnzimmer...

von Psiyou .. (Gast)


Lesenswert?

@ Benedikt K. (benedikt)
Hallo,

habe mir Deine Code grad mal angeschaut.
Die letzten beiden Zeilen sind mir allerdings etwas unklar. Warum hast 
Du bei dem Druck den Faktor 1,6 mit zugerechnet?
Denke mal das es was mit der Festkommaarithmetik zu tun hat. Komme da 
nur nicht hinter :(

Bei der Temperatur meine ich eigentlich das es mir soweit klar ist.
Habe das aber mal mit den Beispielwerten aus dem Datenblatt 
durchgerechnet, rauskommen sollen -7,2°C. Komme mit meinem 
Taschenrechner über Deinen Variante auf 602 = 0x025A. Das soll dann doch 
2,90°C ergeben, oder ?
Habe ich das mit der Festkommaarithmetik falsch verstanden?

Gruß

von Jens (Gast)


Lesenswert?

Hi,
hat denn wer den Source code für mich?

jens

von micha (Gast)


Lesenswert?

Hi all,

kann mir bitte jemand erklären was die Funktion "scale16" macht ?
google hilft irgendwie nicht weiter, :-(

Grüße,
Micha

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
Noch kein Account? Hier anmelden.