Tutorial: Arduino NTC 100K Thermistor schnell anschließen

Aktualisiert am:

Einleitung

In diesem Tutorial werden wir hohe Temperaturen mit einem NTC 100K Thermistor messen und auf dem seriellen Monitor ausgeben. arduino-cactus-ntc-100k-temperatur-sensor-verkabelung

Ein NTC Thermistor ist ein temperaturabhängiger Widerstand, der im Gegensatz zu einem DHT11 Temperatursensor bei höheren Temperaturen eingesetzt werden kann.

Temperaturbereiche

  NTC 100K Thermistor DHT11 DHT20 NTC 10K Thermistor
Minimum  -55° bis 150 °C  0° bis 50°  -40° bis 80°   -55° bis 150 °C
Toleranz  ca. ±0,4°  ±2° ±0,2°   ca. ±0,4°

Teileliste

Für dieses Tutorial benötigen wir die folgenden Teile.

Verkabelung

Die Verkabelung sollte wie folgt aussehen:

  • NTC 100K Thermistor an einen Anlog Input und an VCC vom Atmega
  • 100K Widerstand an den selben Analog Input und an GND vom Atmega (Beachtet die Reihenfolge, siehe Teilströme von Parallelwiderständen)
Arduino Cactus NTC Thermistor Verkabelung
Arduino Cactus NTC Thermistor Verkabelung


Code

Der Code ist nicht ganz leicht zu verstehen, was er prinzipiell macht, werde ich dennoch erklären. Hierzu muss uns bewusst werden, dass ein NTC Thermistor einen Temperaturabhängigen Widerstand aufweist. Bei einer bestimmten Temperatur (meisten 20° Celsius) weißt unser Thermistor einen Widerstand von 100K Ohm auf. Dies können wir uns zu nutze machen, indem wir den Widerstand vom Thermistor messen. Da die temperaturabhängige Widerstandskurve linear ist, können wir so Rückschlüsse auf die Temperatur ziehen.

Den unten stehenden Code findet ihr wieder auf Github.

[sam_zone id=”2″ codes=”true”]

//This is a simple example to read and convert the value of a 100K Ohm NTC Thermistor. 
//You can find the tutorial on http://derpade.de/
//@author Patrick Hausmann <privat@patrick-designs.de>

#include <math.h>

double convertRawToTemperature(int raw, bool celsius) 
{
 double temperatureInF;
 
 temperatureInF = log(10000.0*((1024.0/raw-1))); 
 temperatureInF = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * temperatureInF * temperatureInF ))* temperatureInF );
 temperatureInF = temperatureInF - 273.15;          
 
 if (celsius==false) temperatureInF = (temperatureInF * 9.0)/ 5.0 + 32.0; 
 
 return temperatureInF;
}

void setup() 
{
 Serial.begin(9600);
}

void loop() 
{             
  int rawTemperatur;
  double temperaturInF;
  double temperaturInC;   
           
  rawTemperatur = analogRead(A10);
        
  temperaturInF = convertRawToTemperature(rawTemperatur, false);   
  temperaturInC = convertRawToTemperature(rawTemperatur, true); 
  
  Serial.print("Temperature: ");
  Serial.print(temperaturInF);   
  Serial.print("° F; ");
  Serial.print(temperaturInC);   
  Serial.println("° C");
  delay(50);            
}

Alle Tutorials zum Cactus Rev 2

  1. Tutorial: Arduino NTC 100K Thermistor schnell anschließen
  2. Tutorial: Arduino Cactus Soil Moisture und Wasserpumpe ansteuern
  3. Tutorial: Arduino Cactus Ultraschallsensor
  4. Tutorial: Arduino Cactus Rev 2 Soil Moisture Sensor
  5. Tutorial: Cactus Rev 2 Atmega32u4 ESP8266 Websocket
  6. Tutorial: Sketch/Firmware auf ESP8266 über ein Atmega32u4 hochladen
  7. Tutorial: Cactus Rev 2 ESP8266 flashen
  8. Tutorial: Cactus Rev 2 Atmega32u4 ESP8266-03 - Getting Started

Schreibe einen Kommentar

Notify me of followup comments via e-mail. You can also subscribe without commenting.