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.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
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

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

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
É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.
- 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.
※ 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 :
Ensuite, trois numéros de broches sont déclarés pour les fils reliés aux broches SCK, CS et SO du module :
Ces trois broches sont ensuite transmises au constructeur de la classe MAX6675 pour créer un objet thermocouple :
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 :
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 :
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.