KY-013 Temperatursensor (NTC)
Dieses Modul beinhaltet einen NTC Thermistor welcher Temperaturen im Bereich von -55°C bis zu +125°C messen kann.
- Arduino
- Raspberry Pi
- Micro:Bit

Dieses Modul beinhaltet einen NTC Thermistor, welcher Temperaturen im Bereich von -55°C bis zu +125°C messen kann. Dieser hat bei höherer Temperatur einen geringer werdenden Widerstandswert. Anhand der daraus resultierenden Widerstandskurve lässt sich die entsprechende Temperatur errechnen.
Die Änderung des Widerstands lässt sich mathematisch annähern, in einen linearen Verlauf umrechnen und den Temperaturkoeffizienten (Abhängigkeit von Widerstandsänderung zur Temperaturänderung) bestimmen. Mittels diesen lässt sich somit dann die aktuelle Temperatur errechnen.
Der Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei dem 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 untenstehenden Codebeispielen enthalten.
Technische Daten
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Pin-Belegung
Codebeispiel Arduino
Anschlussbelegung Arduino
Arduino | Sensor |
---|---|
- | Signal |
5 V | +V |
GND | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Arduino | KY-053 |
---|---|
5 V | VDD |
GND | GND |
Pin A5 | SCL |
Pin A4 | SDA |
Für das folgende Codebeispiel wird eine zusätzliche Bibliothek benötigt:
Adafruit_ADS1x15 von Adafruit | veröffentlicht unter der BSD License
Das unten stehende Beispiel verwendet diese besagte Library - hierzu empfehlen wir diese von Github herunterzuladen, zu entpacken und im Arduino-Library-Ordner, welcher sich standardmäßig unter (C:\Benutzer\[Benutzername]\Dokumente\Arduino\libraries) befindet, zu kopieren, damit diese für dieses Codebeispiel und folgende Projekte zur Verfügung steht. Alternativ ist diese auch im unten stehenden Download Paket ebenfalls enthalten.
Das Programm misst den aktuellen Spannungswert am NTC, berechnet die Temperatur und übersetzt das Ergebnis in °C für die serielle Ausgabe.
#include <Adafruit_ADS1X15.h>
#include <math.h>
Adafruit_ADS1115 ads;
void setup(void)
{
Serial.begin(9600);
Serial.println("Werte des analogen Eingaenges A1 des ADS1115 werden ausgelesen und ausgegeben");
Serial.println("ADC Range: +/- 4.096V 1 bit = 0.125mV");
// Dieses Modul besitzt an seinen analogen Eingängen Signalverstärker, deren
// Verstärkung per Software in den untenstehenden Bereichen konfiguriert werden
// können.
// Dieses ist in dem Fall gewünscht, wenn ein bestimmter Spannungsbereich
// als messergebnis erwartet wird und man so eine höhere Auflösung des Signals
// erhält.
// Als Standardverstärkung ist Gain=[2/3] gewählt und kann durch Auskommentieren
// auf eine andere Verstärkung umgestellt werden.
// ADS1115
// -------
// ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 0.1875mV
// ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 0.125mV
// ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 0.0625mV
// ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.03125mV
// ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.015625mV
// ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.0078125mV
ads.begin();
}
void loop(void)
{
uint16_t adc1;
float voltage1;
float gain_conversion_factor;
// Der Befehl "ads.readADC_SingleEnded(0)" ist die eigentliche Operation, die die Messung im ADC startet.
// die "0" als Variable für diese Funktion definiert den verwendeten Channel, der gemessen werden soll
// Soll z.B. der dritte Channel gemessen werden, so muss diese mit der "3" ausgetauscht werden
adc1 = ads.readADC_SingleEnded(1);
// Umrechnung der aufgezeichneten Werte in eine Spannung
voltage1 = ads.computeVolts(adc1);
// Ausgabe der Werte auf die serielle Schnittstelle
Serial.print("Analoger Eingang 1: "); Serial.print(voltage1); Serial.println(" V");
double Temp;
Temp = ((voltage1 / 3300) * 10000) / (1 - (voltage1 / 3300));
Temp = 1 / ((1/298.15) + (1 / 3950.0) * log(Temp / 10000));
Temp = Temp - 273.15;
Serial.print("Aktuelle Temperatur ist:");
Serial.print(Temp);
Serial.println("°C");
Serial.println("---------------------------------------");
delay(1000);
}
Beispielprogramm Download

Dieses Modul beinhaltet einen NTC Thermistor, welcher Temperaturen im Bereich von -55°C bis zu +125°C messen kann. Dieser hat bei höherer Temperatur einen geringer werdenden Widerstandswert. Anhand der daraus resultierenden Widerstandskurve lässt sich die entsprechende Temperatur errechnen.
Die Änderung des Widerstands lässt sich mathematisch annähern, in einen linearen Verlauf umrechnen und den Temperaturkoeffizienten (Abhängigkeit von Widerstandsänderung zur Temperaturänderung) bestimmen. Mittels diesen lässt sich somit dann die aktuelle Temperatur errechnen.
Der Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei dem 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 untenstehenden Codebeispielen enthalten.
Technische Daten
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Pin-Belegung
Codebeispiel Raspberry Pi
Anschlussbelegung Raspberry Pi
Raspberry Pi | Sensor |
---|---|
- | Signal |
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Raspberry Pi | KY-053 |
---|---|
GPIO 3 [Pin 5] | SCL |
Gpio 2 [Pin 3] | SDA |
3,3 V [Pin 1] | VDD |
GND [Pin 6] | GND |
Analoger Sensor, daher muss folgendes beachtet werden: Der Raspberry Pi besitzt, im Gegensatz zum Arduino, keine analogen Eingänge bzw. es ist kein ADC (analog digital Converter) im Chip des Raspberry Pi's integriert. Dies schränkt den Raspberry Pi ein, insofern man Sensoren einsetzen möchte, bei denen keine digitalen Werte ausgegeben werden, sondern es sich um einen kontinuierlich veränderlichen Wert handelt (Beispiel: Potentiometer -> Andere Position = Anderer Spannungswert).
Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Raspberry nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Raspberry Pi angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Raspberry Pi.
Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem besagten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter.
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechenden ADS1x15 und I2C Python-Libraries von Adafruit. Diese wurden unter dem folgenden Link https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15 unter der MIT-Lizenz veröffentlicht. Die benötigten Libraries sind nicht im unteren Download-Paket enthalten.
Bitte beachten Sie, dass Sie vor der Benutzung dieses Beispiels I2C auf Ihrem Raspberry Pi aktivieren müssen.
#!/usr/bin/python
# coding=utf-8
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
import math
# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)
# Create the ADC object using the I2C bus
ads = ADS.ADS1115(i2c)
voltageMax = 3.3
# Create single-ended input on channels
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)
while True:
temperatur = ((chan0.voltage / 3.3) * 10000) / (1 - (chan0.voltage / 3.3))
temperatur = 1 / ((1 / 298.15) + (1 / 3950) * math.log(temperatur / 10000))
temperatur = temperatur - 273.15
print("Temperatur: ",'%.2f' % temperatur,"degC")
print("---------------------------------------------------")
time.sleep(1)
Beispielprogramm Download
Zu starten mit dem Befehl:
sudo python3 KY013-mit-KY053.py

Dieses Modul beinhaltet einen NTC Thermistor, welcher Temperaturen im Bereich von -55°C bis zu +125°C messen kann. Dieser hat bei höherer Temperatur einen geringer werdenden Widerstandswert. Anhand der daraus resultierenden Widerstandskurve lässt sich die entsprechende Temperatur errechnen.
Die Änderung des Widerstands lässt sich mathematisch annähern, in einen linearen Verlauf umrechnen und den Temperaturkoeffizienten (Abhängigkeit von Widerstandsänderung zur Temperaturänderung) bestimmen. Mittels diesen lässt sich somit dann die aktuelle Temperatur errechnen.
Der Widerstand lässt sich mit Hilfe eines Spannungsteilers bestimmen, bei dem 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 untenstehenden Codebeispielen enthalten.
Technische Daten
Betriebsspannung | 3,3 V - 5 V |
Messbereich | –55°C bis +125°C |
Messgenauigkeit | ± 0,5 °C |
Bekannter Widerstand | 10 kΩ |
Spezifischer Widerstand des NTC | 3950 Ω |
Pin-Belegung
Codebeispiel Micro:Bit
Anschlussbelegung Micro:Bit:
Micro:Bit | Sensor |
---|---|
- | Signal |
3 V | +V |
GND | GND |
Sensor | KY-053 |
---|---|
Signal | A0 |
+V | - |
GND | - |
Micro:Bit | KY-053 |
---|---|
Pin 19 | SCL |
Pin 20 | SDA |
3 V | VDD |
GND | GND |
Analoger Sensor, daher muss folgendes beachtet werden: Der Micro:Bit besitzt analoge Eingänge bzw. es ist ein ADC (analog digital Converter) im Chip des Micro:Bits integriert. Diese sind jedoch nur auf 10-Bit beschränkt und bieten daher nur eine recht geringe Genauigkeit für analoge Messungen.
Um diese Problematik zu umgehen, enthält unser Sensorkit X40 mit dem KY-053 ein Modul mit einem 16-Bit ADC, welchen Sie am Micro:Bit nutzen können, um diesen um 4 analoge Eingänge zu erweitern. Dieser wird per I2C an den Micro:Bit angeschlossen, übernimmt die analoge Messung und übergibt den Wert digital an den Micro:Bit.
Somit empfehlen wir bei analogen Sensoren dieses Sets das KY-053 Modul mit dem erwähnten ADC dazwischenzuschalten. Nähere Informationen finden Sie auf der Informationsseite zum KY-053 Analog Digital Converter KY-053 Analog Digital Converter.
Das Programm nutzt zur Ansteuerung des ADS1115 ADC die entsprechende Bibliothek von uns. Diese wurde unter dem folgenden Link pxt-ads1115 unter der MIT-Lizenz veröffentlicht.
