Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino Lektion 23: Thermosensor MAX6675

Posted on 18. Januar 20175. März 2024 by Stefan Draeger

Der Thermosensor MAX6675 wird mit einer Sonde ausgeliefert, welche sehr hohe Temperatur (bis zu 1250 °C)  standhalten kann (laut Hersteller).

Thermosensor MAX6675 mit Sensor und Modul.
Thermosensor MAX6675 mit Sensor und Modul.

Ich habe den Sensor über ebay.de* bestellt und ca. 5 € bezahlt. Alternativ kann man den Sensor auch über amazon.de* bestellen. Man sollte jedoch darauf achten, dass man beides bestellt, Sensor & Modul, einige bieten für den Preis nur Sensor oder nur Modul an.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

  • Technische Daten
  • Schaltplan
  •  Bibliothek
  • Quellcode
  • Video
  • Download
  • Fazit

Technische Daten

  • Temperaturbereich 0 bis ca. 1024 °C
    • die Auflösung des Temperatursensors liegt bei 0,25 °C
  • Betriebsspannung (Modul) 3 bis 5,5V
  • Umgebungstemperatur (Modul) -20 bis 85 °C
  • Gewicht ca. 4 g
  • Größe des Moduls  15 mm x 25 mm x 13 mm

Schaltplan

Das Modul MAX6675 hat zwei Anschlussseiten, einmal zum Mikrocontroller (Bsp. Arduino) und einmal zum Sensor (+ und -).

Modul MAX6675
Modul MAX6675
Modul MAX6675Arduino UNO
 GND (Ground)GND
VCC5V
SCK (Serial Clock) 10
CS (Chip Select) 9
SO (Serial Output) 8
Modul MAX6675Thermosensor
 + rot
 –blau

Bibliothek

Eine Bibliothek für die Ansteuerung des Moduls ist auf GitHub unter folgendem Link https://github.com/adafruit/MAX6675-library zu finden.

Wie man eine Bibliothek in die Arduino IDE einbindet, habe ich im Tutorial „Arduino IDE, Einbinden einer Bibliothek“ ausführlich beschrieben und möchte daher hier nicht weiter darauf eingehen.

Quellcode

Nachdem die benötigte Bibliothek in die Arduino IDE eingebunden wurde, ist der Rest ein einfaches, da hier das Objekt MAX6675, welches uns die Bibliothek zur Verfügung stellt, genutzt wird.

#include "max6675.h" //Die MAX6675 Bibliothek

int max6675SO = 8; // Serial Output am PIN 8
int max6675CS = 9; // Chip Select am PIN 9
int max6675CLK = 10; // Serial Clock am PIN 10

// Initialisierung der MAX6675 Bibliothek mit 
// den Werten der PINs
MAX6675 ktc(max6675CLK, max6675CS, max6675SO); 

  
void setup() {
  Serial.begin(9600); // Begin der Seriellen Kommunikation mit 9600 Baud
  delay(500); // eine kleine Pause damit der Sensor sich kalibriert 
}

void loop() {
  // Lesen des Temperaturwertes in Grad Celsius
  Serial.print(ktc.readCelsius());
  Serial.println("C"); 

  // Lesen des Temperaturwertes in Grad Fahrenheit
  Serial.print(ktc.readFahrenheit());
  Serial.println("F");

  // 500ms Pause bis zum nächsten Durchlauf
  delay(500);
}

Video

Thermosensor MAX6675
Dieses Video auf YouTube ansehen.

Da die Kerze nur eine Temperatur von ~210 °C schafft, habe ich mir mit meinem Hobo ein kleines Feuerchen gemacht und mal geschaut, ob das etwas mehr bringt.

Temperatursensor MAX6675 Test am offenem Feuer
Dieses Video auf YouTube ansehen.

Aber auch hier sind nur Temperaturen unter 600 °C erreicht worden.

Download

Thermosensor MAX6675Herunterladen

Fazit

Ein interessanter Temperatursensor, wobei ich die angegebenen 1024 °C erst einmal testen muss.

22 thoughts on “Arduino Lektion 23: Thermosensor MAX6675”

  1. Steffen sagt:
    24. November 2017 um 21:57 Uhr

    Hallo, danke super erklärt, Hast du auch noch eine Lösung wenn ich 2 Temperatursensore auswerten möchte?

    Antworten
    1. Stefan Draeger sagt:
      27. November 2017 um 19:34 Uhr

      Hi,

      das wird dann über einen weiteren SPI gelöst. Hier kommt es auf das Board drauf an welches du verwendest.
      Schaue dochmal nach SPI Master / Slave da wirst du fündig.

      Gruß,

      Stefan

      Antworten
  2. Andreas sagt:
    22. Januar 2018 um 12:53 Uhr

    Hallo,
    Mein Sohn möchte den temparatusensort an einen Arduino Nano ankoppeln. Ist die Vorgehensweise dieselbe? Vielen Dank im Voraus

    Antworten
    1. Stefan Draeger sagt:
      22. Januar 2018 um 13:15 Uhr

      Hi,

      der Arduino Nano hat andere PINs für SCK (D13), CS (D10) und SO (D12).

      Gruß,

      Stefan

      Antworten
      1. Andreas sagt:
        22. Januar 2018 um 14:56 Uhr

        Vielen Dank für die Info. Verstehe nicht viel davon, aber das Script ist das gleiche wie oben beschrieben (ausser natürlich die Belegung der PINs)?

        Antworten
        1. Stefan Draeger sagt:
          22. Januar 2018 um 16:37 Uhr

          Hi,

          ich werde heute Abend mal kurz das ganze mit einem Arduino Nano aufbauen und prüfen. Mein Ergebnis wird dem Tutorial angehängt.

          Gruß,

          Stefan

          Antworten
        2. Stefan Draeger sagt:
          22. Januar 2018 um 20:50 Uhr

          Hallo,

          wie erwähnt habe ich nun unter https://draeger-it.blog/arduino-lektion-23-thermosensor-max6675-am-arduino-nano/ ein kleines Tutorial abgelegt wie der Thermosensor MAX6675 an den Arduino Nano angeschlossen wird.

          Gruß,

          Stefan

          Antworten
  3. Andreas sagt:
    24. Januar 2018 um 08:31 Uhr

    Ich danke Dir für die Veröffentlichung des Tutorials. Haben das Script so übernommen, aber anscheinend findet der Nano den Thermosensor nicht in der Bbliothek 🙁 Wo liegt da der Hund begraben? Vielen Dank im Voraus für die Antwort. MfG

    Antworten
    1. Stefan Draeger sagt:
      24. Januar 2018 um 08:42 Uhr

      Hi,

      hast du die benötigte Bibliothek auch in die Arduino Die eingebunden?

      https://github.com/adafruit/MAX6675-library

      Hast du eine Fehlermeldung von der Arduino IDE erhalten? Wenn Ja bitte sende mir diese.

      Gruß,

      Stefan

      Antworten
  4. Marlon sagt:
    5. Februar 2018 um 19:45 Uhr

    Hallo Stefan,

    wie viele Sensoren sind maximal an einem UNO möglich?

    Besten Dank+Grüße,
    marlon

    Antworten
    1. Stefan Draeger sagt:
      5. Februar 2018 um 19:58 Uhr

      Hi,

      es kommt darauf an wie diese Sensoren angeschlossen werden. Der UNO hat 6 Analoge und 13 digitale Pins. Wobei von den digitalen 6 PWM Pins sind. Das heißt wenn du über SPI arbeitest kannst du 6 Sensoren über digital ansteuern.

      Gruß,

      Stefan

      Antworten
  5. Wolf Ulrich Wessolowski sagt:
    2. Oktober 2018 um 06:16 Uhr

    Hallo,
    Ich möchte 2 Sensoren an einen UNO anschließen!
    Mir ist noch nicht klar, welche Pin’s ich am UNO mit dem zweiten Sensor belegen soll!
    Auch komm ich mit der Konfiguration im Setup nicht klar.
    Könntest Du mir eine kurze Erklärung liefern, damit ich mir die Funktionsweise auch erklären kann?

    Vielen Dank!
    Wolf Ulrich

    Antworten
    1. Stefan Draeger sagt:
      2. Oktober 2018 um 10:12 Uhr

      Hallo Wolf,
      um zwei SPI Sensoren an einem Arduino UNO zu betreiben muss du beide Sensoren über den gleichen SCK, SO Pin versorgen, jedoch muss jeweils für den CS Pin ein anderer gewählt werden.
      Hier ein kleines Schaubild https://draeger-it.blog/wp-content/uploads/2017/09/Aufbau_MasterSlaveSPI.png , dieses ist zwar mit einem RFID und SDCard Modul jedoch ist die Funktion die selbe.

      Gruß,
      Stefan Draeger

      Antworten
  6. Thomas Schmidt sagt:
    29. Oktober 2018 um 22:03 Uhr

    Hallo,
    vielen Dank für das super Tutorial.
    Eine Frage habe ich noch zum Max6675. Was muss ich machen damit mir im Falle einer Sensorunterbrechung nicht mehr „nan“ sondern der maximale Temperaturwert (1250) des Sensor angezeigt wird. Oder kann ich die Ausgabe nan auch irgendwie in einer if-Abfrage verwenden?
    Vielen Dank für die Unterstützung.

    Gruß,
    Thomas

    Antworten
    1. Stefan Draeger sagt:
      2. November 2018 um 10:10 Uhr

      Hallo Thomas,

      für diesen Fall empfehle ich dir die Funktion isNan(<>). Dieser Funktion übergibst du den Wert aus dem Sensor und als Rückgabewert gibt es ein „true“ wenn der Wert KEINE Zahl ist und ein „false“ wenn es eine Zahl ist.

      Mehr Informationen zu dieser Funktion findest du in der Arduino Reference https://www.arduino.cc/en/Reference/MathHeader

      Gruß,

      Stefan Draeger

      Antworten
  7. Niklas sagt:
    15. Januar 2019 um 12:29 Uhr

    Hallo Stefan,
    Ich habe zwei Sensoren auf die von dir oben beschriebene Art angeschlossen. mir ist nur nicht ganz klar wie ich den Code ändern muss damit ich beide Sensoren auslesen kann. Ich denke ich muss zuerst den zweiten CS Pin definieren. Aber wie mache ich das? Und woher weiß das Programm ob mit „ktc.readCelsius()“ dann Sensor 1 oder Sensor 2 gemeint ist? Danke für deine Hilfe!!

    Lieben Gruß,
    Niklas

    Antworten
    1. Stefan Draeger sagt:
      16. Januar 2019 um 09:47 Uhr

      Hallo Niklas,

      du musst dann bei den Sensoren jeweils den CS (ChipSelect) auf je einen digitalen Pin setzten. Und zu jedem Sensor jeweils ein neues „SensorObjekt“ vom Typ
      „MAX6675 ktc“ erzeugen, zbsp.

      int SO = 8; // Serial Output am PIN 8
      int CLK = 10; // Serial Clock am PIN 10

      int CS1 = 9; // Chip Select des 1. Sensors am PIN 9
      int CS2 = 6; // Chip Select des 2. Sensors am PIN 6

      MAX6675 ktc1(CLK, CS1, SO);
      MAX6675 ktc2(CLK, CS2, SO);

      Serial.print(ktc1.readCelsius());
      Serial.print(ktc2.readCelsius());

      Ich denke damit solltest du ersteinmal weiterkommen.

      Gruß,

      Stefan Draeger

      Antworten
  8. Achim sagt:
    27. Februar 2019 um 21:05 Uhr

    Hallo Stefan,
    danke das hat mir sehr geholfen.

    Prima!
    Achim

    Antworten
  9. Klaus Moll sagt:
    20. Februar 2020 um 13:47 Uhr

    Guten Tag, vielleicht liest hier ja noch jemand.
    Ich habe mit mehreren Sensoren und Fühler getestet, und bekomme immer eine schwankende Temperatur. Die Sprünge betragen +- 0,25 bis 0,5 K. Fehler bei Installation oder Sketch sind ja praktisch unmöglich.

    Antworten
    1. Stefan Draeger sagt:
      20. Februar 2020 um 19:33 Uhr

      Hi Klaus,

      vielen Dank für dein Kommentar.

      Womit misst du denn die Abweichungen? Die Sensoren haben ja generell nicht so die gute Toleranz.

      Gruß,

      Stefan Draeger

      Antworten
  10. Denis Löffler sagt:
    3. Dezember 2020 um 20:36 Uhr

    Hallo Stefan,

    ich habe hier die Abfrage eines Max6675 mit Ausgabe des Temperaturwertes in einer Systemvariable (D74):

    if (iomodus_max1 ==1)

    {if (millis() > next_Time[74])
    {next_Time[74] = next_Time[74] +5000; //MAX6675 nicht häufiger als alle 5s abfragen

    MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
    thermo_C = thermocouple.readCelsius() -2.5 ; // Sensor Lesen und Korrekturwert

    // Serial.print(„C = „); Serial.println(thermo_C);

    for (int m=0; m (last_value_D[74] + delta_max)) || (thermo_C < (last_value_D[74] – delta_max))
    || complete_loop))

    {befehl="GET /xy.exe?antwort=dom.GetObject('" + hm_systemvariable+"D74"+"').State("+thermo_C+")";
    set_sysvar();
    last_value_D[74] = thermo_C;
    }
    }
    }

    Nun möchte ich parallel dazu einen zweiten Sensor abfragen (inkl. Ausgabe in Systemvariable D75).
    Was muss ich einfügen, um die Abfrage des zweiten Sensors zu starten? Kannst Du die Zeile(n) evtl. gleich einfügen?

    Vielen Dank schonma im Voraus!

    Beste Grüße
    Denis

    Antworten
  11. Alex sagt:
    19. November 2021 um 11:10 Uhr

    Hallo Stefan,
    ich habe zwei MAX6675 bei Amazon bestellt. In der Lieferung sind ja bereits Thermoelemente enthalten. Ich habe diese Thermoelemente gegen andere Thermoelement (ebenfalls Typ k) ausgetauscht. Diese Thermoelemente haben eine zusammengeschweißte Spitze (reagieren also sehr schnell).

    Ich habe jedoch eine Abweichung zur Raumtemperatur von ca. 5-6°C.
    Bsp.: Raumtemperatur 23-24°C => Thermoelementtemperatur 29-30°C

    Hast du eine Idee voran es liegt und wie ich diesen Fehler beheben kann?

    Mit freundlichen Grüßen,
    Alex

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}