Infračervený teplomer MLX90614 pre Arduino
V minulej lekcii, Arduino a práca s tlačidlami , sme sa naučili pracovať s tlačidlom.
MLX90614
Z mnohých dôvodov niekedy nemôžem využiť dotykový teplomer (napríklad DS18B20). Rozhodol som sa teda kúpiť tento pekný bezkontaktný snímač teploty - MLX90614, ktorý meria 2 teploty:
- teplotu okolia a
- teplotu objektu na diaľku.
Špecifikácia
Jeho špecifikácia je nasledovné:
rozsah merania | -40 ° C ... + 125 ° C pre teplotu okolia |
---|---|
-70 ° C ... + 380 ° C pre teplotu objektu bezkontaktne | |
presnosť | 0.5 ° C |
rozlíšenie | 0.02 ° C |
komunikácia | Aj 2 C |
Myslím, že je to dobrý snímač teploty pre horúce predmety, ako je napríklad varenie jedla alebo meranie teploty komponentov na PCB.
Zapojenie senzora
Zapojenie je jednoduché, pretože senzor komunikuje prostredníctvom I 2 C protokolu, pozri tabuľku, resp. obrázok. Zapojenie platí pre Arduino UNO a Nano. Pre iných dosky treba postrážiť si SCL a SDA piny.
Arduino | senzor |
---|---|
5V / 3,3V | VIN |
GND | GND |
SCL | A5 |
SDA | A4 |
Kód
Kód je jednoduchý, budete potrebovať knižnicu od Adafruit - Adafruit_MLX90614.h
.
Pre komunikáciu využijeme spomínanú knižnicu a zároveň nezabudneme na
Wire.h
, ktorá umožňuje Arduino komunikovať so senzormi
využívajúce I 2 C protokol:
#include <Wire.h> #include <Adafruit_MLX90614.h>
Inicializujeme senzor z knižnice:
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
Vo funkcii setup()
inicializujeme sériovú komunikáciu a
zároveň komunikáciu so senzorom:
void setup() { Serial.begin(9600); mlx.begin(); }
Pre získanie teploty okolia použijeme príkaz:
mlx.readAmbientTempC()
Pre získanie teploty objektu bezkontaktne:
mlx.readObjectTempC()
Funkcia loop()
:
void loop() { Serial.println("Temperature from MLX90614:"); Serial.print("Ambient: "); Serial.print(mlx.readAmbientTempC()); Serial.println(" °C"); Serial.print("Contactless: "); Serial.print(mlx.readObjectTempC()); Serial.println(" °C"); Serial.println(); delay(1000); }
A ukážme si ako meranie vyzerá:
Ako to funguje?
Infračervený teplomer využíva predpoklad, že každé teleso sa do istej miery správa ako čierne teleso. To je teleso, ktoré pohlcuje všetko žiarenie všetkých vlnových dĺžok, ktoré dopadá na jeho povrch. Zároveň vyžaruje elektromagnetické žiarenie podľa Planckova zákona (závislosť intenzity na vlnovej dĺžke). Čierne sa nazýva preto, že neodráža žiadne svetlo. Priebeh závislosti intenzity na vlnovej dĺžke závisí od teploty telesa, preto napr. Čím viac zahrievame kov, postupne sa mení farba kovu z červena do bielej (vlnová dĺžka s narastajúcou teplotou klesá). Ukážme si to na obrázku z Wikipédie:
Čierne teleso je samozrejme aproximáciou, takmer každý predmet nejaké to svetlo odráža (dokonca aj najtmavší predmet na svete). Infračervený teplomer využíva poznatok, že každé teleso v závislosti od teploty má charakteristický priebeh závislosti vyžarovanej energie na teplote, a na základe toho určuje teplotu telesa bezdotykovo.
V budúcej lekcii, Arduino a práca s tlačidlami - Knižnica , si pre prácu s tlačidlom vytvoríme knižnicu, aby sa nám s tlačidlom pohodlnejšie pracovalo.