Arduino Lektion 23: Thermosensor MAX6675

Der Thermosensor MAX6675 wird mit einer Sonde ausgeliefert welche sehrhohe Temperaturen (bis zu 1250°C)  stand halten 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.

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. 4g
  • Größe des Moduls  15mm x 25mm x 13mm

 

Schaltplan

Das Modul MAX6675 hat zwei Anschlusseiten einmal zum Microcontroller ( zbsp. 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 Modules 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.

 

Video

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

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

Download

Fazit

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

18 Gedanken zu „Arduino Lektion 23: Thermosensor MAX6675

  • November 24, 2017 um 21:57
    Permalink

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

    Antwort
    • November 27, 2017 um 19:34
      Permalink

      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

      Antwort
  • Januar 22, 2018 um 12:53
    Permalink

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

    Antwort
    • Januar 22, 2018 um 13:15
      Permalink

      Hi,

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

      Gruß,

      Stefan

      Antwort
      • Januar 22, 2018 um 14:56
        Permalink

        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)?

        Antwort
  • Pingback:Arduino Lektion 23: Thermosensor MAX6675 am Arduino Nano - Technik Blog

  • Januar 24, 2018 um 08:31
    Permalink

    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

    Antwort
  • Februar 5, 2018 um 19:45
    Permalink

    Hallo Stefan,

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

    Besten Dank+Grüße,
    marlon

    Antwort
    • Februar 5, 2018 um 19:58
      Permalink

      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

      Antwort
  • Oktober 2, 2018 um 06:16
    Permalink

    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

    Antwort
    • Oktober 2, 2018 um 10:12
      Permalink

      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

      Antwort
  • Oktober 29, 2018 um 22:03
    Permalink

    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

    Antwort
    • November 2, 2018 um 10:10
      Permalink

      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

      Antwort
  • Januar 15, 2019 um 12:29
    Permalink

    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

    Antwort
    • Januar 16, 2019 um 09:47
      Permalink

      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

      Antwort

Schreibe einen Kommentar

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