Arduino Nano - Module Thermocouple MAX6675

La plupart des capteurs de température que nous abordons dans d'autres tutoriels - la famille DHTxx, le DS18B20, le LM35 - plafonnent aux alentours de 125°C. C'est suffisant pour une pièce, un réfrigérateur ou un potager, mais cela ne sert à rien si vous devez savoir ce qui se passe à l'intérieur d'un four à céramique, d'un fumoir ou de l'échappement d'un petit moteur. Pour ce niveau de chaleur, il vous faut un élément de mesure complètement différent : un thermocouple. Ce tutoriel explique comment câbler un module thermocouple MAX6675 à un Arduino Nano et lire la température qu'il fournit, en degrés Celsius et Fahrenheit.

Module thermocouple MAX6675 Arduino Nano

Matériel Requis

1×Official Arduino Nano
1×Alternativement: DIYables Nano V3.0 Development Board
1×Câble USB A vers Mini-B
1×MAX6675 Thermocouple Module
1×Fils de connexion
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Qu'est-ce qu'un Thermocouple ?

Un thermocouple est simplement constitué de deux fils de métaux différents, soudés ensemble à une extrémité. Cette jonction est appelée la jonction chaude, et lorsqu'elle est chauffée, elle génère elle-même une petite tension - un phénomène connu sous le nom d'effet Seebeck. Plus la jonction chauffe, plus cette tension varie, de sorte que mesurer la tension vous indique la température. Comme il n'y a aucun composant en silicium fragile à proximité de la pointe, la jonction peut être portée à des températures qui détruiraient instantanément un capteur électronique ordinaire.

Les fabricants combinent différentes paires de métaux pour créer différents « types » de thermocouples, et la variante de type K (Chromel associé à l'Alumel) est de loin celle que vous rencontrerez le plus souvent. Elle est peu coûteuse, robuste et prévue pour environ -328°F à +2300°F, ce qui couvre presque tout ce dont un projet amateur aura besoin.

Le problème, c'est que la tension produite par un thermocouple se mesure en microvolts - beaucoup trop faible et beaucoup trop bruitée pour que l'entrée analogique d'un Arduino Nano puisse la lire directement. C'est précisément le rôle pour lequel la puce MAX6675 a été conçue.

À Propos du Module Thermocouple MAX6675

Ce que vous tiendrez réellement en main est une petite carte breakout équipée de la puce MAX6675, ainsi qu'une sonde de type K raccordée à un bornier à vis sur la carte.

Brochage du Module MAX6675

Brochage du module thermocouple MAX6675
image source: diyables.io

La puce MAX6675 amplifie le minuscule signal du thermocouple, compense en interne l'erreur de jonction froide et fournit une valeur de température sur 12 bits prête à l'emploi. L'Arduino Nano lit cette valeur via une simple interface série à 3 fils - aucune donnée ne retourne vers le module, les données ne font qu'en sortir. La carte expose cinq broches :

  • VCC : entrée d'alimentation, accepte de 3,0V à 5,5V.
  • GND : référence de masse.
  • SCK : horloge série, pilotée par l'Arduino Nano.
  • CS : sélection de puce ; mise à LOW par l'Arduino Nano pendant la prise d'une mesure.
  • SO : sortie de données série (c'est la seule ligne de données du module - elle ne fait qu'envoyer, elle ne reçoit jamais).

Sur le bord opposé de la carte se trouve un bornier à vis à 2 broches pour la sonde : le fil rouge va sur + et le fil bleu va sur -. La sonde elle-même est constituée d'environ 18 pouces de câble blindé se terminant par une fine pointe métallique, et bien que la puce MAX6675 puisse numériser n'importe quelle valeur de 0°C jusqu'à 1024°C, la sonde fournie n'est prévue que pour 0-80°C - gardez cette limite à l'esprit si vous prévoyez de mesurer quelque chose de plus chaud, car il vous faudrait alors une sonde haute température adaptée.

Pour compléter les caractéristiques : le module fonctionne sous 3,0-5,5V, mesure la température par pas d'environ 0,25°C et présente une précision d'environ ±3°C.

Schéma de Câblage

Alimentez d'abord le module : VCC sur la broche 5V de l'Arduino Nano et GND sur n'importe quelle broche GND. Choisissez ensuite trois broches numériques libres quelconques pour SCK, CS et SO - elles n'ont pas besoin de prendre en charge le PWM ni aucune fonction spéciale, car la bibliothèque communique avec la puce de manière logicielle. Enfin, connectez le fil rouge de la sonde thermocouple à la borne + du module et le fil bleu à -.

Schéma de câblage Arduino Nano module thermocouple MAX6675

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter un Arduino Nano..

Tableau de câblage du module MAX6675 et de l'Arduino Nano

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

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); }

Étapes Rapides

  • Câblez le module MAX6675 à l'Arduino Nano exactement comme indiqué sur le schéma ci-dessus.
  • Branchez l'Arduino Nano au PC avec le câble USB.
  • Ouvrez l'Arduino IDE et choisissez la bonne carte et le bon port COM.
  • Cliquez sur l'icône Libraries dans la barre latérale gauche.
  • Tapez "MAX6675" dans la zone de recherche et cherchez la bibliothèque publiée par Adafruit.
  • Cliquez sur Install pour l'ajouter à votre IDE.
  • 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
  • Collez le sketch ci-dessus dans l'IDE.
  • Appuyez sur Téléverser pour flasher l'Arduino Nano.
  • Mettez la pointe de la sonde en contact avec quelque chose de chaud - une tasse d'eau chaude convient bien pour un premier test.
  • Ouvrez le Moniteur Série et observez les mesures arriver.
∞
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

※ Note:

Si le Moniteur Série affiche toujours la même valeur quoi que vous fassiez, vérifiez d'abord le câblage SCK/CS/SO - une broche inversée est de loin l'erreur la plus courante avec ce module.

Explication du Code

Tout d'abord, incluez l'en-tête de la bibliothèque MAX6675 :

#include "max6675.h"

Ensuite, trois numéros de broches sont déclarés pour les fils reliés aux broches SCK, CS et SO du module :

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

Ces trois broches sont ensuite transmises au constructeur de la classe MAX6675 pour créer un objet thermocouple :

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

Dans setup(), seule la connexion au Moniteur Série doit être ouverte, avec une courte pause pour laisser à la puce MAX6675 le temps d'effectuer sa première conversion interne :

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

Dans loop(), le sketch demande deux fois une mesure à l'objet thermocouple - une fois en Celsius, une fois en Fahrenheit - et affiche les deux dans le Moniteur Série :

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");

Un délai d'une seconde termine la boucle, ce qui garde un rythme de lecture facile à suivre dans le Moniteur Série sans surcharger la puce MAX6675 de requêtes successives.

Vidéo

Commentaires

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !