mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kalibriertabelle anlegen


Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reinhard Biegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/do...

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.