Forum: Mikrocontroller und Digitale Elektronik Kalibriertabelle anlegen


von Wolfgang (Gast)


Lesenswert?

Ein Temperaturfühler z. B. MAX6630 hat eine Auflösung von 14 BIT.
Da jeder Messwert von der tatsächlichen Temperatur um einen bestimmten
Betrag abweicht, soll jedem gemessenen Wert ein bestimmter Wert
zugeordnet werden. Wenn man eine Tabelle als array anlegt, dann müsste
man bei 14 BIT:  „ unsigned int Tabelle[16384]“ definieren.
Wahrscheinlich benötigt man dann dazu einen zusätzlichen
Speicherbaustein, um dieses array abzulegen.
Oder sehe ich das falsch.
Gibt es noch andere Möglichkeiten, eine Zuordnungstabelle anzulegen?
Um solchen Antworten, wie z.B. –so genau kann man mit Amateurmitteln
nicht kalibrieren oder wie willst du 16384 einzelne Werte bestimmen,
vorzubeugen: ich möchte „nur“ wissen, wie man programmtechnisch
Kalibriertabellen anlegen kann bzw. wie evtl. die Profis eine Messkurve
 „linearisieren“.
MfG
Wolfgang

von Reinhard Biegel (Gast)


Lesenswert?

Hallo!

Der MAX6630 hat 12 bit + Vorzeichen.
Mir ist deine Fragestellung nicht ganz klar. Da du sowieso ein
serielles Interface am Sensor hast musst du ja nur den eingelesenen
Wert mit dem Wert eines LSBs multiplizieren (in dem Fall 0.0625) und du
hast deine Temperatur.

Also wozu ein Array?

Bei einem analogen Sensor kann man schon ein Array gebrauchen, da oft
der Zusammenhang zwischen Temperatur und Ausgangsspannung nicht linear
ist. Je nachdem, ob man viel Speicher zur verfügung hat oder viel
Rechenzeit, kann man das dann mit einer Lookup-Table realisieren, oder
die einzelnen Messwerte berechnen. In den Datenblättern ist oft eine
Formel angegeben, mit der man die Temperatur näherungsweise ausrechnen
kann.

mfg
Reinhard

von Profi (Gast)


Lesenswert?

Da die Abweichung benachbarter Punkte meist ähnlich ist, genügt es,
eine kleinere Tabelle mit Stützpunkten / Stützstellen zu nehmen und zu
interpolieren (linear oder quadratisch oder beliebige andere Funktion).
Stichwort Splines.

s.z.B. Motorola AN1219: M68HC08 Integer Math Routines
http://www.freescale.com/files/microcontrollers/doc/app_note/AN1219.pdf

von Wolfgang (Gast)


Lesenswert?

@Reinhard
du hast natürlich recht. Es sind nicht 14 Bit, sondern bei einem
MAX6630 12Bit.
Auch ein digitaler Messfühler ist mit einem Messfehler behaftet, der z.
B beim MAX6630 nach Datenblatt bis zu +- 6,5° betragen kann.
@Profi
so etwas habe ich gesucht, danke, muss es mir nun noch genauer ansehen
MfG
Wolfgang

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.