MLX90614ESF-AAA

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