Forum: Mikrocontroller und Digitale Elektronik SHT11 Sensor - Luftfeuchtigkeit umrechnen


von Robert S. (razer) Benutzerseite


Lesenswert?

Hallo an alle

Ic schreibe gerade eie Lib für den SHT11 Luftdruck und Temperatursensor.
Nur wie bekome ich den den gemessenen Luftdruckwert in einen 
Prozentwert?

Dazu gibtes Formeln aus dem Datenblatt:

c1 = -4
c2 = 0.0405
c3 = -2,8 * 10^-6

Um das Signal Temperaturkompensiert zu machen gibt es diese Formel.

t1 = 0.01
t2 = 0.00008

Die beiden Formel sind a recht komplex. Durch die Einbindung der float 
lib, wird das ganze recht rechenintensiv (ich verwende einen AVR!) und 
Speicherintensiv.

Wäre es möglich, das ganze in Integer zu rechnen, damit ich einen Ineger 
für die Ganzzahl und einen Integer für das Komma bekomme?

Danke im Voraus
Gruß Robert

von nop(); (Gast)


Lesenswert?

Ja, man kann immer mit Integer rechnen. Dabei muss man die Rechnung auf 
Integer abbilden. Mit longint kann man 9 dekaden abbilden.

von Robert S. (razer) Benutzerseite


Lesenswert?

Und wie mache ich das genau?

Bei beiden Rechnungen kommt als Ergebnis ein float mit 2 
Nachkommastellen heraus. Wenn ich das Ganze mit 100 multipliziere, komme 
ich auf das erwünschte Ergebnis.

Wenn ich die Einzelfaktoren mit 100 multiplziere, hab ich aber noch 
immer floats drinne. Wie kann ich denn das umgehen?

von nop(); (Gast)


Lesenswert?

Die floats raus und die integer so skalieren (behalte /10000, oder so) 
dass der Bereich bei jeder Operation hinkommt.

von Robert S. (razer) Benutzerseite


Lesenswert?

Meinst du das so?
1
  hum = (uint16_t) (-40000000 + 405000 * hum->_int - 28 * (uint32_t) hum->_int * hum->_int) / 100000;

von nop(); (Gast)


Lesenswert?

Ja, das koennte hinkommen, ohne jetzt ins detail gegangen zu sein.

von Robert S. (razer) Benutzerseite


Lesenswert?

ok Prinzip verstanden :)

von Robert S. (razer) Benutzerseite


Lesenswert?

Die Rechnung ist ja immer noch sehr aufwändig. Kann man das für einen 
Avr noch vereinfachen?

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.