Im vorherigen Teil der Beitrags-Serie wurde kurz auf die verschiedenen Temperatursensoren eingegangen und abschließend entschieden, im vorliegenden Fall einen Thermistor zu wählen. Die Umwandlungsergebnisse des ADC geben die analogen Ausgangssignale des ADC in digitaler Form wieder. Um einen aussagefähigen Temperaturwert zu erhalten, muss das Umwandlungsresultat mit einer Spannungs-Temperatur-Formel verarbeitet werden. Thermistoren werden in unterschiedlichen Größen angeboten, sind gegen Temperaturänderungen sehr empfindlich und lassen sich einfach an MCUs anschließen.
Allerdings hat die Temperaturkennlinie eines Thermistors einen sehr nichtlinearen Verlauf, sodass die Korrelation der Thermistorspannung zur tatsächlichen Temperatur entweder das Berechnen einer nichtlinearen Übertragungsfunktion oder die Verwendung einer Wertetabelle (Look-Up Table – LUT) erfordert. Das LUT-Verfahren erfordert zum Interpretieren der Temperatur eine lineare Interpolation zwischen zwei Temperaturwerten in der Wertetabelle.
In den Datenblättern von Thermistoren sind in der Regel für mehrere Temperaturen die entsprechenden Thermistorwiderstände angegeben. Mithilfe der Tabelle im Datenblatt lässt sich daher für eine bestimmte Temperatur die entsprechende analoge Spannung am Eingangskanal des ADC ermitteln. Dieser analoge Eingangswert korreliert wiederum mit einem bestimmten ADC-Code.
Die im Mikrocontroller abgelegte Wertetabelle enthält eine Liste mit Temperaturpunkten und die zugehörigen digitalen Codes des ADC. Bei der Durchführung einer Temperaturmessung mit dem chipintegrierten ADC kann die Applikations-Firmware ermitteln, zwischen welche beiden Temperaturpunkte in der Wertetabelle der resultierende digitale Code fällt. Mithilfe dieser Information lässt sich die Temperatur zwischen zwei Punkten mithilfe der Punkt-Steigungs-Formel interpolieren.
Diese Formel erfordert Multiplikations- und Divisions-Operationen, die sehr rechenintensiv sein und zahlreiche CPU-Zyklen notwendig machen können. Ziehen Sie deshalb die Verwendung eines Mikrocontrollers in Erwägung, der einige der Berechnungen hardwaremäßig ausführen kann, denn dies nimmt die CPU weniger in Anspruch und ermöglicht schnellere, energieeffizientere Berechnungen. Viele MSP430-MCUs enthalten beispielsweise einen Hardware-Multiplizierer, der für 8-, 16-, 24- und 32-Bit-Operationen geeignet ist und Multiplikations-Resultate innerhalb weniger Taktzyklen errechnen kann.
Falls notwendig, können Sie auch den Durchschnitt aus mehreren gemessenen Temperaturwerten bilden, bevor Sie auf die Wertetabelle zugreifen. Für die Mittelwertbildung von Werten, deren Anzahl ein Vielfaches von Zwei ist, kommen auch Shift-Right-Befehle in Frage, die weniger rechenintensiv sind.