Arduino Nano - MAX6675 Thermoelement-Modul

Die meisten Temperatursensoren, die wir in anderen Tutorials behandeln – die DHTxx-Familie, DS18B20, LM35 – sind bei etwa 125°C am Ende. Für einen Raum, einen Kühlschrank oder ein Gartenbeet reicht das völlig, aber es ist nutzlos, wenn Sie wissen möchten, was in einem Brennofen, einem Räucherofen oder im Auspuff eines kleinen Motors passiert. Für solche Hitze brauchen Sie ein völlig anderes Messelement: ein Thermoelement. Dieses Tutorial zeigt, wie Sie ein MAX6675-Thermoelement-Modul mit einem Arduino Nano verdrahten und die gemeldete Temperatur in Celsius und Fahrenheit auslesen.

Arduino Nano MAX6675-Thermoelement-Modul

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables Nano V3.0 Development Board
1×USB-A-zu-Mini-B-Kabel
1×MAX6675 Thermocouple Module
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

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 ist ein Thermoelement?

Ein Thermoelement besteht einfach aus zwei Drähten aus unterschiedlichen Metallen, die an einem Ende miteinander verschweißt sind. Diese Verbindungsstelle wird als heiße Lötstelle (Messstelle) bezeichnet, und sobald sie erwärmt wird, erzeugt sie selbst eine kleine Spannung – ein Effekt, der als Seebeck-Effekt bekannt ist. Je heißer die Verbindungsstelle wird, desto stärker ändert sich diese Spannung, sodass die Messung der Spannung die Temperatur verrät. Da sich in der Nähe der Spitze keine empfindlichen Siliziumbauteile befinden, kann die Verbindungsstelle Temperaturen ausgesetzt werden, die einen normalen elektronischen Sensor sofort zerstören würden.

Hersteller kombinieren verschiedene Metallpaare zu unterschiedlichen Thermoelement-„Typen“, und die Typ-K-Variante (Chromel gepaart mit Alumel) ist mit Abstand diejenige, der Sie am häufigsten begegnen werden. Sie ist preiswert, robust und für etwa -328°F bis +2300°F ausgelegt, was nahezu alles abdeckt, was ein Hobbyprojekt benötigt.

Der Haken ist, dass die von einem Thermoelement erzeugte Spannung im Mikrovoltbereich liegt – viel zu klein und viel zu verrauscht, als dass der Analogeingang eines Arduino Nano sie direkt lesen könnte. Genau dafür wurde der MAX6675-Chip entwickelt.

Über das MAX6675-Thermoelement-Modul

Was Sie tatsächlich in der Hand halten, ist eine kleine Breakout-Platine mit dem MAX6675-Chip sowie ein Typ-K-Fühler, der an einer Schraubklemme auf der Platine angeschlossen ist.

Pinbelegung des MAX6675-Moduls

Pinbelegung des MAX6675-Thermoelement-Moduls
image source: diyables.io

Der MAX6675-Chip verstärkt das winzige Signal des Thermoelements, kompensiert intern den Fehler der Vergleichsstelle und gibt einen sofort verwendbaren 12-Bit-Temperaturwert aus. Der Arduino Nano liest diesen Wert über eine einfache 3-Draht-Serienschnittstelle – es fließen keine Daten zum Modul zurück, nur aus ihm heraus. Die Platine stellt fünf Pins bereit:

  • VCC: Spannungseingang, akzeptiert 3,0V bis 5,5V.
  • GND: Massebezug.
  • SCK: serieller Takt, vom Arduino Nano erzeugt.
  • CS: Chip Select; wird vom Arduino Nano auf LOW gezogen, während eine Messung erfolgt.
  • SO: serieller Datenausgang (dies ist die einzige Datenleitung des Moduls – sie sendet nur, empfängt nie).

Am gegenüberliegenden Rand der Platine befindet sich eine 2-polige Schraubklemme für den Fühler: Die rote Ader kommt an + und die blaue Ader an -. Der Fühler selbst besteht aus etwa 18 Zoll abgeschirmtem Kabel, das in einer dünnen Metallspitze endet. Obwohl der MAX6675-Chip alles von 0°C bis 1024°C digitalisieren kann, ist der mitgelieferte Fühler nur für 0-80°C ausgelegt – behalten Sie diese Grenze im Hinterkopf, wenn Sie etwas Heißeres messen möchten, denn dafür bräuchten Sie einen passenden Hochtemperaturfühler.

Zur Abrundung der technischen Daten: Das Modul arbeitet mit 3,0-5,5V, löst die Temperatur in Schritten von etwa 0,25°C auf und ist auf etwa ±3°C genau.

Verdrahtungsdiagramm

Versorgen Sie zuerst das Modul mit Strom: VCC an den 5V-Pin des Arduino Nano und GND an einen beliebigen GND-Pin. Wählen Sie dann drei beliebige freie Digitalpins für SCK, CS und SO – sie müssen weder PWM noch eine andere Sonderfunktion unterstützen, da die Bibliothek per Software mit dem Chip kommuniziert. Schließen Sie zum Schluss die rote Ader des Thermoelementfühlers an die +-Klemme des Moduls und die blaue Ader an - an.

Schaltplan Arduino Nano MAX6675-Thermoelement-Modul

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Verdrahtungstabelle MAX6675-Modul und Arduino Nano

MAX6675-Modul Arduino Nano
VCC → 5V
GND → GND
SCK → 4
CS → 3
SO → 2

Arduino Nano Code

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-max6675-thermocouple-module */ #include "max6675.h" int SCK_PIN = 4; // Clock (SCK) pin int CS_PIN = 3; // Chip Select (CS) pin int SO_PIN = 2; // Serial Out (SO) pin MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN); // create a MAX6675 object with the specified pins void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. delay(500); // give the MAX6675 chip time for its first conversion } void loop() { Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); // read temperature in Celsius Serial.print("\xC2\xB0"); // shows degree symbol Serial.print("C ~ "); Serial.print(thermocouple.readFahrenheit()); // read temperature in Fahrenheit Serial.print("\xC2\xB0"); // shows degree symbol Serial.println("F"); delay(1000); }

Schnelle Schritte

  • Verdrahten Sie das MAX6675-Modul genau wie im obigen Schaltplan gezeigt mit dem Arduino Nano.
  • Schließen Sie den Arduino Nano mit dem USB-Kabel an den PC an.
  • Öffnen Sie die Arduino IDE und wählen Sie das richtige Board und den richtigen COM-Port aus.
  • Klicken Sie auf das Symbol Libraries in der linken Seitenleiste.
  • Geben Sie "MAX6675" in das Suchfeld ein und suchen Sie nach der von Adafruit veröffentlichten Bibliothek.
  • Klicken Sie auf Install, um sie Ihrer IDE 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 Nano
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 Nano on COM15
1
  • Fügen Sie den obigen Sketch in die IDE ein.
  • Klicken Sie auf Upload, um den Code auf den Arduino Nano zu übertragen.
  • Berühren Sie mit der Fühlerspitze etwas Warmes – eine Tasse heißes Wasser eignet sich gut für einen ersten Test.
  • Öffnen Sie den Serial Monitor und beobachten Sie die eintreffenden Messwerte.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Temperature: 24.50°C ~ 76.10°F Temperature: 24.75°C ~ 76.55°F Temperature: 26.00°C ~ 78.80°F Temperature: 29.25°C ~ 84.65°F Temperature: 33.50°C ~ 92.30°F Temperature: 38.75°C ~ 101.75°F Temperature: 41.00°C ~ 105.80°F
Ln 11, Col 1
Arduino Nano on COM15
2

※ Notiz:

Wenn der Serial Monitor immer denselben Wert ausgibt, egal was Sie tun, überprüfen Sie zuerst die Verdrahtung von SCK/CS/SO – ein vertauschter Pin ist mit Abstand der häufigste Fehler bei diesem Modul.

Code-Erklärung

Binden Sie zuerst den Header der MAX6675-Bibliothek ein:

#include "max6675.h"

Als Nächstes werden drei Pinnummern für die Leitungen zu den Pins SCK, CS und SO des Moduls deklariert:

int SCK_PIN = 4; // Clock (SCK) pin int CS_PIN = 3; // Chip Select (CS) pin int SO_PIN = 2; // Serial Out (SO) pin

Diese drei Pins werden dann an den Konstruktor der Klasse MAX6675 übergeben, um ein Thermoelement-Objekt zu erzeugen:

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

In setup() muss nur die Verbindung zum Serial Monitor geöffnet werden, dazu kommt eine kurze Pause, damit der MAX6675-Chip Zeit hat, seine erste interne Wandlung abzuschließen:

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

In loop() fragt der Sketch das Thermoelement-Objekt zweimal nach einem Messwert – einmal in Celsius, einmal in Fahrenheit – und gibt beide auf dem Serial Monitor aus:

Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); Serial.print("\xC2\xB0"); Serial.print("C ~ "); Serial.print(thermocouple.readFahrenheit()); Serial.print("\xC2\xB0"); Serial.println("F");

Eine Verzögerung von einer Sekunde schließt die Schleife ab. So lässt sich das Messtempo im Serial Monitor gut verfolgen, ohne den MAX6675-Chip mit Anfragen direkt hintereinander zu überlasten.

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!