Hohe Temperaturen bis 1000°C mit dem MAX6675 und einem Thermoelement vom Typ-K mit dem Arduino messen

Thermoelemente werden schon seit langer Zeit eingesetzt um Temperaturen genau zu messen. Sie besitzen einen großen Messbereich und sind sehr robust. Problematisch bei dem Betrieb eines Thermoelements ist Kaltstellenkompensation (engl. cold junction compensation; CJC) und die Messung sehr kleiner Spannungen.

Genau diese Aufgaben übernimmt der von Maxim Integrated entwickelte IC MAX6675. Der Chip misst den Ausgang eines Thermoelements vom Typ-K und stellt diesen über SPI für beispielsweise einen Arduino UNO bereit.

Spezifikationen des MAX6675:

Versorgungsspannung3,3 bis 5 V DC
Stromaufnahmeca. 50mA
Messbereich0 bis 1024° C
(32° F bis 1875° F)
Messauflösung+/- 0.25° C
(+/- 0.45° F)
AusgangSPI-Bus
SENSOR-AnschlussK-Thermoelement

Anschlüsse des MAX6675-Moduls:

– (Minus)Minus des K-Thermoelements
+ (Plus)Plus des K-Thermoelements
GNDGround / Masse
VCC3,3 bis 5 V DC
SCKSerial Clock (Serieller Tackt)
CSChip Select (Chipauswahl)
SOSerial Output  (Serieller Ausgang)

Die MAX6675 Arduino Bibliothek installieren

Die für den MAX6675 benötigte Bibliothek lässt sich einfach über den in der Arduino-IDE  integrierten “Library-Manager” installieren. (Sketch -> Include Library -> Manage Libraries…). Dann in dem Suchfeld nach “MAC6675” suchen.

Alternativ kann die Bibliothek auch manuell von GitHub installiert werden. MAX6675-Bibliothek
Die Anleitung zur Installation von Bibliotheken ist hier hinterlegt.

Anschluss des Arduinos mit dem Thermoelement-Modul

Beispielcode zum Betrieb auf dem Aurduino und der Ausgabe im seriellen Monitor

// Beispiel Arduino MAX6675 Sketch

#include "max6675.h"

int ktcSO = 5;
int ktcCS = 6;
int ktcCLK = 7;

MAX6675 ktc(ktcCLK, ktcCS, ktcSO);

  
void setup() {
  Serial.begin(9600);
  delay(500); // Zeit für den MAX6675
}

void loop() {
  // Einfache Ausgabe auf der seriellen Schnittstelle 
  
   Serial.print("Temperatur in C = "); 
   Serial.print(ktc.readCelsius());
   Serial.print("\t Temperatur in F = ");
   Serial.println(ktc.readFahrenheit());
 
   delay(500);
}

Ausgabe im seriellen Monitor der Arduino IDE

Dokumente:

Datenblatt des MAX6675