Arduino Mega - MAX6675-Thermoelementmodul
Der Arduino Mega ist meist das Board, zu dem man greift, wenn ein Projekt einem Uno entwachsen ist - er hat 54 digitale I/O-Pins und 16 analoge Eingänge und kann daher problemlos neben einer Thermoelementmessung auch mehrere Relais, ein Tastenfeld, ein LCD und eine Reihe von Endschaltern ansteuern, alles im selben Sketch. Dieses Tutorial konzentriert sich nur auf den Temperaturteil eines solchen Aufbaus: ein MAX6675-Thermoelementmodul an den Mega anschließen und Live-Messwerte im seriellen Monitor anzeigen.
Sensoren wie der DHT11, DS18B20 oder LM35 eignen sich hervorragend für Raumtemperatur, einen Kühlschrank oder ein Gartenbeet, aber keiner von ihnen übersteht es, in einen Brennofen, einen Schmelzofen oder die Flamme eines Gasherds gesteckt zu werden. Für solche Aufgaben brauchen Sie ein Thermoelement - einen Sensor, der aus nichts anderem als zwei miteinander verbundenen Metalldrähten besteht, ohne empfindliches Silizium in der Nähe der Hitze.
In diesem Tutorial behandeln wir:
- Das Verdrahten des MAX6675-Moduls mit dem Arduino Mega.
- Wie das Modul das Signal eines Typ-K-Thermoelements in einen brauchbaren Messwert umwandelt.
- Das Schreiben von Mega-Code, der Live-Werte in Celsius und Fahrenheit im seriellen Monitor ausgibt.

Benötigte 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 unterschiedlichen Metalldrähten, die an einem Ende miteinander verbunden sind – der sogenannten Messstelle (heiße Lötstelle). Wird diese Stelle erhitzt, erzeugt sie eine winzige Spannung, die mit der Temperatur steigt und fällt - ein einfacher Trick, der es dem Sensor aber ermöglicht, Temperaturen zu überstehen, die ein normales elektronisches Bauteil sofort zerstören würden. Es gibt mehrere Thermoelementtypen (J, K, E, T und weitere), die jeweils unterschiedliche Metalle kombinieren, aber Typ K - aus Chromel- und Alumel-Drähten - ist mit Abstand der gebräuchlichste und deckt etwa -328°F bis +2300°F ab. Der Haken: Die erzeugte Spannung beträgt nur wenige Millivolt und ist damit viel zu klein, um sie direkt zu messen. Genau deshalb gibt es einen speziellen Chip wie den MAX6675, der diese Umwandlung für uns übernimmt.
Über das MAX6675-Thermoelementmodul
Das im Handel erhältliche MAX6675-Modul ist eine kleine Breakout-Platine rund um den MAX6675-Chip, die zusammen mit einem Typ-K-Thermoelementfühler verkauft wird.
Pinbelegung des MAX6675-Moduls

Die Breakout-Platine tastet die winzige Spannung des Fühlers ab, wandelt sie mit einem 12-Bit-Analog-Digital-Wandler um und übergibt das Ergebnis über eine einfache 3-Draht-Schnittstelle an den Arduino Mega. Dieser Chip hat keine MOSI-Leitung - der Mega liest nur von ihm und schreibt nie darauf. Das Modul hat auf der Arduino-Seite fünf Pins:
- VCC: Versorgungspin, akzeptiert 3,0V bis 5,5V.
- GND: Masse-Pin.
- SCK: serieller Takt, wird vom Mega gesteuert, um jeden Messwert aus dem Chip herauszuschieben.
- CS: Chip Select, wird auf LOW gezogen, wann immer der Mega eine Messung durchführen möchte.
- SO: serieller Datenausgang (die MISO-Leitung des Moduls), überträgt den 12-Bit-Messwert zurück an den Mega.
Am gegenüberliegenden Rand der Platine befindet sich eine 2-polige Schraubklemme für den Thermoelementfühler: Klemmen Sie den roten Draht an + und den blauen Draht an -. Der mitgelieferte Fühler ist etwa 18 Zoll lang, misst von 0°C bis 80°C, und seine Metallspitze ist das Teil, das tatsächlich an das Messobjekt gedrückt - oder hineingesteckt - wird.
Kurze technische Daten:
- Betriebsspannung: 3,0V - 5,5V
- Schnittstelle: 3-Draht digital (SCK / CS / SO)
- Digitalisierter Bereich: 0°C bis 1024°C (mitgelieferter Fühler auf 0-80°C begrenzt)
- Genauigkeit: ±3°C
- Auflösung: etwa 0,25°C
Schaltplan
Verbinden Sie den VCC-Pin des Moduls mit dem 5V-Pin des Arduino Mega und GND mit GND. Wählen Sie dann drei beliebige freie Digitalpins für SCK, CS und SO - es müssen nicht die Hardware-SPI-Pins des Mega (50/51/52) sein, da die MAX6675-Bibliothek per Software mit dem Chip kommuniziert. Klemmen Sie zum Schluss den Thermoelementfühler in die Klemmleiste des Moduls: roter Draht an +, blauer Draht an -.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Verdrahtungstabelle für MAX6675-Modul und Arduino Mega
| MAX6675-Modul | Arduino Mega |
|---|---|
| VCC | → 5V |
| GND | → GND |
| SCK | → 5 |
| CS | → 4 |
| SO | → 3 |
Arduino Mega Code
Schnelle Schritte
Gehen Sie diese Schritte nacheinander durch:
- Verdrahten Sie das MAX6675-Modul gemäß der obigen Tabelle und dem Schaltplan mit dem Arduino Mega.
- Verbinden Sie den Arduino Mega über ein USB-Kabel mit Ihrem Computer.
- Öffnen Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie Arduino Mega als Board und den richtigen COM-Port.
- Klicken Sie auf das Symbol Libraries auf der linken Seite der Arduino IDE.
- Suchen Sie nach "MAX6675" und wählen Sie die von Adafruit veröffentlichte Bibliothek.
- Klicken Sie auf Install, um die MAX6675-Bibliothek 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 Code auf den Arduino Mega zu übertragen.
- Berühren Sie mit der Spitze des Fühlers etwas Warmes oder halten Sie ihn einfach zwischen Ihren Fingern.
- Öffnen Sie den seriellen Monitor und beobachten Sie die Messwerte.
※ Notiz:
Wenn der serielle Monitor einen Wert anzeigt, der sich nie ändert oder völlig falsch aussieht, prüfen Sie, ob SCK, CS und SO genau mit den im Sketch verwendeten Pins verbunden sind, und stellen Sie sicher, dass der rote und der blaue Draht des Fühlers fest in den Klemmen + und - des Moduls sitzen.
Code-Erklärung
Der Sketch bindet zunächst die MAX6675-Bibliothek ein, die die gesamte Low-Level-Kommunikation mit dem Chip übernimmt.
Als Nächstes werden drei Pinnummern definiert, passend zu den Mega-Pins, die Sie mit der Takt-, Chip-Select- und Datenausgangsleitung des Moduls verbunden haben.
Anschließend wird aus der Klasse MAX6675 ein Thermoelement-Objekt erstellt, dem diese drei Pins übergeben werden, damit die Bibliothek genau weiß, wo sie das Modul findet.
setup() muss lediglich die serielle Verbindung starten und dem Modul einen kurzen Moment zur Stabilisierung geben, bevor der erste Messwert angefordert wird.
In loop() erledigen zwei Bibliotheksfunktionen die ganze Arbeit: readCelsius() löst eine neue Umwandlung aus und liefert das Ergebnis in Celsius, während readFahrenheit() dasselbe in Fahrenheit tut.
Die Verzögerung von einer Sekunde am Ende verhindert, dass die Schleife den MAX6675 schneller abfragt, als der Chip tatsächlich neue Umwandlungen liefern kann.
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.