IR-Temperaturmodul GY-906

IR-Temperaturmodul GY-906

Das GY-906-Modul besitzt den Infrarotsensor MLX90614, welcher kontaktlose Temperaturmessungen ermöglicht. Dies geschieht über eine Thermosäule, d.h. einen thermischen Infrarot (IR)-Sensor, der das thermische Energie in elektrische Energie wandelt. Eingebaut ist auch ein rauscharmer Verstärker, 17-Bit-A/D-Wandler und ein digitaler Signalprozessor, der eine hohe Genauigkeit verspricht.

Technische Daten

Betriebsspannungsbereich: 3,3V bis 5V
Max. Stromaufnahme: 2mA
Kommunikations-Protokoll: I²C (feste Adresse: 0x5a)
Temperaturbereich der Umgebung: -40°C bis +125°C
Temperaturbereich von Objekten: -70 bis +380°C
Genauigkeit: ±0.5°C
Sichtfeld: 90°

Verwendete Bauteile

Anschlüsse

Pin Beschreibung Arduino Uno
VIN Betriebsspannung 5V oder 3,3V
GND Masse/0V GND
SCL "Serial clock" (I²C-Anschluss) A5
SDA "Serial data" (I²C-Anschluss) A4

Test mit Library "VEGA_MLX90614"

Für die Programmierung wurde die Library VEGA_MLX90614 verwendet, die eigentlich für VEGA-ARIES-Boards gedacht ist. Sie funktioniert aber scheinbar genauso gut für den Arduino.

#include "VEGA_MLX90614.h"

#define PIN_SCL A5
#define PIN_SDA A4

VEGA_MLX90614 mlx(PIN_SDA, PIN_SCL);

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

void loop ()
{
   double ambientTemp = mlx.mlx90614ReadAmbientTempC();
   Serial.print("Ambient: " + String(ambientTemp) + " °C - ");

   double targetTemp = mlx.mlx90614ReadTargetTempC();
   Serial.println("Target: " + String(targetTemp) + " °C");

   delay(1000);
}
Ausgabe auf der seriellen Konsole
Abb.: Ausgabe auf der seriellen Konsole der Arduino-IDE

Test mit Library "Adafruit_MLX90614"

Für die Programmierung wurde die Library Adafruit_MLX90614 verwendet.

#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

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

   if (!mlx.begin()) {
      Serial.println("Error connecting to MLX sensor.");
      while (true);
   };
}

void loop()
{
   double ambientTemp = mlx.readAmbientTempC();
   Serial.print("Ambient: " + String(ambientTemp) + " °C - ");

   double targetTemp = mlx.readObjectTempC();
   Serial.println("Target: " + String(targetTemp) + " °C");

   delay(1000);
}
Ausgabe auf der seriellen Konsole
Abb.: Ausgabe auf der seriellen Konsole der Arduino-IDE
zurück