MLX90614ESF-AAA je bezkontaktní infračervené teplotní čidlo, využívající Seebeckova jevu v polovodiči. Zjednodušeně řečeno se jedná o baterii termočlánků na velmi tenkém křemíkovém substrátu. Odtud také pramení anglický název této technologie – thermopile (pile = hromada, štos).
Katalogové údaje:
Výrobce: | Melexis Microelectronic System, Belgie |
Okolní teplota čidla: | -40 až +85°C |
Teplota měřeného objektu: | -70 až 380°C |
Rozlišení: | 0,02°C |
Přesnost: | 0,5°C při pokojové teplotě |
Spektrální citlivost: | 5,5 – 14 µm |
Zorné pole: | 90° |
Napájení: | 4,5 – 5,5 V |
Výstup: | SMBus, PWM, termostat |
Pouzdro: | TO-39 |
V jediném pouzdře se kromě samotného infračerveného snímacího prvku skrývá nízkošumový zesilovač, sedmnáctibitový AD převodník, digitální signálový procesor a další podpůrné obvody. Čidlo je již z výroby nakalibrováno a není nutná jeho kalibrace před použitím.
Na druhou stranu je zapotřebí mít na paměti specifika dané metody měření:
- Termoelektrické napětí je úměrné rozdílu teplot mezi studeným a teplým koncem termočlánku, proto relativně velká absolutní chyba, ale vysoké rozlišení. Je třeba vyvarovat se velkého teplotního spádu v okolí samotného čidla.
- Naměřená teplota je průměrná teplota všech objektů v zorném poli snímače včetně pozadí. Zde je vhodné zdůraznit široký úhel záběru tohoto čidla (výrobce nabízí i varianty s menším úhlem) a tak měření teploty malého objektu z relativně velké vzdálenosti nemusí přinést očekávané výsledky.
- Díky radiačnímu způsobu měření je zapotřebí uvažovat emisivitu měřených objektů, tu je možné programově nastavit v rozsahu 0,1 – 1.
- Je třeba se vyvarovat přímého slunečnímu (nebo jinému tepelnému) záření, dopadajícího buď na měřený objekt, nebo do zorného pole snímače.
- Není možné měřit teplotu objektu skrz sklo, plexisklo a jiné průhledné materiály, které mohou být nepropustné v infračervené oblasti a ve výsledku tedy změříme jejich teplotu.
Kromě již zmíněné emisivity je možné čidlu programově nastavit i další parametry, jako je třeba jeho adresa nebo koeficienty číslicových filtrů, použitých při zpracovávání měřeného signálu (a tím nastavit dobu odezvy celého systému) a podobně.
Tyto informace jsou však nad rámec tohoto článku a případný zájemce je spolu s dalšími informacemi najde v katalogovém listu: pololu.com/file/0J170/MLX90614.pdf
Pro komunikaci s okolním světem je čidlo vybavené sběrnicí SMBus, pomocí které je možné nejen číst naměřené hodnoty, ale také nastavovat parametry a režimy činnosti daného senzoru. Senzor je možné provozovat v základním režimu, kdy veškerá komunikace probíhá po sběrnici SMBus, v režimu pulsně šířkové modulace (PWM), kdy na výstupu je signál, jehož střída je úměrná teplotě měřeného objektu, nebo v režimu termostatu, kdy výstupem je pouze dvoustavový signál.
Sběrnice SMBus je synchronní sériová sběrnice typu master/slave, která je podobná sběrnici I2C, resp. TWI, a za dodržení jistých podmínek je s ní kompatibilní. Na jednu sběrnici je možné připojit až sto čidel (po nastaveníní unikátní adresy každého čidla) a se všemi komunikovat jen po dvou vodičích. Samotná sběrnice umožňuje adresovat až 127 zařízení, ale některé adresy mají napevno přiřazen speciální význam a nelze je tedy přiřadit zařízení. Více informací o samotné sběrnici je možné najít v její specifikaci na adrese smbus.org/specs/smbus20.pdf
Slučitelnosti s I2C/TWI sběrnicí s výhodou využijeme při připojování senzoru k mikroprocesoru. Jako příklad zvolíme komunikaci s procesorem ATMega168 v populárním Arduinu, ale není problém následující příklad upravit i pro další typy procesorů. Bohužel knihovna Wire ze standardniho sw balíku Arduina je příliš úzce vázana na sběrnici I2C resp. TWI, není možné ji pro komunikaci s čidlem použít, ale díky tomu, že Arduino umožňuje přímo přistupovat k registrům periferií mikroprocesoru, není problém si potřebné funkce nadefinovat.
Více informací viz. katalogový list procesoru ATMega168
Samotný postup čtení teploty vypadá zhruba následovně:
1. Pošleme START bit
2. Pošleme adresu čidla (+ příznak zápisu)
3. Pošleme příkaz
4. Znovu pošleme START bit
5. Pošleme adresu, ze které chceme číst (+ příznak čtení)
6. Přečteme data (nižší byte)
7. Přečteme data (vyšší byte)
8. Přečteme chybové příznaky
9. Pošleme STOP bit
Senzor připojíme k Arduinu následujícím způsobem:
Pin č.1 na čidle (SCL) připojíme na analog pin 5 arduina (SCL/PC5)
Pin č.2 na čidle (SDA) připojíme na analog pin 4 arduina (SDA/PC4)
Pin č.3 na čidle (Vdd) připojíme na výstup +5V na Arduinu
Pin č.4 na čidle (Vss) připojíme na zem (GND) arduina
Pull-up rezistory (připojené mezi signály SCL, SDA a kladné napájecí napětí) nejsou při krátké vzdálenosti sběrnice (jednotky centimetrů) nezbytně nutné za předpokladu, že použijeme interní pull-up rezistory procesoru, ale kvuli stabilitě celého zapojení je doporučujeme. Hodnotu rezistoru volíme 4,7 kOhmu.
Nezapomeneme mezi piny Vdd a Vss připojit keramický kondenzátor 100nF, co nejblíže k samotnému čidlu, jak je uvedeno v katalogovém listu snímače. Připojujeme vždy při odpojeném napájení Arduina a USB kabelu, jinak riskujeme poškození jak samotného čidla, tak i Arduina!
Tímto máme čidlo připravené k pokusům a můžeme začít s laborováním. Do Arduina nahrajeme ukázkový program (sketch) a po jeho spuštění bychom měli v okně sériového terminálu (po jeho otevření) vidět výpis teploty měřeného objektu. Pokud vše funguje jak má, můžeme začít s úpravami a rozšiřováním uvedeného příkladu. Změnou adresy registru, ze kterého čteme můžeme získat další údaje, jako třeba okolní teplotu samotného snímače, surová data z jednotlivých snímačů a podobně. Obdobným způsobem jakým probíhá čtení teploty je možné i nastavovat parametry senzoru, s tím rozdílem, že neprobíhá čtení z paměti RAM, ale zápis do paměti EEPROM. Zájemce nalezne tyto informace v aplikační poznámce o SMBus komunikaci v dokumentu MLX90614_SMBus.pdf
V následující tabulce jsou uvedeny adresy nejdůležitějších registrů RAM a jejich význam:
Adresa | Význam |
0x03 | data ze senzoru okolní teploty |
0x04 | data z IČ senzoru 1 |
0x06 | linearizovaná okolní teplota |
0x07 | linearizovaná teplota měřeného objektu |
Po úspěšném zvládnutí komunikace můžeme přistoupit k vlastnímu měření teploty objektů v našem okolí.
Doporučujeme si s čidlem před nasazením do konkrétní aplikace nezávazně pohrát, zvlášť pokud nemáme s IR teploměry žádné předchozí zkušenosti, protože to, co vidí čidlo, může být diametrálně odlišné od toho, co si myslíme, že čidlo vidí.
Ing. Bedřich Himmel