2.13 Thermometer

Ein Thermometer ist ein Gerät, das die Temperatur oder einen Temperaturgradienten misst (das Maß für die Wärme oder Kälte eines Objekts). Ein Thermometer hat zwei wichtige Elemente: (1) einen Temperatursensor (z.B. die Birne eines Quecksilber-Thermometers oder den pyrometrischen Sensor in einem Infrarot-Thermometer), bei dem eine Veränderung mit einer Temperaturänderung eintritt; und (2) eine Möglichkeit, diese Änderung in einen numerischen Wert umzuwandeln (z.B. die sichtbare Skala, die auf einem Quecksilber-Thermometer markiert ist, oder die digitale Anzeige bei einem Infrarot-Modell). Thermometer werden in Technik und Industrie zur Prozessüberwachung, in der Meteorologie, in der Medizin und in der wissenschaftlichen Forschung weit verbreitet verwendet.

Ein Thermistor ist eine Art Temperatursensor, dessen Widerstand stark temperaturabhängig ist, und es gibt zwei Typen: Negative Temperaturkoeffizient (NTC) und Positiver Temperaturkoeffizient (PTC), auch bekannt als NTC und PTC. Der Widerstand des PTC-Thermistors steigt mit der Temperatur, während der Zustand des NTC dem des PTC entgegengesetzt ist.

In diesem Experiment verwenden wir einen NTC-Thermistor, um ein Thermometer herzustellen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Kepler Kit

450+

Kepler Kit

Sie können diese auch einzeln über die untenstehenden Links kaufen.

SN

KOMPONENTE

ANZAHL

LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro USB Kabel

1

3

Steckbrett

1

BUY

4

Jumperkabel

Mehrere

BUY

5

Widerstand

1(10KΩ)

BUY

6

Thermistor

1

BUY

Schaltplan

sch_temp

In dieser Schaltung sind der 10K Widerstand und der Thermistor in Reihe geschaltet, und der durch sie fließende Strom ist derselbe. Der 10K Widerstand dient als Schutz, und der GP28 liest den Wert nach der Spannungsumwandlung des Thermistors.

Wenn die Temperatur steigt, verringert sich der Widerstandswert des NTC-Thermistors, dann sinkt seine Spannung, sodass der Wert von GP28 abnimmt; Wenn die Temperatur hoch genug ist, wird der Widerstand des Thermistors nahezu 0 sein, und der Wert von GP28 wird nahezu 0 sein. In dieser Zeit spielt der 10K Widerstand eine schützende Rolle, sodass 3,3V und GND nicht miteinander verbunden sind, was zu einem Kurzschluss führt.

Wenn die Temperatur sinkt, wird der Wert von GP28 steigen. Wenn die Temperatur niedrig genug ist, wird der Widerstand des Thermistors unendlich sein, und seine Spannung wird nahe 3,3V liegen (der 10K Widerstand ist vernachlässigbar), und der Wert von GP28 wird nahe dem Maximalwert von 65535 sein.

Die Berechnungsformel ist unten dargestellt.

(Vp/3.3V) x 65535 = Ap

Verdrahtung

wiring_temp

Bemerkung

  • Der Thermistor ist schwarz und mit 103 markiert.

  • Der Farbring des 10K Ohm Widerstands ist rot, schwarz, schwarz, rot und braun.

Code

Bemerkung

  • Öffnen Sie die Datei 2.13_thermometer.py unter dem Pfad kepler-kit-main/micropython oder kopieren Sie diesen Code in Thonny, dann klicken Sie auf „Aktuelles Skript ausführen“ oder drücken Sie einfach F5, um es auszuführen.

  • Vergessen Sie nicht, in der rechten unteren Ecke den „MicroPython (Raspberry Pi Pico)“-Interpreter zu wählen.

  • Detaillierte Anleitungen finden Sie unter Code direkt öffnen und ausführen.

import machine
import utime
import math

thermistor = machine.ADC(28)

while True:
    temperature_value = thermistor.read_u16()
    Vr = 3.3 * float(temperature_value) / 65535
    Rt = 10000 * Vr / (3.3 - Vr)
    temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25)))
    Cel = temp - 273.15
    Fah = Cel * 1.8 + 32
    print ('Celsius: %.2f C  Fahrenheit: %.2f F' % (Cel, Fah))
    utime.sleep_ms(200)

Nachdem das Programm ausgeführt wurde, gibt die Shell die Temperaturen in Celsius und Fahrenheit aus.

Wie funktioniert es?

Jeder Thermistor hat einen Normalwiderstand. Hier beträgt er 10k Ohm, gemessen bei 25 Grad Celsius.

Wenn die Temperatur steigt, verringert sich der Widerstand des Thermistors. Dann werden die Spannungsdaten durch den A/D-Adapter in digitale Mengen umgewandelt.

Die Temperatur in Celsius oder Fahrenheit wird mittels Programmierung ausgegeben.

import math

Hierbei handelt es sich um eine numerische Bibliothek, die eine Reihe von Funktionen zur Berechnung gängiger mathematischer Operationen und Transformationen deklariert.

temperature_value = thermistor.read_u16()

Diese Funktion wird verwendet, um den Wert des Thermistors auszulesen.

Vr = 3.3 * float(temperature_value) / 65535
Rt = 10000 * Vr / (3.3 - Vr)
temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25)))
Cel = temp - 273.15
Fah = Cel * 1.8 + 32
print ('Celsius: %.2f C  Fahrenheit: %.2f F' % (Cel, Fah))
utime.sleep_ms(200)

Diese Funktion wird verwendet, um den Wert des Thermistors auszulesen.

Vr = 3.3 * float(temperature_value) / 65535
Rt = 10000 * Vr / (3.3 - Vr)

In den beiden obigen Codezeilen wird zuerst die Spannung anhand des gelesenen analogen Wertes berechnet und anschließend Rt (der Widerstand des Thermistors) ermittelt.

temp = 1/(((math.log(Rt / 10000)) / 3950) + (1 / (273.15+25)))

Bemerkung

Hier ist die Beziehung zwischen Widerstand und Temperatur:

RT =RN expB(1/TK – 1/TN)

  • RT ist der Widerstand des NTC-Thermistors bei einer Temperatur von TK.

  • RN ist der Widerstand des NTC-Thermistors bei der Nenntemperatur TN. Hier beträgt der Zahlenwert von RN 10k.

  • TK ist eine Kelvin-Temperatur, deren Einheit K ist. Hier beträgt der Zahlenwert von TK 273,15 + Grad Celsius.

  • TN ist eine Nenn-Kelvin-Temperatur; die Einheit ist auch K. Hier beträgt der Zahlenwert von TN 273,15+25.

  • Und B(beta), die Materialkonstante des NTC-Thermistors, wird auch als Wärmeempfindlichkeitsindex bezeichnet und hat einen Zahlenwert von 3950.

  • exp ist die Abkürzung für exponentiell, und die Basiszahl e ist eine natürliche Zahl und beträgt ungefähr 2,7.

Wandeln Sie diese Formel TK=1/(ln(RT/RN)/B+1/TN) um, um eine Kelvin-Temperatur zu erhalten, die minus 273,15 Grad Celsius entspricht.

Diese Beziehung ist eine empirische Formel. Sie ist nur dann genau, wenn Temperatur und Widerstand innerhalb des wirksamen Bereichs liegen.

Dieser Code bezieht sich darauf, Rt in die Formel TK=1/(ln(RT/RN)/B+1/TN) einzusetzen, um die Kelvin-Temperatur zu erhalten.

temp = temp - 273.15

Umwandlung der Kelvin-Temperatur in Grad Celsius.

Fah = Cel * 1.8 + 32

Umwandlung des Celsius-Grades in Fahrenheit.

print ('Celsius: %.2f °C Fahrenheit: %.2f ℉' % (Cel, Fah))

Geben Sie Grad Celsius, Fahrenheit und deren Einheiten in der Shell aus.