KY-013 Temperatur-Sensor Modul: Unterschied zwischen den Versionen

Aus Linkerkit.de

Wechseln zu: Navigation, Suche
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|610x390px|none]]
+
[[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|486x498px|none]]
+
[[Datei:KY-013_VoltDivide.jpg|none|486x498px]]
  
  
Zeile 22: Zeile 22:
  
 
==Codebeispiel Arduino==
 
==Codebeispiel Arduino==
<pre class="brush:cpp">#include
+
Das Programm misst den aktuellen Spannungswert am NTC, berechnet die Temperatur und übersetzt das Ergebnis in °C für die serielle Ausgabe
  
int sensorPin = A5; // select the input pin for the potentiometer
+
<pre class="brush:cpp">
  
double Thermistor(int RawADC) {
+
#include <math.h>
  double Temp;
+
 
  Temp = log(10000.0*((1024.0/RawADC-1)));
+
int sensorPin = A5; // Hier wird der Eingangs-Pin deklariert
  Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
+
 
  Temp = Temp - 273.15;            // Convert Kelvin to Celcius
+
// Diese Funktion übersetzt den aufgenommenen analogen Messwert
  //Temp = (Temp * 9.0)/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
+
// in die entsprechende Temperatur in °C und gibt diesen aus
  return Temp;
+
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
Serial.begin(9600);
+
void setup()
 +
{
 +
Serial.begin(9600);
 
}
 
}
  
void loop() {
+
// Das Programm misst den aktuellen Spannungswert am NTC
int readVal=analogRead(sensorPin);
+
// und übersetzt das Ergebnis in °C für die serielle Ausgabe
double temp =  Thermistor(readVal);
+
void loop()
 +
{
 +
int readVal = analogRead(sensorPin);
 +
double temp =  Thermistor(readVal);
  
Serial.println(temp); // display tempature
+
// Ausgabe auf die serielle Schnittstelle
//Serial.println(readVal); // display tempature
+
Serial.print("Aktuelle Temperatur ist:");
 +
Serial.print(temp);  
 +
        Serial.print(char(186)); //Ausgabe <°> Symbol
 +
Serial.println("C");
 +
Serial.println("---------------------------------------");
  
delay(500);
+
delay(500);
 
}
 
}
 +
 +
 +
 
</pre>
 
</pre>

Version vom 7. April 2016, 09:20 Uhr

Bild

ky-013.jpg

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.

KY-013 NTC-Kurve.png

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.

KY-013 VoltDivide.jpg


Pin-Belegung

3 V G S.png

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);
}