Arduino - MAX6675 Thermoelement-Modul
Angenommen, Sie möchten prüfen, wie heiß die Spitze eines Lötkolbens wirklich wird, das Innere eines Minibackofens beim Backen im Auge behalten oder die Rauchgastemperatur eines Holzofens protokollieren. Die Sensoren DS18B20 und der DHT-Serie, die in unseren anderen Tutorials behandelt werden, sind allerhöchstens für etwa 125°C ausgelegt - viel zu wenig für solche Aufgaben, und wer sie über ihre Grenze hinaus belastet, zerstört einfach den Chip.
Genau hier kommt ein Thermoelement ins Spiel. In diesem Tutorial verbinden Sie ein MAX6675-Thermoelement-Modul - ein günstiges, leicht erhältliches Breakout-Board, das mit einem Typ-K-Thermoelementfühler zusammenarbeitet - mit einem Arduino und lesen live Temperaturwerte im Serial Monitor aus.

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Was ein Thermoelement anders macht
Ein Thermoelement besteht aus nichts weiter als zwei Drähten aus unterschiedlichen Metallen, die an einem Ende miteinander verdrillt oder verschweißt sind. Dieses verbundene Ende - die heiße Verbindungsstelle - erzeugt bei Erwärmung eine winzige Spannung, die mit der Temperatur steigt und fällt. Da sich am heißen Ende keine empfindliche Elektronik befindet, sondern nur einfacher Metalldraht, verträgt ein Thermoelement Hitze, die einen normalen elektronischen Sensor sofort zerstören würde.
Die gebräuchlichste Variante ist das Typ-K-Thermoelement, das aus einem Paar Chromel- und Alumel-Drähten besteht. Es ist günstig, weit verbreitet und kann einen riesigen Bereich messen - etwa von -328°F bis +2300°F. Der einzige Haken: Sein Ausgangssignal beträgt nur wenige Millivolt, viel zu wenig, um es direkt auszulesen. Daher wird ein spezieller Chip benötigt, der diese winzige Spannung in einen echten Temperaturwert umwandelt. Dieser Chip ist der MAX6675.
Über das MAX6675-Modul
Was Sie tatsächlich kaufen, ist ein kleines Breakout-Board rund um den MAX6675-Chip, das zusammen mit einem Typ-K-Thermoelementfühler verkauft wird.
Pinbelegung des MAX6675-Moduls

Das Board tastet die Spannung des Fühlers ab, digitalisiert sie mit einem 12-Bit-ADC und übergibt den Messwert über eine einfache 3-Draht-Verbindung an den Arduino. Da der Arduino immer nur Daten aus dem Chip auslesen muss, gibt es keinen MOSI-Pin - nur:
- VCC: Versorgungspin, funktioniert mit 3,0V bis 5,5V.
- GND: Masse-Pin.
- SCK: Taktleitung, die vom Arduino gesteuert wird, um jeden Messwert aus dem Chip herauszuschieben.
- CS: Chip Select, wird während einer Messung auf LOW gehalten.
- SO: serieller Datenausgang - dies ist die reine Leseleitung des Moduls, die den 12-Bit-Messwert an den Arduino zurückliefert.
An der gegenüberliegenden Kante des Boards befindet sich eine kleine 2-polige Schraubklemme für den Fühler selbst: Der rote Draht kommt in den +-Anschluss, der blaue Draht in den --Anschluss.
Der mitgelieferte Fühler hat ein etwa 18 Zoll langes Kabel und ist nur für 0°C bis 80°C ausgelegt, obwohl der dahinterliegende MAX6675-Chip Messwerte von 0°C bis 1024°C digitalisieren kann. Wenn ein Projekt Temperaturen über 80°C messen muss, kombinieren Sie dasselbe Breakout-Board mit einem separat erhältlichen Typ-K-Fühler für höhere Temperaturen anstelle des mitgelieferten.
Einige weitere wissenswerte Werte:
- Betriebsspannung: 3,0V bis 5,5V
- Messbereich: 0°C bis 1024°C (mitgelieferter Fühler auf 80°C begrenzt)
- Genauigkeit: ±3°C
- Auflösung: ca. 0,25°C
Verdrahtungsdiagramm
Verbinden Sie den VCC-Pin des Moduls mit dem 5V-Pin des Arduino und GND mit GND. Wählen Sie dann drei beliebige freie digitale Pins für SCK, CS und SO. Stecken Sie zum Schluss den roten und den blauen Draht des Thermoelementfühlers in die + und - Anschlüsse der Schraubklemme des Moduls.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Verdrahtungstabelle für MAX6675-Modul und Arduino Uno
| MAX6675-Modul | Arduino Uno |
|---|---|
| VCC | → 5V |
| GND | → GND |
| SCK | → 5 |
| CS | → 4 |
| SO | → 3 |
Arduino-Code
Schnelle Schritte
- Verdrahten Sie das MAX6675-Modul gemäß der obigen Tabelle und dem Diagramm mit dem Arduino Uno.
- Klemmen Sie den roten (+) und den blauen (-) Draht des Thermoelementfühlers in die Schraubklemme des Moduls, falls noch nicht geschehen.
- Verbinden Sie den Arduino Uno über ein USB-Kabel mit Ihrem Computer.
- Öffnen Sie die Arduino IDE und wählen Sie das richtige Board und den richtigen Port aus.
- Klicken Sie auf das Symbol Libraries in der linken Seitenleiste der Arduino IDE.
- Suchen Sie nach "MAX6675" und wählen Sie die von Adafruit veröffentlichte Bibliothek.
- Klicken Sie auf die Schaltfläche Install, um sie hinzuzufügen.
- Search for MAX6675 library created by Adafruit and click the Install button.
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Klicken Sie auf die Schaltfläche Upload, um den Sketch auf den Arduino Uno zu übertragen.
- Drücken Sie die Fühlerspitze gegen etwas Warmes oder halten Sie sie in der Hand.
- Öffnen Sie den Serial Monitor und beobachten Sie die eingehenden Messwerte.
※ Notiz:
Wenn der Serial Monitor einen eingefrorenen oder offensichtlich falschen Wert anzeigt, prüfen Sie, ob SCK, CS und SO genau mit den im Sketch verwendeten Pins verbunden sind, und stellen Sie sicher, dass die + und - Drähte des Fühlers fest in der Schraubklemme sitzen und nicht nur lose darin liegen.
Code-Erklärung
Der Sketch bindet zunächst die MAX6675-Bibliothek ein, die sich um die Low-Level-Kommunikation mit dem Chip kümmert.
Direkt danach werden drei Pins für die Arduino-Seite der Verbindung definiert - Takt, Chip Select und serieller Datenausgang - passend zu den Pins, die Sie im vorherigen Abschnitt verdrahtet haben.
Anschließend wird ein MAX6675-Objekt namens thermocouple erstellt, das der Bibliothek mitteilt, welcher Pin welche Aufgabe hat.
In setup() muss nur die serielle Verbindung geöffnet werden, zusammen mit einer kurzen Verzögerung, damit sich das Modul stabilisieren kann, bevor der erste Messwert abgefragt wird.
In loop() erledigen zwei Bibliotheksfunktionen die eigentliche Arbeit: readCelsius() und readFahrenheit() lösen jeweils eine neue Wandlung auf dem Chip aus und geben das Ergebnis in der gewünschten Einheit zurück.
Beide Werte werden dann in einer einzigen Zeile im Serial Monitor ausgegeben, gefolgt von einer Pause von einer Sekunde, bevor sich die Schleife wiederholt.
Diese Pause von einer Sekunde ist deutlich länger als die etwa 220 Millisekunden, die der MAX6675 intern für eine einzelne Wandlung benötigt. So muss der Arduino nie auf einen Messwert warten, der noch nicht bereit ist.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.