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
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
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.