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.

Arduino MAX6675 Thermoelement-Modul

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×MAX6675 Thermocouple Module
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

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

Pinbelegung des MAX6675-Moduls
image source: diyables.io

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.

Arduino MAX6675 Thermoelement-Modul Verdrahtungsdiagramm

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

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-max6675-thermocouple-module */ #include "max6675.h" // Define the Arduino pins connected to the MAX6675 module #define SCK_PIN 5 // Clock (SCK) pin #define CS_PIN 4 // Chip Select (CS) pin #define SO_PIN 3 // Serial Out (SO) pin MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN); // create a MAX6675 instance void setup() { Serial.begin(9600); // initialize serial communication delay(500); // give the module time to settle before the first read } void loop() { // read the temperature from the thermocouple in both units float tempC = thermocouple.readCelsius(); float tempF = thermocouple.readFahrenheit(); Serial.print("MAX6675 Temperature: "); Serial.print(tempC); Serial.print("\xC2\xB0"); // degree symbol Serial.print("C - "); Serial.print(tempF); Serial.print("\xC2\xB0"); // degree symbol Serial.println("F"); delay(1000); // MAX6675 needs ~220ms per conversion, so 1s keeps reads well-paced }

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.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Library Manager
Type:
All
Topic:
All
MAX6675 library by Adafruit
Arduino library for interfacing with MAX6675 thermocouple amplifier More info
1.1.2
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
Arduino Uno on COM15
1
  • 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.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
MAX6675 Temperature: 23.00°C - 73.40°F MAX6675 Temperature: 23.25°C - 73.85°F MAX6675 Temperature: 31.50°C - 88.70°F MAX6675 Temperature: 45.75°C - 114.35°F MAX6675 Temperature: 62.00°C - 143.60°F MAX6675 Temperature: 74.25°C - 165.65°F MAX6675 Temperature: 79.50°C - 175.10°F
Ln 11, Col 1
Arduino Uno on COM15
2

※ 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.

#include "max6675.h"

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.

#define SCK_PIN 5 // Clock (SCK) pin #define CS_PIN 4 // Chip Select (CS) pin #define SO_PIN 3 // Serial Out (SO) pin

Anschließend wird ein MAX6675-Objekt namens thermocouple erstellt, das der Bibliothek mitteilt, welcher Pin welche Aufgabe hat.

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

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.

void setup() { Serial.begin(9600); delay(500); }

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.

float tempC = thermocouple.readCelsius(); float tempF = thermocouple.readFahrenheit();

Beide Werte werden dann in einer einzigen Zeile im Serial Monitor ausgegeben, gefolgt von einer Pause von einer Sekunde, bevor sich die Schleife wiederholt.

Serial.print("MAX6675 Temperature: "); Serial.print(tempC); Serial.print("\xC2\xB0"); // degree symbol Serial.print("C - "); Serial.print(tempF); Serial.print("\xC2\xB0"); // degree symbol Serial.println("F"); delay(1000);

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.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!