Arduino Mega - Module Thermocouple MAX6675

L'Arduino Mega est généralement la carte vers laquelle on se tourne quand un projet dépasse les capacités d'un Uno - elle dispose de 54 broches d'E/S numériques et de 16 entrées analogiques, elle peut donc facilement gérer la lecture d'un thermocouple en même temps qu'une série de relais, un clavier, un écran LCD et une rangée de fins de course, le tout dans le même sketch. Ce tutoriel se concentre uniquement sur la partie température de ce type de projet : câbler un module thermocouple MAX6675 au Mega et obtenir des lectures en direct dans le Moniteur Série.

Les capteurs comme le DHT11, le DS18B20 ou le LM35 sont parfaits pour la température d'une pièce, d'un réfrigérateur ou d'un potager, mais aucun d'eux ne survivra s'il est plongé dans un four à céramique, une fournaise ou la flamme d'une cuisinière à gaz. Pour ce type de travail, il vous faut un thermocouple - un capteur composé de rien de plus que deux fils métalliques joints, sans aucun silicium fragile à proximité de la chaleur.

Dans ce tutoriel, nous allons aborder :

Module thermocouple MAX6675 Arduino Mega

Matériel Requis

1×Arduino MEGA
1×Alternativement: DIYables MEGA Development Board
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×MAX6675 Thermocouple Module
1×Fils de connexion
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

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, c'est simplement deux fils de métaux différents joints ensemble à une extrémité, appelée jonction chaude. Chauffez cette jonction et elle produit une très faible tension qui augmente et diminue avec la température - une astuce simple, mais qui permet au capteur de supporter des niveaux de chaleur qui détruiraient instantanément un composant électronique normal. Il existe plusieurs types de thermocouples (J, K, E, T, et d'autres), chacun associant des métaux différents, mais le type K - composé de fils en Chromel et en Alumel - est de loin le plus courant, couvrant environ de -328°F à +2300°F. Le problème est que la tension qu'il produit n'est que de quelques millivolts, bien trop faible pour être lue directement, et c'est exactement pour cela qu'une puce dédiée comme le MAX6675 existe pour faire cette conversion à notre place.

À Propos du Module Thermocouple MAX6675

Le module MAX6675 que vous trouverez en vente est une petite carte construite autour de la puce MAX6675, vendue avec une sonde thermocouple de type K.

Brochage du Module MAX6675

Brochage du module thermocouple MAX6675
image source: diyables.io

La carte échantillonne la très faible tension de la sonde, la fait passer par un convertisseur analogique-numérique 12 bits et transmet le résultat à l'Arduino Mega via une simple interface à 3 fils. Cette puce n'a pas de ligne MOSI - le Mega ne fait que lire depuis elle, sans jamais y écrire. Le module possède cinq broches du côté Arduino :

  • VCC : broche d'alimentation, accepte de 3,0V à 5,5V.
  • GND : broche de masse.
  • SCK : horloge série, pilotée par le Mega pour faire sortir chaque lecture de la puce.
  • CS : sélection de puce, mise à l'état bas chaque fois que le Mega veut effectuer une lecture.
  • SO : sortie de données série (la ligne MISO du module), renvoie la lecture 12 bits au Mega.

Sur le bord opposé de la carte se trouve un bornier à vis à 2 broches pour la sonde thermocouple : serrez le fil rouge dans + et le fil bleu dans -. La sonde fournie mesure environ 45 cm (18 pouces), mesure de 0°C à 80°C, et c'est sa pointe métallique qui est réellement appuyée contre - ou insérée dans - ce que vous mesurez.

Caractéristiques rapides :

  • Tension de fonctionnement : 3,0V - 5,5V
  • Interface : numérique à 3 fils (SCK / CS / SO)
  • Plage numérisée : 0°C à 1024°C (sonde fournie limitée à 0-80°C)
  • Précision : ±3°C
  • Résolution : environ 0,25°C

Schéma de Câblage

Connectez la broche VCC du module à la broche 5V de l'Arduino Mega et GND à GND, puis choisissez trois broches numériques libres pour SCK, CS et SO - il n'est pas nécessaire d'utiliser les broches SPI matérielles du Mega (50/51/52), car la bibliothèque MAX6675 communique avec la puce de manière logicielle. Enfin, fixez la sonde thermocouple dans le bornier du module : fil rouge sur +, fil bleu sur -.

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

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

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

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

Code Arduino Mega

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-max6675-thermocouple-module */ #include "max6675.h" int SCK_PIN = 5; // Clock (SCK) pin int CS_PIN = 4; // Chip Select (CS) pin int SO_PIN = 3; // Serial Out (SO) pin MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN); void setup() { Serial.begin(9600); delay(500); // give the module a moment to stabilize } void loop() { Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.print("C | "); Serial.print(thermocouple.readFahrenheit()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.println("F"); delay(1000); // MAX6675 needs about 220ms between conversions, so this is plenty }

Étapes Rapides

Suivez ces étapes une par une :

  • Câblez le module MAX6675 à l'Arduino Mega en suivant le tableau et le schéma ci-dessus.
  • Connectez l'Arduino Mega à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez Arduino Mega comme carte et sélectionnez le bon port COM.
  • Cliquez sur l'icône Libraries sur le côté gauche d'Arduino IDE.
  • Recherchez "MAX6675" et choisissez la bibliothèque publiée par Adafruit.
  • Cliquez sur Install pour ajouter la bibliothèque MAX6675.
  • Search for MAX6675 library created by Adafruit and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Mega Or...
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 Mega Or... on COM15
1
  • Copiez le code ci-dessus et ouvrez-le dans Arduino IDE.
  • Cliquez sur le bouton Téléverser pour envoyer le code vers l'Arduino Mega.
  • Touchez quelque chose de chaud avec la pointe de la sonde, ou tenez-la simplement entre vos doigts.
  • Ouvrez le Moniteur Série et observez les lectures.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Mega Or...
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Mega Or...' on 'COM15')
New Line
9600 baud
Temperature: 22.00°C | 71.60°F Temperature: 22.25°C | 72.05°F Temperature: 23.50°C | 74.30°F Temperature: 26.00°C | 78.80°F Temperature: 29.75°C | 85.55°F Temperature: 33.25°C | 91.85°F
Ln 11, Col 1
Arduino Mega Or... on COM15
2

※ Note:

Si le Moniteur Série affiche une valeur qui ne change jamais, ou qui semble complètement fausse, vérifiez que SCK, CS et SO sont câblés exactement sur les broches utilisées dans le sketch, et assurez-vous que les fils rouge et bleu de la sonde sont bien serrés dans les bornes + et - du module.

Explication du Code

Le sketch commence par inclure la bibliothèque MAX6675, qui gère toute la communication bas niveau avec la puce.

#include "max6675.h"

Trois numéros de broches sont ensuite définis, correspondant aux broches du Mega que vous avez câblées aux lignes d'horloge, de sélection de puce et de sortie de données du module.

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

Un objet thermocouple est ensuite créé à partir de la classe MAX6675, en lui passant ces trois broches pour que la bibliothèque sache exactement où trouver le module.

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

setup() n'a besoin que de démarrer la connexion série et de laisser un bref instant au module pour se stabiliser avant la première lecture.

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

Dans loop(), deux fonctions de la bibliothèque font tout le travail : readCelsius() déclenche une nouvelle conversion et renvoie le résultat en Celsius, tandis que readFahrenheit() fait de même en Fahrenheit.

Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.print("C | "); Serial.print(thermocouple.readFahrenheit()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.println("F"); delay(1000);

Le délai d'une seconde à la fin empêche la boucle d'interroger le MAX6675 plus vite que la puce ne peut réellement produire de nouvelles conversions.

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 !