Wie misst man die Temperatur mit einem NTC-Thermistor?

Ich habe einen TTC103 NTC-Thermistor. Es hat einen Nullleistungswiderstand von 10 kΩ bei 25 °C und einen B25/50-Wert von 4050. Wie verwende ich es zur Temperaturmessung?

Hey, ich habe genau den gleichen Thermistor :)

Antworten (5)

NTC-Thermistoren (negativer Temperaturkoeffizient) ändern ihren effektiven Widerstand über die Temperatur. Die häufigste Gleichung, die zur Modellierung dieser Änderung verwendet wird, ist die Steinhart-Hart-Gleichung . Es verwendet drei Koeffizienten, um das NTC-Material mit großer Genauigkeit zu charakterisieren.

Die Steinhart-Hart-Gleichung ist ein Modell des Widerstands eines Halbleiters bei verschiedenen Temperaturen. Die Gleichung lautet:

1 T = EIN + B ln ( R ) + C ( ln ( R ) ) 3

wo:

  • T ist die Temperatur (in Kelvin)
  • R liegt der Widerstand bei T (in Ohm)
  • EIN , B , und C sind die Steinhart-Hart-Koeffizienten , die je nach Typ und Modell des Thermistors und dem interessierenden Temperaturbereich variieren. (Die allgemeinste Form der angewandten Gleichung enthält a ( ln ( R ) ) 2 Term, wird aber häufig vernachlässigt, da er typischerweise viel kleiner als die anderen Koeffizienten ist und daher oben nicht gezeigt wird.)

Steinhart-Hart-Gleichung – Wikipedia, The Free Encyclopedia

Viele Hersteller stellen Anwendungshinweise (z. B. hier ) zur Verfügung, in denen beschrieben wird, wie ein bestimmter NTC kalibriert wird, wenn Sie eine Genauigkeit wünschen, die besser als die angegebene Herstellungstoleranz ist.

Der bereitgestellte B-Koeffizient kann in einer vereinfachten Steinhart-Hart-Gleichung verwendet werden, wie im Wikipedia-Thermistor-Artikel unter "B-Parameter-Gleichung" beschrieben .

Alle drei Antworten sehen gut aus, aber diese hat mir am meisten geholfen.
Wie sind Sie damit umgegangen l n ?
Warum muss ich für die Gleichung zu Wikipedia gehen? Kannst du es nicht hier geben?
Sie sprechen von der Fertigungstoleranz. Aber wie kann ich die Toleranz entwerfen, wenn ich nur B habe, Toleranz von B, Toleranz von R25? Wie der NTCLE203
@thexeno stecken Sie das Maximum und das Minimum in eine Tabelle und berechnen Sie es über den gewünschten Temperaturbereich.

Verwenden Sie es als ein Bein (z. B. das "obere" Bein) in einer Spannungsteilerschaltung, wobei das andere Bein ein bekannter Widerstand ist. Messen Sie die Spannung am Mittelpunkt des Teilers (z. B. mit einem Analog-Digital-Wandler). Leiten Sie den Thermistorwiderstand aus der gemessenen Spannung wie folgt ab:

R t h e r m ich s t Ö r = ( v c c v m e a s u r e d 1 ) × R k n Ö w n

Verwenden Sie die Gleichung:

T = B l n ( R t h e r m ich s t Ö r R 0 × e B T 0 )

in Ihrem Fall, R 0 = 10000 , B = 4050 , und T 0 = ( 273 + 25 ) = 298 . Setzen Sie diese Zahlen plus den gemessenen Widerstand des Thermistors in die Gleichung ein und Sie erhalten eine Temperatur in Kelvin.

Lesen Sie diesen Wikipedia-Artikel für weitere Details.

Ja, ich muss fragen :) Wie führen Sie diese Berechnungen mit einem 8-Bit-Mikrocontroller durch?
@abdullahkahraman Sie würden eine Kombination aus einer Nachschlagetabelle und einer Interpolation zwischen Nachschlagetabellenwerten verwenden. Angenommen, Sie haben einen 10-Bit-ADC; das sind 1024 mögliche Werte vom ADC. Sie könnten 1024 konvertierte Werte im Speicher speichern, oder Sie könnten 512 (jeden zweiten) oder 256 (jeden 4.) usw. je nach Speicher speichern. Interpolation ist ein großes Thema, ebenso wie Oversampling oder „Banding“, mit dem Sie die Genauigkeit erhöhen können.
@AndrewKohlsmith wie erhöht Oversampling die Auflösung?
@abdullahkahraman Ihre Nachschlagetabellen-Abtastung könnte über den Bereich der Eingabe ungleichmäßig sein ... das Speichern von mehr Abtastungen der Kurve, wo sie "kurviger" ist, und das Anwenden von Interpolation kann Ihnen eine bessere Fehlercharakteristik geben
Aber wie kann ich mir den Temperaturfehler aufgrund von B ausdenken? Da einige Datenblätter nur B angeben, Toleranz von B, Toleranz von R25. Muss ich Ihre T-Formel wie eine Ableitung manipulieren, um den Fehler zu erhalten? Wie der NTCLE203
@thexeno eine neue Frage stellen.

NTCs sind nichtlinear und Sie werden ziemlich fiese Formeln sehen, die das Verhältnis Temperatur-Widerstand ausdrücken.
Wenn Sie ein Paar gewöhnlicher Widerstände hinzufügen, können Sie ihr Verhalten linearisieren, sodass diese Beziehung durch eine einfache lineare Gleichung der Form angenähert wird j = a x + b . Das folgende Beispiel stammt aus dieser Epcos-Appnote .

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Die Kurve ist von 0°C bis 60°C nahezu gerade, was für viele Anwendungen ausreichend ist.

In dieser Antwort zeige ich, wie Sie in einigen Fällen mit nur einem Vorwiderstand eine nahezu perfekte (15 ppm) lineare Kurve über einen begrenzten Bereich erhalten können.

Bearbeiten
Wenn Sie kein Geld für einen Widerstand haben, müssen Sie entweder die Steinhart-Hart-Gleichung verwenden, auf die sich Nick und Vicatcu beziehen, oder eine Nachschlagetabelle und Interpolation verwenden. Beide haben den Nachteil, dass sie mehr Speicher benötigen: Steinhart-Hart enthält einen Logarithmus, für den Sie eine Fließkommabibliothek benötigen (ich nehme an, Ihr Mikrocontroller hat keine Fließkomma-ALU). Die Nachschlagetabelle benötigt ebenfalls etwas Speicher und gibt Ihnen möglicherweise keine bessere Genauigkeit als die linearisierte Funktion, wenn Sie diese interpolieren müssen.

Linearisieren Sie nicht, es sei denn, Sie verwenden reine Analogschaltungen!
Und bitte bearbeiten Sie Ihren Beitrag für die Genauigkeit: Die Beziehung wird nicht zu einer einfachen linearen Gleichung. Die Beziehung nähert sich einer linearen Gleichung über einen bestimmten Temperaturbereich an.
Jason: kannst du das näher erläutern? Warum nicht in digitalen Schaltungen linearisieren?
App Note sagt, dass diese Konfiguration ein wenig unter Empfindlichkeit leiden wird.
@abdullah - Ja, wegen des Parallelwiderstands. Wenn Sie jedoch 10 V zur Verfügung haben, wie das Diagramm zeigt, haben Sie über einen Bereich von 60 ° C eine Differenz von fast 5 V, das sind 83 mV / ° C. Selbst bei 5 V haben Sie 41 mV / °C. Ein 10-Bit-ADC mit einer 4-V-Referenz hat eine Auflösung von 4 mV / LSB, also eine Auflösung von 0,1 °C auch ohne Differenzverstärker oder InAmp. Ich denke nicht, dass die reduzierte Empfindlichkeit ein echtes Problem ist.
@stevenvh Ja, toll, dass du das erwähnt hast. Das ist eine große Erleichterung für mich.
Wer kann kein Geld für nur 1 Widerstand haben?
@abdullah - das meinte ich ironisch :-). Aber anscheinend bevorzugen mehr Benutzer die komplexere Situation, was mir nichts ausmacht, aber der einzige Grund, der mir einfällt, die einfachere Lösung zu verwerfen, ist, dass der Widerstand zu teuer wäre. :-)
Ich habe den gleichen NTC mit OP. Ich habe es geschafft, mit einer einfachen Gleichung eine Auflösung von 0,1 °C für den Temperatursensor meines Ni-MH-Akkuladegeräts zu erhalten. Genauigkeit ist nicht so toll, aber eh wer braucht das. Temp in °C = 83-(x*106/1024). Teilen durch 1024 ist einfach :). Hier ist die Grafik. Und ich habe nur einen 8k2-Widerstand in Reihe verwendet.

Ein NTC reagiert nicht linear auf die Temperatur.

Sie können den Widerstand eines Thermistors berechnen, indem Sie die Spannung über ihm in einer Spannungsteilerschaltung messen. Dann können Sie einen Widerstand bekommen R daraus mit dem Ohmschen Gesetz.

Angenommen, Sie haben eine 5-V-Versorgung, verwenden Sie einen 1-kΩ-Widerstand in Reihe mit dem NTC, und wenn Sie 0,5 V messen, teilen Sie einfach 1 k durch 0,5 V und erhalten 10 k Ohm als Widerstand.

Du brauchst ausserdem, T 0 und R Ö , eine „festgelegte“ Temperatur in Kelvin und bei dieser Temperatur sein Widerstand. Es wird normalerweise bei Raumtemperatur gegeben.

Setzen Sie es dann angesichts dieser Details in diese Gleichung ein, um Tdie Temperatur zu erhalten.

T = 1 1 T Ö + ( 1 B ln R R Ö )

Bitte bestätigen Sie, dass ich die Gleichung korrekt umgeschrieben habe.

Es gibt eine Reihe von Möglichkeiten (sowohl in Bezug auf analoge Schaltungen als auch in Bezug auf Softwareberechnungen), um Thermistoren zur Temperaturmessung zu verwenden.

Die kurze Antwort lautet ungefähr so:

  • Verwenden Sie den Thermistor und einen Referenzwiderstand, um einen Spannungsteiler herzustellen.
  • Nehmen Sie die Mitte des Spannungsteilers und speisen Sie ihn in einen Analog-Digital-Wandler.
  • Messen Sie die ADC-Spannung in der Software.
  • Konvertieren Sie mit Ihrem Wissen über den Referenzwiderstand und die R-T-Kurve des Thermistors von ADC-Zählungen in Temperatur.

Hier gibt es eine Reihe von Feinheiten, daher sollten Sie sich zur weiteren Lektüre diesen Artikel von mir über die Thermistor-Signalkonditionierung ansehen - hoffe, das hilft!

Der Artikel sieht gut aus!