Dieser Temperatursensor ermittelt die Wärmestrahlung eines beliebigen Gegenstands kontaktlos über infrarotes Licht. Eine Entfernung des zu messenden Objekts von ca. 3cm wird empfohlen. Der Sensor kann direkt oder mithilfe des Grove Shields an einen Arduino angeschlossen werden und kommuniziert standardmäßig über eine serielle Schnittstelle namens SMBus. Er kann ebenfalls über die serielle Schnittstelle I2C ausgelesen werden.
Der Sensor kann zum Beispiel eingesetzt werden, um ein Infrarot-Thermometer aufzubauen.
Alle weiteren Hintergrundinformationen sowie ein Beispielaufbau und alle notwendigen Programmbibliotheken sind auf dem offiziellen Wiki (bisher nur in englischer Sprache) von Seeed Studio zusammengefasst. Zusätzlich findet man über alle gängigen Suchmaschinen durch die Eingabe der genauen Komponentenbezeichnung entsprechende Projektbeispiele und Tutorials.
Die genaue Bezeichnung des Sensors, die bei der Suche von Beschreibungen und Anleitungen wichtig sein kann, lautet MLX90615.
#include "MLX90615.h" #define MLX MLX90615_DefaultAddr /* Uncomment the following line to use included I2C library Avoid (keep commented) if your I2C bus is being shared with other devices: they may be using Wire as its basis, incompatible with the included I2C library */ // #define INCLUDED_I2C #ifdef INCLUDED_I2C #define SDA_PIN 3 //define the SDA pin #define SCL_PIN 2 //define the SCL pin SoftI2cMaster i2c(SDA_PIN, SCL_PIN); MLX90615 mlx90615(MLX, &i2c); #else // Using Wire MLX90615 mlx90615(MLX, &Wire); #endif // INCLUDED_I2C not defined void setup() { Serial.begin(9600); while (!Serial); // Only for native USB serial delay(2000); // Additional delay to allow open the terminal to see setup() messages Serial.println("Setup..."); #ifndef INCLUDED_I2C // If using Wire: Wire.begin(); #endif // INCLUDED_I2C not defined // // write data into EEPROM when you need to adjust emissivity. // Serial.println(mlx90615.writeReg(MLX90615_EEPROM_EMISSIVITY,0x0000)); // Erase! (and see result) // delay(10); // EEPROM Write/Erase time // Serial.println(mlx90615.writeReg(MLX90615_EEPROM_EMISSIVITY,Default_Emissivity)); // Desired // delay(10); // EEPROM Write/Erase time // mlx90615.readEEPROM(); //read EEPROM data to check whether it's a default one. } void loop() { Serial.print("Object temperature: "); Serial.println(mlx90615.getTemperature(MLX90615_OBJECT_TEMPERATURE)); Serial.print("Ambient temperature: "); Serial.println(mlx90615.getTemperature(MLX90615_AMBIENT_TEMPERATURE)); delay(1000); }
Weiterführende Hintergrundinformationen:
Projektbeispiele:
- Adam Meyer – IR Temperatursensor (Zeigt die Nutzung mit dem Sensor MLX90615)
Wichtige Links für die ersten Schritte:
ZU ALLEN MATERIALIEN