Hallo, ich wollte mal eure Meinung hören: Um den Messwert Luftfeuchtigkeit vom Si7021 in % umzurechnen, wird folgende Formel angegeben: RH% = 125 * RH_Code / 65536 - 6 RH_Code ist ein 16 Bit-Wert. Im Prinzip ganz einfach, ich multipliziere beide Bytes mit 125 und addiere die Ergebnisse anschließend um ein Byte vesetzt miteinander. Ich erhalte eine 24-Bit-Zahl. Die Division schenke ich mir, denn im höchsten Byte ist dann schon die Ganzzahl des Wertes enthalten, von der ich einfach 6 abziehe. Die Ausgabe erfolgt über eine Schleife, die 100er, 10er abzieht und die Durchläufe für jede Dezimalstelle zählt. Nun würde ich aber gern noch eine Nachkommastelle erhalten, hab' aber keine Ahnung, wie ich das hinbekommen soll. Es sind 2 Nachkommabytes. 1 reicht schon oder sogar noch weniger Bit. Wie komme ich auf die passende Dezimalziffer? Bei Beschränkung auf 4 oder 5 Bit würde eine Tabelle gehen. Gibt es noch einen anderen (eleganten) Weg? Statt mit % könnte ich auch in %% rechnen (also alles *10), dann wäre aber die Multiplikation aufwendiger, da ich nicht mehr mit 8 Bit multipliziere. Außerdem muss man noch prüfen, ob man über 100 bzw. unter 0 liegt (was passieren kann). Das würden dann auch 16 Bit Operationen werden.
Mit 10 multiplizieren und dann die Vorkommastalle nehmen ergibt die 1 dezimale Nachkommastelle. Vor der Multiplikation die Vorkommastellen löschen.
Christian S. schrieb: > Nun würde ich aber gern noch eine Nachkommastelle erhalten, Gibt die der Si7021 laut Datenblatt überhaupt her? Nö. Datenblatt sagt: +- 3% RH. Da brauchste die Nachkommastelle nicht mehr, da is nur Rauschen.
Jim M. schrieb: > Gibt die der Si7021 laut Datenblatt überhaupt her? > Nö. Datenblatt sagt: +- 3% RH. Da brauchste die Nachkommastelle nicht > mehr, > da is nur Rauschen. Ja, ich würde sogar die 125 mit 128 ersetzen, da der dadurch entstandener Fehler etwa 2,34% beträgt und somit kleiner ist. Und linksschieben ist bedeutend schneller als Multiplikation... Und +/- 3% RH ist im Endeffekt genauso ungenau wie +/- 5%.
:
Bearbeitet durch User
Mag, sein, dass der +/- 3% Ungenauigkeit hat. Die Frage ist die Reproduzierbarkeit eines Ergebnisses. Wenn alle Werte z.B. +2.5% sind, passt das mit der Nachkommastelle durchaus. Bislang habe ich mit dem DHT22 gemessen und der ist bestimmt nicht besser. Mit der Nachkommastelle erkenne ich aber besser die Tendenz der Messungen, denn bis sich vorn etwas tut, dauert es viel länger. Nur dafür wollte ich die Stelle, nicht um die Feuchtigkeit besonders genau zu messen. Ich meine auch nicht, dass es dort schon besonders rauschen wird. Ich werde es einfach probieren.
Ich hab's jetzt gemacht, wie Johann L. vorgeschlagen hat. Die erste Nachkommastelle ist recht konstant. Schwankt bei den Messungen um 1. Das ist ja normal.
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.