KY-013 Temperatur-Sensor Modul: Unterschied zwischen den Versionen
Aus Linkerkit.de
Zeile 8: | Zeile 8: | ||
Dieses Modul beinhaltet einen NTC Thermistor—dieser hat bei höherer Temperatur einen immer weniger werdenden Widerstandswert. | Dieses Modul beinhaltet einen NTC Thermistor—dieser hat bei höherer Temperatur einen immer weniger werdenden Widerstandswert. | ||
− | [[Datei:KY-013_NTC-Kurve.png | + | [[Datei:KY-013_NTC-Kurve.png|none|610x390px]] |
Diese Änderung des Widerstands lässt sich mathematisch annähern und in einen linearen Verlauf umrechnen und den Temperaturkoeffizienten (Abhängigkeit von Widerstandsänderung zur Temperaturänderung) bestimmen. Mittels diesen lässt sich somit dann immer die aktuelle Temperatur errechnen, wenn man den aktuellen Widerstand kennt. | Diese Änderung des Widerstands lässt sich mathematisch annähern und in einen linearen Verlauf umrechnen und den Temperaturkoeffizienten (Abhängigkeit von Widerstandsänderung zur Temperaturänderung) bestimmen. Mittels diesen lässt sich somit dann immer die aktuelle Temperatur errechnen, wenn man den aktuellen Widerstand kennt. | ||
Zeile 14: | Zeile 14: | ||
<br />Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, wo sich eine bekannte Spannung über einen bekannten und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den unten stehenden Codebeispielen enthalten. | <br />Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, wo sich eine bekannte Spannung über einen bekannten und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den unten stehenden Codebeispielen enthalten. | ||
− | [[Datei:KY-013_VoltDivide.jpg | + | [[Datei:KY-013_VoltDivide.jpg|none|486x498px]] |
Zeile 22: | Zeile 22: | ||
==Codebeispiel Arduino== | ==Codebeispiel Arduino== | ||
− | + | Das Programm misst den aktuellen Spannungswert am NTC, berechnet die Temperatur und übersetzt das Ergebnis in °C für die serielle Ausgabe | |
− | + | <pre class="brush:cpp"> | |
− | double Thermistor(int RawADC) { | + | #include <math.h> |
− | + | ||
− | + | int sensorPin = A5; // Hier wird der Eingangs-Pin deklariert | |
− | + | ||
− | + | // Diese Funktion übersetzt den aufgenommenen analogen Messwert | |
− | + | // in die entsprechende Temperatur in °C und gibt diesen aus | |
− | + | double Thermistor(int RawADC) | |
+ | { | ||
+ | double Temp; | ||
+ | Temp = log(10000.0 * ((1024.0 / RawADC - 1))); | ||
+ | Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp ); | ||
+ | Temp = Temp - 273.15; // Konvertierung von Kelvin in Celsius | ||
+ | return Temp; | ||
} | } | ||
− | void setup() { | + | // Serielle Ausgabe in 9600 Baud |
− | + | void setup() | |
+ | { | ||
+ | Serial.begin(9600); | ||
} | } | ||
− | void loop() { | + | // Das Programm misst den aktuellen Spannungswert am NTC |
− | + | // und übersetzt das Ergebnis in °C für die serielle Ausgabe | |
− | + | void loop() | |
+ | { | ||
+ | int readVal = analogRead(sensorPin); | ||
+ | double temp = Thermistor(readVal); | ||
− | + | // Ausgabe auf die serielle Schnittstelle | |
− | + | Serial.print("Aktuelle Temperatur ist:"); | |
+ | Serial.print(temp); | ||
+ | Serial.print(char(186)); //Ausgabe <°> Symbol | ||
+ | Serial.println("C"); | ||
+ | Serial.println("---------------------------------------"); | ||
− | + | delay(500); | |
} | } | ||
+ | |||
+ | |||
+ | |||
</pre> | </pre> |
Version vom 7. April 2016, 09:20 Uhr
Inhaltsverzeichnis
Bild
Technische Daten / Kurzbeschreibung
Temperaturmessbereich: -55°C / +125°C
Dieses Modul beinhaltet einen NTC Thermistor—dieser hat bei höherer Temperatur einen immer weniger werdenden Widerstandswert.
Diese Änderung des Widerstands lässt sich mathematisch annähern und in einen linearen Verlauf umrechnen und den Temperaturkoeffizienten (Abhängigkeit von Widerstandsänderung zur Temperaturänderung) bestimmen. Mittels diesen lässt sich somit dann immer die aktuelle Temperatur errechnen, wenn man den aktuellen Widerstand kennt.
Dieser Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, wo sich eine bekannte Spannung über einen bekannten und einen unbekannten (veränderlichen) Widerstand aufteilt. Mittels dieser gemessenen Spannung lässt sich dann der Widerstand berechnen - die genaue Berechnung ist in den unten stehenden Codebeispielen enthalten.
Pin-Belegung
Codebeispiel Arduino
Das Programm misst den aktuellen Spannungswert am NTC, berechnet die Temperatur und übersetzt das Ergebnis in °C für die serielle Ausgabe
#include <math.h> int sensorPin = A5; // Hier wird der Eingangs-Pin deklariert // Diese Funktion übersetzt den aufgenommenen analogen Messwert // in die entsprechende Temperatur in °C und gibt diesen aus double Thermistor(int RawADC) { double Temp; Temp = log(10000.0 * ((1024.0 / RawADC - 1))); Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp ); Temp = Temp - 273.15; // Konvertierung von Kelvin in Celsius return Temp; } // Serielle Ausgabe in 9600 Baud void setup() { Serial.begin(9600); } // Das Programm misst den aktuellen Spannungswert am NTC // und übersetzt das Ergebnis in °C für die serielle Ausgabe void loop() { int readVal = analogRead(sensorPin); double temp = Thermistor(readVal); // Ausgabe auf die serielle Schnittstelle Serial.print("Aktuelle Temperatur ist:"); Serial.print(temp); Serial.print(char(186)); //Ausgabe <°> Symbol Serial.println("C"); Serial.println("---------------------------------------"); delay(500); }