In diesem Beitrag zeige ich dir, wie du das IR Thermometer vom Typ MLX90614 am Arduino UNO betreibst.
Bezug
Das Infrarot Thermometer Sensor Modul habe ich über ebay.de für knapp 3,6 € inkl. Versandkosten* erstanden. Das Modul findest du alternativ auch auf amazon.de doch dort für mehr als ein Vielfaches des Preises.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Technische Daten des Sensors MLX90614
- Betriebsspannung 3V bis 5V
- Messbereich
- Umgebungstemperatur -40 °C bis +125 °C*
- Objekttemperatur -70 °C bis 380 °C*
- Auflösung 0,02 °C
* beste Erkennung / Messung zwischen 0 °C und 50 °C
Aufbau & Schaltung
Das Infrarot Thermometer verfügt über 4 Pins, welche mit VIN, GND, SCL und SDA beschriftet sind. Somit wird das Modul wie folgt am Arduino UNO angeschlossen:
IR Thermometer MLX90614 | Arduino UNO |
---|---|
VIN | 5V |
GND | GND |
SCL | analoger Pin A5 |
SDA | analoger Pin A4 |
Arduino UNO SCL & SDA Pins
Solltest du das Modul an einen Arduino Leonardo anschließen wollen so kannst du über die gesondert abgeführten Pins zurückgreifen.
Quellcode – einfaches auslesen des IR Thermometer MLX90614 am Arduino
Der Sensor wird einfach über SCL & SDA am Mikrocontroller angeschlossen und genauso einfach wird dieser auch programmiert. Es wird lediglich eine passende Bibliothek benötigt. Ich verwende die Bibliothek von Adafruit, diese kannst du dir über den Bibliotheksverwalter installieren.
Wie bei den Bibliotheken von Adafruit üblich, liegt auch dieser ein Beispiel bei, wie man diese verwendet.
Beim nachfolgenden Quellcode habe ich mich vom Beispiel der Adafruit Bibliothek “inspirieren lassen” 🙂 .
#include <Wire.h> //Bibliothek zum betrieb des IR Thermometers MLX90614 #include <Adafruit_MLX90614.h> //Instanz eines Objektes erzeugen Adafruit_MLX90614 mlx = Adafruit_MLX90614(); void setup() { //beginn der seriellen Kommunikation mit 9600 baud Serial.begin(9600); //beginn der Kommunikation mit dem IR Thermometer mlx.begin(); } void loop() { //Ausgeben der Umgebungstemperatur in Grad Celsius Serial.print("Umgebungstemperatur = "); Serial.print(mlx.readAmbientTempC()); Serial.print("°C"); Serial.print("\t\t"); //Ausgeben der Tmeperatur eines Objektes in Grad Celsius Serial.print("Temperatur des Objektes = "); Serial.print(mlx.readObjectTempC()); Serial.println("°C"); delay(750); //eine kleine Pause von 750ms }
Video
Was man im Video sehr gut sehen kann, dass die Messwerte je nach Abstand doch sehr weit auseinander gehen. Ich habe hier einmal zwei extreme gewählt, einmal einen Eiswürfel und eine Kerze.