Thermistor (NTC) einfach nutzen: Schritt-für-Schritt Arduino-Anleitung
Komponenten und Zubehör
| Komponente | Anzahl |
|---|---|
| NTC-Thermistor 10kΩ | 1 |
| Widerstand 10kΩ | 1 |
| Arduino UNO | 1 |
| Jumper-Kabel | 1 |
| Steckplatine (Breadboard) | 1 |
Apps und Online-Dienste
- Arduino IDE
- Arduino Web Editor
Projektbeschreibung
Wie einfach ist die Nutzung eines Thermistors?
In diesem Artikel erkläre ich, wie man einen Thermistor verwendet. Zunächst: Was ist ein Thermistor? Ein Thermistor ist ein Widerstand, dessen Widerstandswert temperaturabhängig ist. Es gibt zwei gegensätzliche Typen:
- PTC (Positive Temperature Coefficient): Widerstand steigt mit steigender Temperatur
- NTC (Negative Temperature Coefficient): Widerstand sinkt mit steigender Temperatur
In diesem Beispiel verwende ich einen NTC-Thermistor.
Ein bisschen Mathematik
Um den Thermistor-Widerstand zu berechnen, nutzt man die B-Parameter-Gleichung (nur für NTC-Thermistoren):
Dabei ist:
edie Eulersche Zahl (Basis des natürlichen Logarithmus)R₀der Widerstand des Thermistors bei der Referenztemperatur T₀Bein materialabhängiger Koeffizient in Kelvin (auf dem Datenblatt angegeben)
Um die Temperatur zu berechnen, benötigen wir den aktuellen Widerstand RT, den wir über das Ohmsche Gesetz am Spannungsteiler ermitteln:
Schaltbild des Spannungsteilers: Der Thermistor (RT) und der Festwiderstand (R) liegen in Reihe an VCC. Die Spannung am Thermistor (VRT) wird am Arduino-Analogeingang gemessen.
R_T = V_RT / (V_R / R)
Nun haben wir alle Daten für die Temperaturberechnung:
Wichtig: Alle Parameter (z. B. T₀) müssen vor der Berechnung in Kelvin umgerechnet werden. Das Ergebnis liegt ebenfalls in Kelvin.
Das Ergebnis
Code
Thermistor-Sketch (Arduino)
// Thermometer mit Thermistor
/* Thermistor-Parameter (aus Datenblatt):
* RT0: 10.000 Ω
* B: 3977 K ± 0,75%
* T0: 25 °C
* ± 5%
*/
#define RT0 10000 // Ω
#define B 3977 // K
//--------------------------------------
#define VCC 5 // Versorgungsspannung
#define R 10000 // Festwiderstand 10kΩ
float RT, VR, ln, TX, T0, VRT;
void setup() {
Serial.begin(9600);
T0 = 25 + 273.15; // T0 aus Datenblatt: Celsius in Kelvin
}
void loop() {
VRT = analogRead(A0); // Analogwert lesen (0-1023)
VRT = (5.00 / 1023.00) * VRT; // In Spannung umrechnen (0-5V)
VR = VCC - VRT; // Spannung am Festwiderstand
RT = VRT / (VR / R); // Widerstand des Thermistors berechnen
ln = log(RT / RT0); // Natürlicher Logarithmus
TX = (1 / ((ln / B) + (1 / T0))); // Temperatur in Kelvin (B-Gleichung)
TX = TX - 273.15; // Umrechnung in Celsius
Serial.print("Temperatur:");
Serial.print("\t");
Serial.print(TX);
Serial.print("°C\t\t");
Serial.print(TX + 273.15); // Kelvin
Serial.print("K\t\t");
Serial.print((TX * 1.8) + 32); // Fahrenheit
Serial.println("°F");
delay(500);
}
Schaltpläne
Herstellungsprozess
- Wie Molybdän die moderne Industrie formt: Nutzung, Vorteile und Versorgungsdynamik
- Azure DevOps nutzen: Bewährte Practices für beschleunigte Delivery
- Impure Functions in VHDL nutzen: FSM-Lesbarkeit und Wartbarkeit steigern
- VHDL-Funktionen meistern: Praktischer Leitfaden für effizientes Design
- Prozeduren in VHDL: Wiederverwendbaren Code für einfachere Designs
- While-Schleifen in VHDL meistern: Dynamische Iterationssteuerung
- For-Schleifen in VHDL meistern: Ein praktischer Leitfaden
- Luftqualität messen mit OpenSensors: Arduino & Python Anleitung
- Unsere Website navigieren: Kompletter Guide zu DXF-Dateien hinzufügen, kaufen, herunterladen
- Schleiftechniken für Werkzeugschleifmaschinen meistern: Praktischer Leitfaden