Ce tutoriel fait partie de: Contrôle d'un relais à l'aide d'Arduino
Ce groupe regroupe toutes les vidéos relatives au relais. Vous trouverez des liens vers d'autres vidéos ci-dessous.
Utilisation d'un MAX6675 pour thermocouple de type K avec relais et afficheur
Ce projet montre comment interfacer un MAX6675 pour thermocouple de type K avec un Arduino, en intégrant un relais pour le contrôle et un écran pour l'affichage des températures. Ce montage est inestimable pour diverses applications nécessitant une surveillance précise de la température et des réponses automatisées. Voici quelques idées de projets :

- Protection contre la surchauffe pour les appareils électroniques sensibles
- Incubateur à température contrôlée pour des expériences biologiques
- Système automatisé de brassage pour le café ou la bière
- Surveillance et contrôle des procédés industriels
- Surveillance environnementale dans une serre ou dans un autre environnement contrôlé
Matériel/Composants
Pour construire ce projet, vous aurez besoin des composants suivants :
- Arduino Uno (ou carte compatible)
- Module thermocouple MAX6675 de type K (dans la vidéo à 00:58)
- Module relais
- Module d'affichage LED 4 chiffres TM1637
- Fils de connexion
- Fils de connexion
Guide de câblage
Le câblage est expliqué dans la vidéo (à 05:36). Les connexions spécifiques dépendent du fait que vous utilisiez une puce à montage en surface ou un module sur circuit imprimé. Consultez la vidéo pour un schéma de câblage détaillé.

Explication du code
Le code Arduino utilise la bibliothèque MAX6675 pour lire les valeurs de température du thermocouple. Les principales parties configurables du code sont :
- Définitions des broches du thermocouple :
thermoDO,thermoCS, etthermoCLK(dans la vidéo à [03:53]). Ces broches doivent être ajustées en fonction de votre schéma de câblage. - Broche de commande du relais : la broche 10 sert à le commander (dans la vidéo à [05:36]). Modifiez-la si nécessaire.
- Configuration de l'affichage (si utilisé) : le code comprend des sections pour configurer l'affichage TM1637. Ajustez les broches CLK et DIO si nécessaire (dans la vidéo à [03:53]).
Le code comprend des fonctions pour lire la température en Celsius et en Fahrenheit. Une partie cruciale du code est l'instruction conditionnelle qui vérifie si la température dépasse un seuil (80.0°C dans cet exemple). Si c'est le cas, le relais est activé (la broche 10 passe à LOW).
// If temperature goes above 80.0C, turn the relay ON
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW);// Set pin 10 LOW
} else {
digitalWrite(10, HIGH);// Set pin 10 HIGH
}
Projet en direct/Démonstration
La vidéo montre le projet en action (dans la vidéo à 06:59). Le capteur mesure avec précision la température ambiante et la valeur mesurée augmente lorsqu'il est chauffé. La fonctionnalité du relais est également démontrée.
Chapitres
- [00:00] Introduction
- [00:39] Aperçu du capteur
- [01:40] Connexions des broches
- [02:22] Installation de la bibliothèque
- [03:53] Explication du code (configuration)
- [04:06] Explication du code (boucle)
- [05:36] Câblage
- [06:59] Démonstration en direct
Ce tutoriel fait partie de: Contrôle d'un relais à l'aide d'Arduino
- Code Arduino et vidéo pour un relais 5V à double canal
- Contrôler un relais 5V avec un Arduino pour piloter une charge en CA ou en CC, comme une ampoule ou un moteur
- TTP224 Capteur tactile 4 canaux pour commander des charges AC/DC avec relais
- Utilisation d'un module relais 5V (déclenchement bas) avec Arduino
- Utiliser un interrupteur Reed pour commander un relais et des charges AC/DC avec un Arduino
- Utilisation d'un module tactile TTP223B et d'un relais pour contrôler des charges AC/DC avec un Arduino
- Utiliser un bouton-poussoir Arduino pour commander un relais et une ampoule en courant alternatif
/*
* This is the Arduino code for MAX6675 Thermocouple K-Type with Relay and Display.
* This code has been explained in our video at https://youtu.be/cD5oOu4N_AE.
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 9, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// This example is public domain. Enjoy!
// www.ladyada.net/learn/sensors/thermocouple
#include "max6675.h"
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 3;
int gndPin = 2;
void setup() {
Serial.begin(9600);
// Use Arduino pins
pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
Serial.println("Robojax: MAX6675 test");
// Wait for MAX chip to stabilize
delay(500);
}
void loop() {
// Basic readout test, just print the current temperature
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// If temperature goes above 80.0C, turn the relay ON
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW);// Set pin 10 LOW
}else{
digitalWrite(10, HIGH);// Set pin 10 HIGH
}
delay(1000);
}
/*
* Voici le code Arduino pour le thermocouple K-Type MAX6675 avec relais et affichage. La broche de sortie 10 est connectée au relais. Lorsque la température atteint la valeur souhaitée, la broche 10 active le relais.
*
* Ce code a été expliqué dans notre vidéo à l'adresse https://youtu.be/cD5oOu4N_AE
*
* Écrit par Ahmad Nejrabi pour Robojax Video
* Date : 9 décembre 2017, à Ajax, Ontario, Canada
* Autorisation accordée pour partager ce code à condition que cette note soit conservée avec le code.
* Avertissement : ce code est "EN L'ÉTAT" et uniquement à des fins éducatives.
*
* /
*
* // Cet exemple est dans le domaine public. Profitez-en !
* // www.ladyada.net/learn/sensors/thermocouple
*/
#include "max6675.h"
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 3;
int gndPin = 2;
void setup() {
Serial.begin(9600);
// Utilisez les broches Arduino
pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(10, OUTPUT); // définir la broche 10 comme sortie
Serial.println("Robojax: MAX6675 test");
// attendre que la puce MAX se stabilise
delay(500);
}
void loop() {
// test de lecture basique, il suffit d'afficher la température actuelle
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// Si la température dépasse 80,0°C, mettez le relais en marche.
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW); // mettre la broche 10 à l'état bas
}else{
digitalWrite(10, HIGH); // mettre la broche 10 à HIGH
}
delay(1000);
}
/*
* Voici le code Arduino pour le thermocouple MAX6675 de type K avec relais et affichage. La broche de sortie 10 est connectée au relais. Lorsque la température atteint la valeur désirée, la broche 10 active le relais. La température est également affichée sur l'écran. Vous devez inclure la bibliothèque TM1637 pour faire fonctionner l'affichage. Vous pouvez télécharger le TM1637 sur http://robojax.com/learn/library. Ce code a été expliqué dans notre vidéo sur https://youtu.be/cD5oOu4N_AE.
*
* Écrit par Ahmad Nejrabi pour Robojax Video. Date : 9 décembre 2017, à Ajax, Ontario, Canada. Autorisation accordée pour partager ce code à condition que cette note soit conservée avec le code. Avertissement : Ce code est fourni "TEL QUEL" et uniquement à des fins éducatives.
*
* /
*
* // Cet exemple est dans le domaine public. Profitez-en !
* // www.ladyada.net/learn/sensors/thermocouple
*/
#include "max6675.h"
#include <Arduino.h>
#include <TM1637Display.h>
int thermoDO = 4;
int thermoCS = 5;
int thermoCLK = 6;
// Code pour l'affichage
#define CLK 2
#define DIO 3
#define TEST_DELAY 2000
TM1637Display display(CLK, DIO);
// Code pour l'affichage de fin
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
int vccPin = 3;
int gndPin = 2;
void setup() {
Serial.begin(9600);
// Utilisez les broches Arduino
pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(10, OUTPUT); // mettre la broche 10 en sortie
Serial.println("Robojax: MAX6675 test");
// attendre que la puce MAX se stabilise
delay(500);
}
void loop() {
// Test de lecture de base, il suffit d'imprimer la température actuelle.
// Code pour l'affichage
display.setBrightness(0x0f);
// Tous les segments activés
uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
display.setSegments(data);
delay(1);
int temp = (int) thermocouple.readCelsius();
display.showNumberDec(temp, true, 3, 0);
// Code pour l'affichage de fin
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// Si la température dépasse 80,0 °C, activez le relais.
if(thermocouple.readCelsius() > 80.00){
digitalWrite(10, LOW); // définir la broche 10 à LOW
}else{
digitalWrite(10, HIGH); // mettre la broche 10 à HIGH
}
delay(1000);
}
/*
* Voici le code Arduino pour le thermocouple K-Type MAX6675 avec relais et affichage. La broche de sortie 10 est connectée au relais. Lorsque la température atteint la valeur souhaitée, la broche 10 active le relais.
*
* Ce code a été expliqué dans notre vidéo à l'adresse https://youtu.be/cD5oOu4N_AE
*
* Écrit par Ahmad Shamshiri pour Robojax Video Date : 02 juin 2018, à Ajax, Ontario, Canada. Permission accordée pour partager ce code à condition que cette note soit conservée avec le code. Avertissement : Ce code est "TEL QUEL" et destiné à des fins éducatives uniquement.
*
* /
*
* // Cet exemple est dans le domaine public. Profitez-en !
* // www.ladyada.net/learn/sensors/thermocouple
*/
#include "max6675.h"
int thermoDO1 = 4;
int thermoCS1 = 5;
int thermoCLK1 = 6;
int thermoDO2 = 7;
int thermoCS2 = 8;
int thermoCLK3 = 9;
MAX6675 thermocouple1(thermoCLK1, thermoCS1, thermoDO1); // premier thermocouple
MAX6675 thermocouple2(thermoCLK2, thermoCS2, thermoDO2); // 2ème thermocouple
int vccPin1 = 3;
int gndPin1 = 2;
int relayPin1 =10;
int vccPin2 = 11;
int gndPin2 = 12;
int relayPin2 =13;
void setup() {
Serial.begin(9600);
// utiliser les broches Arduino
pinMode(vccPin1, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin1, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(relayPin1, OUTPUT); // définir la broche 10 comme sortie pour le thermocouple1
pinMode(vccPin2, OUTPUT); digitalWrite(vccPin, HIGH);
pinMode(gndPin2, OUTPUT); digitalWrite(gndPin, LOW);
pinMode(relayPin2, OUTPUT); // Définir la broche 13 comme sortie pour le thermocouple2
Serial.println("Robojax: MAX6675 test");
// attendre que la puce MAX se stabilise
delay(500);
}
void loop() {
// test de lecture de base, il suffit d'imprimer la température actuelle
// pour le thermocouple 1
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// si la température dépasse 80,0 °C, activez le relais.
if(thermocouple1.readCelsius() > 80.00){
digitalWrite(relayPin1, LOW); // mettre le relais pin1 à l'état bas
}else{
digitalWrite(relayPin1, HIGH); // définir le pin relayPin1 HAUT
}
// thermocouple1 fin
// pour thermocouple 2
Serial.print("C2 = ");
Serial.println(thermocouple2.readCelsius());
Serial.print("F2 = ");
Serial.println(thermocouple2.readFahrenheit());
// si la température dépasse 80,0 °C, activez le relais.
if(thermocouple2.readCelsius() > 80.00){
digitalWrite(relayPin2, LOW); // mettre le pin relaisPin2 à l'état bas
}else{
digitalWrite(relayPin2, HIGH); // définir pin relayPin2 HAUT
}
// thermocouple2 fin
delay(1000);
}
Ressources et références
Fichiers📁
Aucun fichier disponible.