Tento modul obsahuje termočlánek typu K společně s driverem MAX 6675. Uvedený termočlánek typu K umožňuje měřit teplotu v přibližném rozsahu -200 až +1300 °C. Při porovnání s jinými digitálními senzory však má tu nevýhodu, že rozlišení naměřených teplot je 0,25 °C a přesnost měření ± 1,5 °C. Driver MAX 6675 pak slouží jako převodník měřené teploty na napětí, které můžeme vyčíst pomocí připojeného Arduina. Tento modul se tedy příliš nehodí na přesné měření teplot, ale vyniká svým měřícím rozsahem.
Pro úspěšné propojení s Arduino deskou je nutné propojit 5 vodičů. Připojíme SO na pin 3, CS na pin 4, SCK na pin 5, Vcc na +5V a GND na zem. Místo zde použitých datových vodičů však můžeme zvolit jiné volné, ale je nutné tuto volbu provést i v programu pro Arduino desku.
Pro správné přeložení a nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu MAX6675, návod jak na to je uveden zde. Ukázkový kód obsahuje jako první import zmíněné knihovny MAX6675 a poté následuje nastavení čísel zvolených datových pinů. Poté vytvoříme instanci termoclanek z Arduino knihovny a v podprogramu setup nastavíme komunikaci přes sériovou linku. V nekonečné smyčce loop pak vždy nejprve načteme do proměnné teplotaC aktuální teplotu ve stupních Celsia a dále tuto informaci vytiskneme po sériové lince. Níže je také ukázka přímého vytištění teploty ve stupních Fahrenheita bez nutnosti ukládání do proměnné. Na konci programu už je pouze pauza po dobu jedné vteřiny pro přehledný výpis naměřených teplot.
// Termočlánek + driver MAX6675 // připojení knihovny #include <max6675.h> // nastavení propojovacích pinů int pinSO = 3; int pinCS = 4; int pinSCK = 5; // vytvoření instance termoclanek z knihovny MAX6675 MAX6675 termoclanek(pinSCK, pinCS, pinSO); void setup() { // komunikace přes sériovou linku rychlostí 9600 baud Serial.begin(9600); } void loop() { // načtení aktuální teploty termočlánku // do proměnné teplotaC float teplotaC = termoclanek.readCelsius(); // vytištění naměřené teploty uložené v proměnné // a vytištění této teploty ve Fahrenheitech // získané přímo pomocí funkce Serial.print("Teplota je: "); Serial.print(teplotaC); Serial.print(" stupnu Celsia | "); Serial.print(termoclanek.readFahrenheit()); Serial.println(" stupnu Fahrenheita."); // pauza 1s pro přehledný výpis delay(1000); }
Po nahrání programu do Arduino desky s připojeným modulem a termočlánkem dostaneme například tento výpis:
Teplota je: 24.75 stupnu Celsia | 76.55 stupnu Fahrenheita. Teplota je: 25.75 stupnu Celsia | 78.35 stupnu Fahrenheita. Teplota je: 26.00 stupnu Celsia | 78.80 stupnu Fahrenheita. Teplota je: 26.50 stupnu Celsia | 79.70 stupnu Fahrenheita. Teplota je: 26.50 stupnu Celsia | 79.70 stupnu Fahrenheita.
Termočlánek typu K s driverem MAX6675 je poměrné jednoduše použitelný modul, který nám umožňuje měřit teplotu ve velkém rozsahu. Můžeme ho tedy použít například pro testování teplotních zón v kuchyňské troubě či naopak v ledničce a mrazničce. Díky přibližně metrovému propojovacímu kabelu mezi senzorem a modulem je také dobře zajištěna bezpečná vzdálenost a tím ochrana připojené Arduino desky.
Seznam použitých komponent:
http://dratek.cz/arduino/927-arduino-termoclanek-driver-1421253544.html
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
http://dratek.cz/arduino-kabelaz-propoje-rozsireni/1063-arduino-vodice-samec-samec-40-kusu.html