Nous avons déjà eu de nombreuses occasions de mesurer une température avec une carte Arduino, en utilisant différents capteurs comme
le DS18B20, le LM35DZ,
le BMP180 ou le
DHT22. Si ces capteurs sont tout à fait appropriés pour mesurer la température ambiante (pour une station météorologique, par exemple), ils ne conviennent pas du tout pour mesurer des températures beaucoup plus élevées, comme par exemple celle qui règne à l'intérieur d'un four.
Un thermocouple, par contre, est tout à fait approprié pour cette tâche. La photographie ci-dessus montre un thermocouple de type K accompagné d'un module MAX6675: ce dispositif peut mesurer des températures frôlant les 500°C.
Un thermocouple est fabriqué au moyen de deux fils conducteurs constitués de métaux différents, qui sont soudés ensemble à une de leurs extrémités. Une faible différence de potentiel est générée lorsque cette soudure se trouve à une température différente des deux autres extrémités (c'est l'effet Seebeck, découvert il y a 200 ans).
Le
MAX6675 est un circuit intégré spécialement conçu pour transformer la faible tension issue du thermocouple en un signal numérique de 12 bits exprimant la température avec une résolution de 0,25°C.
Choix et installation d'une bibliothèque
Le gestionnaire de bibliothèque de l'IDE Arduino nous offre 3 bibliothèques conçues pour l'utilisation d'un thermocouple avec le MAX6675: la bibliothèque d'Adafruit, celle de Yurri Salimov et celle d'Evgeny Kremer. Les trois bibliothèques sont très similaires, elles offrent la possibilité d'afficher la température en degrés Celsius ou Fahrenheit. La bibliothèque de Yurri Salimov est la seule qui offre également l'affichage en Kelvin, ainsi que des méthodes conçues pour lisser la courbe ou afficher la moyenne de plusieurs mesures.
Puisqu'il fallait bien que j'en choisisse une, j'ai opté pour la bibliothèque MAX6675 d'Evgeny Kremer; son concepteur a choisi d'utiliser le bus SPI hardware et il a prévu une protection au cas où l'utilisateur tenterait d'acquérir les mesures à un rythme trop rapide (la fiche technique du MAX6675 mentionne un temps de conversion d'environ 200 ms).
Connexions
Un bornier à vis permet de brancher le thermocouple au module MAX6675: fil rouge à la borne + et fil bleu à la borne -.
5 connecteurs mâles permettent la connexion du module à la carte Arduino Uno:
- GND : une des broche GND de l'Arduino
- VCC: sortie 5 V de l'Arduino
- SCK: broche 13 de l'Arduino Uno* (horloge SPI)
- CS: broche 10 de l'Arduino (chip select, défini dans notre sketch)
- SO: broche 12 de l'Arduino Uno* (MISO SPI)
(* Les broches dédiées à la communication SPI peuvent être différentes si vous utilisez un modèle autre que le UNO.)
L'exemple "
TempOverSerial", fourni avec la bibliothèque, montre à quel point il est facile d'obtenir la température grâce à la fonction readTempC().
Voici ce qu'indiquait le moniteur série lorsque j'ai exécuté l'exemple "TempOverSerial".
J'ai ensuite allumé ma cuisinière et placé l'extrémité de la sonde à l'intérieur du four pendant environ 10 minute, en mesurant la température toutes les 10 secondes:
(Conseil important: l'Arduino et le module MAX6675 demeurent à l'extérieur du four...)
Aucun commentaire:
Enregistrer un commentaire