Würth Elektronik – WSEN-TIDS Temperatur-Sensor

In diesem Beitrag möchte ich dir zeigen, wie du den Temperatur-Sensor WSEN-TIDS von Würth Elektronik am Arduino programmierst.

Würth Elektronik - WSEN-TIDS Temperatur-Sensor
Würth Elektronik – WSEN-TIDS Temperatur-Sensor

Im Beitrag Sensor Shield von Würth Elektronik habe ich dir bereits das Sensor Shield von der Firma Würth Elektronik vorgestellt. Dieses Shield verfügt über Anschlüsse für den hier vorgestellten Temperatur-Sensor vom Typ WSEN-TIDS, jedoch kannst du diesen Sensor auch ohne dieses Shield betreiben, dazu aber später mehr.

Bezug vom Temperatur-Sensor WSEN-TIDS

Diesen Sensor bekommst du zzt. exklusiv im Onlineshop von Würth Elektronik unter https://www.we-online.com/de/components/products/WSEN-TIDS dort findest du zusätzlich das Datenblatt.

Lieferumfang

Zum Lieferumfang des Sensors gehört neben dem Modul noch zwei 3polige Stiftleisten, welche an das Modul gelötet werden kann.

Technische Daten des Temperatur-Sensors

Hier die technischen Daten des Sensors:

Betriebsspannung1.5 V bis 3.6 V
maximale Stromaufnahme180 µA
Umgebungstemperatur-40 °C bis +125 °C
AnschlussI²C
Messbereich-40 °C bis +125 °C
Toleranz±0.25 °C
Auflösung16 Bits
Technische Daten vom Temperatur-Sensor WSEN-TIDS

Dieses ist nur ein kleiner Auszug aus dem Datenblatt, welches du unter https://www.we-online.com/components/products/datasheet/2521020222501.pdf findest.

Anschluss an den Arduino mithilfe des Sensor Shields

Am einfachsten kann dieser Sensor an den Arduino UNO mithilfe des Sensor Shields angeschlossen werden. Dieses musst du separat erwerben und ist nicht im Lieferumfang enthalten.

Sensor Shield mit WSEN-TIDS am Arduino UNO
Sensor Shield mit WSEN-TIDS am Arduino UNO

Da der Temperatur-Sensor eine maximale Betriebsspannung von 3.6 V hat, musst du diesen an den I²C Anschluss mit 3.3 V verbinden.

Anschluss an den Arduino mithilfe von Breadboardkabel

Alternativ kannst du den Temperatur-Sensor auch mit Breadboardkabel direkt an den Mikrocontroller anschließen. Hierzu musst du zunächst die beiden 3poligen Stiftleisten anlöten.

Wenn du diese angelötet hast, dann kannst du bei anderen Sensoren auch mit Breadboardkabel (männlich-weiblich) diesen wie folgt anschließen:

WSEN-TIDSArduino UNO
SCLanaloger Pin A4
SDAanaloger Pin A5
INT
GNDGND
VDD3.3 V
SA0
Anschluss des Temperatur-Sensors WSEN-TIDS an den Arduino UNO
Arduino UNO mit Temperatur-Sensor WSEN-TIDS von Würth Elektronik
Arduino UNO mit Temperatur-Sensor WSEN-TIDS von Würth Elektronik

Programmieren

Damit du diesen Sensor in der Arduino IDE programmieren kannst, benötigst du eine Bibliothek, diese findest du auf dem GitHub Repository von Würth Elektronik unter https://github.com/WurthElektronik/SensorLibrariesArduino/tree/master/libraries und Beispiele unter https://github.com/WurthElektronik/SensorLibrariesArduino/tree/master/WSEN_TIDS.

Wie man eine ZIP-Bibliothek in der Arduino IDE installiert, habe ich dir bereits im Beitrag Arduino IDE, Einbinden einer Bibliothek ausführlich erläutert.

Wenn diese nun installiert ist, können wir mit der Programmierung beginnen.

Nachfolgend verwende ich das zur Bibliothek gelieferte Beispiel „continuous_mode.ino“ in leicht gekürzter Version.

// Bibliothek zum auslesen des Sensors WSEN-TIDS
#include "WSEN_TIDS.h"

// ein Objekt vom Typ Sensor_TIDS erzeugen
Sensor_TIDS sensor;

// die Ausgabedatenrate in Hz
int ODR = 25;

void setup() {
  // beginn der seriellen Kommunikation
  Serial.begin(9600);
  // initialisieren der Kommunikation mit dem
  // Temperatur-Sensor
  sensor.init(TIDS_ADDRESS_I2C_1);
  // ein Software Reset durchführen
  sensor.SW_RESET();

  // auslesen der ID des Sensors und als HEX Wert umwandeln
  String sensorID = String(sensor.get_DeviceID(), HEX);
  // umwandeln in Großbuchstaben
  sensorID.toUpperCase();
  // Ausgeben der Sensor-ID auf der seriellen Schnittstelle
  Serial.println("Sensor ID: " + sensorID);

  // aktivieren des fortlaufenden lesens des Sensorwertes
  // mit der Abtastrate von ODR
  sensor.set_continuous_mode(ODR);
  // eine kleine Pause von 2 Sekunden
  delay(2000);
}

void loop() {
  // lesen der Temperatur
  float temperature = sensor.read_temperature();
  // Ausgeben der Temperatur auf der seriellen Schnittstelle
  Serial.print(temperature);
  Serial.println(" °C");
  // eine kleine Pause von 250 Millisekunden
  delay(250);
}

Wenn wir den obigen Code auf den Mikrocontroller überspielen, dann wird zunächst die Sensor-ID ausgeben und danach fortlaufend die Temperatur in Grad Celsius.

Sensor ID: A0
21.52 °C
21.60 °C
21.57 °C
21.55 °C
21.53 °C
21.65 °C
21.55 °C
21.52 °C
21.54 °C
21.58 °C

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert