Skip to main content

Návod na zprovoznění MLX90614 – Arduino

MLX90614 je bezkontaktní teplotní senzor na bázi infračerveného záření, který dokáže měřit teplotu konkrétního objektu v rozmezí -70 °C – 382,2 °C a teplotu okolí -40 °C – 125 °C, aniž by došlo k fyzickému kontaktu se sledovaným objektem. Je vybaven I2C pro přenos údajů o teplotě do arduina. V modulu je zabudován 17bitový ADC, který na výstupu zobrazuje hodnoty s rozlišením 0,5 ˚C. Tento modul teplotního čidla je vybaven regulátorem napětí 3,3, sběrnicí I2C s interními pullup rezistory pro definování výchozího stavu a kondenzátorem pro filtraci šumu. Rozhodujícím faktorem infračervených teploměrů je zorné pole a vzdálenost měřeného objektu. Tyto dva faktory přímo ovlivňují přesnost zařízení.Každý infračervený teploměr má zorné pole známé jako FOV (Field Of View), což není nic jiného než zorný úhel, v němž se zprůměrují všechny teploty, které senzor vidí.

Vlastnosti senzoru:

  • Provozní napětí: 3,6 V – 5,5 V
  • Rozsah okolní teploty: -40 °C – 125 °C
  • Teplotní rozsah objektu: -70°C – 380°C
  • Rozlišení měření: 0.02°C
  • Citlivost na ESD: 2 kV
  • Proud zdroje: 25mA
  • Rozlišení ADC: 17 bitů
  • IR senzor je integrován s optickým filtrem, DSP a nízkošumovým zesilovačem pro jemné výstupní digitální signály.
  • Jedná se o energeticky úsporný a vysoce citlivý senzor.

Zapojení senzoru.

Připojte napájecí pin Vin teplotního čidla k 5V pinu arduina a GND pin MLX90614 k GND pinu arduina.
Připojte piny SDA a SCL uvedeného IR senzoru k pinům A4 a A5 arduina.

Arduino unoMLX90614
5VVCC
GNDGND
SDAA4
SCLA5

Ještě budeme potřebovat knihovnu, která umožní ze senzorem komunikovat. Jedná se o Adafruit-MLX90614.

Čtení dat ze senzoru.

#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 senzor = Adafruit_MLX90614();

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

void loop() {
  // výpis teploty okolí a bezdotykově snímané
  Serial.println("Teplota z teplomeru: ");
  Serial.print(senzor.readAmbientTempC());
  Serial.print((char)176);
  Serial.print("C");
  Serial.println("Bezdotykova teplota: ");
  Serial.print(senzor.readObjectTempC());
  Serial.print((char)176);
  Serial.print("C");
  delay(1000);
}