Raspberry Pi - MAX6675 Thermoelement-Modul
Ein gewöhnlicher digitaler Temperatursensor übersteht es nicht, in einen Brennofen, an eine Lötspitze oder in den Auspuff eines laufenden Motors gehalten zu werden. Für solche Aufgaben greifen Maker stattdessen zu einem Thermoelement, kombiniert mit einem kleinen Wandlerchip namens MAX6675. Dieses Tutorial zeigt, wie man ein solches Modul an einen Raspberry Pi anschließt und es mit Python ausliest. Im Detail lernen wir:
- Was ein Thermoelement ist und warum es extreme Temperaturen übersteht.
- Wie das MAX6675-Modul die winzige Spannung des Thermoelements in einen Temperaturwert umwandelt.
- Wie man das Modul an die GPIO-Stiftleiste des Raspberry Pi anschließt.
- Wie man aus Python mit dem MAX6675 kommuniziert – da es hier keine fertige Bibliothek dafür gibt, steuern wir seine 3-Draht-Schnittstelle selbst per Bit-Banging an.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Was ist ein Thermoelement?
Ein Thermoelement besteht einfach aus zwei Drähten aus unterschiedlichen Metallen, die an einem Ende miteinander verbunden sind. Diese Verbindungsstelle, die sogenannte Messstelle (heiße Lötstelle), erzeugt eine winzige Spannung, die mit der Temperatur steigt und fällt. Da es nur aus zwei Drahtstücken besteht und nichts enthält, was schmelzen oder durchbrennen könnte, kann ein Thermoelement an Stellen eingesetzt werden, an denen ein normaler Sensor niemals überleben würde. Die gängigste Ausführung ist der Typ-K-Fühler (Chromel- und Alumel-Drähte), ausgelegt für etwa -328°F bis +2300°F.
Über das MAX6675-Thermoelement-Modul
Die winzige Spannung, die ein Thermoelement erzeugt, ist viel zu klein und zu verrauscht, um direkt von einem Mikrocontroller gelesen zu werden – das ist die Aufgabe des MAX6675. Das Modul kombiniert den MAX6675-Chip mit einer Schraubklemme für den Fühler: eine kleine Breakout-Platine mit dem Chip, einigen Hilfsbauteilen und einer 2-poligen Klemmleiste, dazu ein etwa 18 Zoll langer Typ-K-Fühler, der daran angeschlossen ist (rote Leitung an die „+“-Klemme, blaue Leitung an die „-“-Klemme). Der Fühler selbst ist nur für 0-80°C ausgelegt, obwohl das Modul Messwerte über einen viel größeren Bereich digitalisieren kann. Behalten Sie diese Grenze also im Hinterkopf, wenn Sie entscheiden, wo Sie ihn anbringen.

Wichtige Daten:
- Betriebsspannung: 3,0V bis 5,5V
- Messbereich: 0°C bis 1024°C (der mitgelieferte Fühler selbst ist nur bis 80°C ausgelegt)
- Genauigkeit: ±3°C
- Auflösung: etwa 0,25°C
Das Modul stellt 5 Pins bereit:
- VCC-Pin: Spannungsversorgung, 3,0V bis 5,5V.
- GND-Pin: Masse.
- SCK-Pin: serieller Takt, wird vom Raspberry Pi gesteuert.
- CS-Pin: Chip-Select, wird auf LOW gezogen, um dem Modul zu signalisieren, dass es einen Messwert senden soll.
- SO-Pin: serieller Datenausgang – dies ist die einzige Datenleitung des Chips. Es gibt keinen Dateneingangs-Pin, da am MAX6675 nichts konfiguriert werden muss.
Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

| MAX6675-Pin | Raspberry Pi-Pin |
|---|---|
| VCC | 3,3V (Pin 1) |
| GND | GND (Pin 6) |
| SCK | GPIO25 (Pin 22) |
| CS | GPIO8 (Pin 24) |
| SO | GPIO7 (Pin 26) |
※ Notiz:
Schließen Sie VCC an den 3,3V-Pin des Raspberry Pi an, nicht an den 5V-Pin. Die GPIOs des Raspberry Pi vertragen keine 5V, und der MAX6675 arbeitet problemlos mit 3,3V – es gibt also keinen Grund, ein Risiko einzugehen.
Raspberry Pi Code
Schnelle Schritte
- Stellen Sie sicher, dass Raspbian oder ein anderes mit dem Raspberry Pi kompatibles Betriebssystem auf Ihrem Pi installiert ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie Bibliotheken installieren müssen.
- Wenn Sie den Raspberry Pi zum ersten Mal verwenden, lesen Sie wie man den Raspberry Pi einrichtet
- Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, entweder mit dem integrierten SSH-Client unter Linux und macOS oder mit PuTTY unter Windows. Siehe wie Sie Ihren PC über SSH mit dem Raspberry Pi verbinden.
- Stellen Sie sicher, dass die Bibliothek RPi.GPIO installiert ist. Falls nicht, installieren Sie sie mit folgendem Befehl:
Für den MAX6675 selbst muss keine separate Treiberbibliothek installiert werden, da die Schnittstelle des Chips einfach genug ist, um sie direkt über RPi.GPIO anzusteuern – kein SPI-Overlay und kein Drittanbieterpaket erforderlich.
- Erstellen Sie eine Python-Skriptdatei max6675_thermocouple.py und fügen Sie den folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal eingeben:
- Lassen Sie die Fühlerspitze einige Sekunden an der offenen Luft liegen und tauchen Sie sie dann in eine Tasse mit heißem Wasser.
- Beobachten Sie, wie die Messwerte im Terminal ansteigen.
- Ziehen Sie den Fühler von der Klemmleiste ab und führen Sie das Skript erneut aus – Sie sollten nun statt eines Messwerts die Fehlermeldung sehen:
Das Skript läuft in einer Endlosschleife, bis Sie im Terminal Ctrl + C drücken.
Code-Erklärung
Für den MAX6675 gibt es hier keine Bibliothek, die man aufrufen könnte, da seine gesamte Schnittstelle nur ein getaktetes Schieberegister ist. Das Skript kommuniziert daher direkt über GPIO mit ihm:
- SCK_PIN, CS_PIN und SO_PIN werden mit GPIO.setup() eingerichtet – die ersten beiden als Ausgänge, da der Raspberry Pi sie steuert, und SO_PIN als Eingang, da das Modul nur über diesen Pin antwortet.
- read_celsius() zieht CS_PIN auf LOW, um das Modul zu aktivieren, und schaltet dann SCK_PIN 16-mal um. Bei jedem Impuls liest es SO_PIN und schiebt dieses Bit in raw_value, beginnend mit dem höchstwertigen Bit – genau so gibt der MAX6675 sein 16-Bit-Wort aus.
- Sobald alle 16 Bits eingelesen sind, wird CS_PIN wieder auf HIGH gesetzt, um das Modul freizugeben.
- Bit D2 dieses Wortes (geprüft mit raw_value & 0x4) ist ein Fehler-Flag. Ist es gesetzt, ist der Fühler nicht angeschlossen, und die Funktion gibt None statt eines unsinnigen Messwerts zurück.
- Andernfalls enthalten die Bits D14 bis D3 den eigentlichen 12-Bit-Zählwert. Durch Rechtsverschieben von raw_value um 3 und Multiplizieren mit 0,25 wird er in Grad Celsius umgerechnet, der für die Anzeige anschließend auch in Fahrenheit umgerechnet wird.
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.