Composants utilisés
- 1 Module thermocouple de type K avec amplificateur/convertisseur MAX 6675
- 1 carte Arduino UNO
- Câbles de branchement Dupont mâle / femelle (x5).
- 1 Alimentation 9V
- 1 écran 1602 I2C à 2 lignes 16 caractères
Principe de fonctionnement
Un thermocouple est simplement formé de 2 fils métalliques différents soudés ensemble. Le type K comporte une jonction entre chromel (alliage nickel + chrome) et alumel (alliage nickel + aluminium + silicium).
Une faible différence de potentiel électrique apparaît à la jonction sous l'effet de la température.
Le signal est faible, typiquement 50 microV par degré, la réponse est non linéaire, et il faut une compensation de soudure froide (on mesure un écart de température entre deux jonctions, pas une température absolue).
Malgré ces inconvénients, le thermocouple est très intéressant car il est simple d'emploi, robuste à la chaleur, il couvre une très grande plage de mesure de température avec une forte précision.
On amplifie puis on convertit la mesure analogique en signal numérique, une liaison SPI permet de transmettre facilement à un micro contrôleur (Arduino) le résultat.
Le module d'interface de conversion utilisé ici est un MAX6675, il assure l'amplification et la conversion sur 12 bits.
Caractéristiques du kit thermocouple + MAX6675
- Mesure de température jusqu' à 1024 °C.
- Résolution 0.25 °C.
- Compensation de jonction de température froide .
- Alimentation 3.0 - 5V DC.
- Note : le thermocouple K se distingue facilement des autres types, il est attiré par un fort aimant.
..
Le module Max6675, amplification, conversion numérique et mise en forme SPI. ___ Codage couleur du thermocouple. ___ Le capteur de température.
Branchements
Le thermocouple comporte deux fils avec codage couleur, à brancher sur le bornier à vis, rouge sur + (chromel) et bleu sur - (alumel).
.
Le module se branche via son port série SPI avec les 5 pins GND, VCC, SCK, CS, SO.
Module --> Arduino
- GND --> Gnd masse Arduino
- Vcc --> Vcc arduino +5V
- DO Data Output --> pin 4
- CS Chip Select --> pin 5
- CLK clock --> pin 6
..
Le kit complet de mesure de température. câble 1m résistant à la chaleur.
le SPI pour communiquer entre le module max6675 et le microcontrôleur.
Librairie MAX6675 à installer
Télécharger la librairie pour Arduino MAX6675 ici
https://github.com/ryanjmclaughlin/MAX6675-Library
décompresser le dossier Zip, le renommer MAX6675 et le placer dans le répertoire arduino/librairies de son ordinateur, puis relancer l'IDE.
On mettra au début de son code Arduino :
- Code: Tout sélectionner
#include <MAX6675.h>
Programmation
Cet exemple de programme pour Arduino affiche la température en °C (et °F) chaque seconde dans le Serial monitor de l'ordinateur.
Ouvrir le serial monitor (réglé à 9600 bauds) pourvoir les mesures s'afficher sur son écran.
- Code: Tout sélectionner
//********************************************************
// demo_thermocouple
// Exemple d'utilisation de thermocouple type K
// Avec MAX6675 pour amplifier et numériser
// tiptopboards.com 06 11 2014
//********************************************************
#include "max6675.h" //La librairie du MAX6675
int thermoDO = 4; // Data Out Port SPI sur 4-5-6
int thermoCS = 5; //Chip Select
int thermoCLK = 6; //Clock
// Déclarer les pins utilisées
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
Serial.begin(9600); //Pour afficher à l'écran du PC
Serial.println("Thermocouple et MAX6675");
delay(500); //Attendre l'initialisation du module MAX
}
void loop() {
// Boucle de mesure de la température
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
//Serial.print("F = "); // Si on veut aussi des F
//Serial.println(thermocouple.readFahrenheit());
delay(1000); //1 mesure par seconde
}
Thermomètre à thermocouple
Pour réaliser un petit projet de thermomètre, on rajoute à l'Arduino un écran LCD d'affichage 2 lignes et 16 caractères.
On rajoute simplement 4 fils pour l'écran LCD.
Module écran I2C --> Arduino
- GND --> masse GND Arduino
- Vcc --> Vcc 5V Arduino
- SDA --> pin A4
- SCL --> pin A5
Le thermomètre fonctionne avec le code suivant:
- Code: Tout sélectionner
//*******************************************************
// demo_thermo_1602
// Exemple de démo de l'écran 1602 2 lignes 16 caractères
// branchéen I2C
// Réalisation d'un thermomètre à thermocouple K
// Avec module MAX6675 pour amplifier et numériser
// tiptopboards.com 06 11 2014
//
//********************************************************
#include <Wire.h> // Librairie dans déjà l'IDE Arduino
#include <LiquidCrystal_I2C.h> //librairie à installer LCD
#include "max6675.h" //La librairie du MAX6675
// Thermocouple à brancher en SPI
int thermoDO = 4; // Data Out Port SPI sur 4-5-6
int thermoCS = 5; //Chip Select
int thermoCLK = 6; //Clock
// Déclarer les pins utilisées
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
// Ecran à brancher en I2C
LiquidCrystal_I2C lcd(0x27,16,2); // Addresse 0x27, 16 charactères, 2 lignes
void setup()
{
lcd.init(); // initialise le LCD
lcd.backlight(); //Eclairer l'écran
lcd.setCursor(0,0); //Début première ligne
lcd.print("Temperature :"); //Message texte
Serial.begin(9600);
Serial.print("Thermometre"); //Sur le Serial monitor
delay(500);
}
void loop() // boucle d'affichage, mesure de thermocouple
{
float temp=thermocouple.readCelsius(); // mesure de t
Serial.print("C = ");
Serial.println(temp); //Sortie sur le serial monitor
lcd.setCursor(3,1); //Seconde ligne LCD
lcd.print(temp); //Affiche la température
lcd.setCursor(9,1);
lcd.print("deg"); //Affiche les unités
delay(1000); // 1 Hz
}
Références
Datasheet du Max6675 "Cold-junction-compensated K-thermocouple to digital converter (°C to 1024 °C)"
http://datasheets.maximintegrated.com/en/ds/MAX6675.pdf
Télécharger la librairie MAX6675
https://github.com/ryanjmclaughlin/MAX6675-Library
Tutoriel en anglais "What is a thermocouple ?"
http://www.ladyada.net/wiki/tutorials/l ... ouple.html
MAX6675Library sur le plyground Arduino
http://playground.arduino.cc/Main/MAX6675Library