Slevový týden - Květen Office week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
30 % bodů zdarma na online výuku díky naší Slevové akci!

Infračervený teploměr MLX90614 pro Arduino

MLX90614

Z mnoha důvodů někdy nemohu využít dotykový teploměr (například DS18B20). Rozhodl jsem se tedy koupit tento pěkný bezkontaktní snímač teploty - MLX90614, který měří 2 teploty:

  • teplotu okolí a
  • teplotu objektu na dálku.

Specifikace

Jeho specifikace je následující:

Rozsah měření -40 °C ... + 125 °C pro teplotu okolí
  -70 °C ... + 380 °C pro teplotu objektu bezkontaktně
Přesnost 0.5 °C
Rozlišení 0.02 °C
Komunikace I2C

Při měření teploty dodržujte vzdálenost 1 cm!

Myslím, že je to dobrý snímač teploty pro horké předměty, jako je například vaření jídla nebo měření teploty komponent na PCB.

Zapojení senzoru

Zapojení je jednoduché, protože senzor komunikuje prostřednictvím I2C protokolu, viz tabulka, resp. obrázek. Zapojení platí pro Arduino UNO a Nano. Pro jiné desky je třeba pohlídat si SCL a SDA piny.

Arduino Senzor
5V / 3,3V VIN
GND GND
SCL A5
SDA A4

Zapojení na desce je následující:

Zapojení teplotního senzoru na desce Arduina

Kód

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Kód je jednoduchý, budete potřebovat knihovnu od Adafruit - Adafruit_MLX90614.h.

Pro komunikaci využijeme zmíněnou knihovnu a zároveň nezapomeneme na Wire.h, která umožňuje Arduinu komunikovat se senzory využívající I2C protokol:

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Inicializujeme senzor z knihovny:

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

Ve funkci setup() inicializujeme sériovou komunikaci a zároveň komunikaci se senzorem:

void setup()
{
  Serial.begin(9600);
  mlx.begin();
}

Pro získání teploty okolí použijeme příkaz:

mlx.readAmbientTempC()

Pro získání teploty objektu bezkontaktně:

mlx.readObjectTempC()

Funkce 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 ukažme si jak měření vypadá:

Ukázka měření teploty s Arduinem

Jak to funguje?

Infračervený teploměr využívá předpoklad, že každé těleso se do jisté míry chová jako černé těleso. To je těleso, které pohlcuje všechno záření všech vlnových délek, které dopadá na jeho povrch. Zároveň vyzařuje elektromagnetické záření podle Planckova zákona (závislost intenzity na vlnové délce). Černé se nazývá proto, že neodráží žádné světlo. Průběh závislosti intenzity na vlnové délce závisí na teplotě tělesa, proto např. čím více zahříváme kov, postupně se mění barva kovu z červena do bílé (vlnová délka s narůstající teplotou klesá). Ukažme si to na obrázku z Wikipedie:

Závislost intenzity záření od vlnové délky. Zdroj: wikipedia

Černé těleso je samozřejmě aproximací, téměř každý předmět nějaké to světlo odráží (dokonce i nejtmavší předmět na světě). Infračervený teploměr využívá poznatek, že každé těleso v závislosti od teploty má charakteristický průběh závislosti vyzařované energie na teplotě, a na základě toho určuje teplotu tělesa bezdotykově.


 

 

Článek pro vás napsal michal
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Autor sa venuje vzdelávaniu a má rad novinky vo vzdelávani.
Všechny články v sekci
Arduino
Aktivity (3)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!