In diesem Beitrag möchte ich dir zeigen, wie du den Temperatur-Sensor WSEN-TIDS von Würth Elektronik am Arduino programmierst.
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:
Betriebsspannung | 1.5 V bis 3.6 V |
maximale Stromaufnahme | 180 µA |
Umgebungstemperatur | -40 °C bis +125 °C |
Anschluss | I²C |
Messbereich | -40 °C bis +125 °C |
Toleranz | ±0.25 °C |
Auflösung | 16 Bits |
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.
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-TIDS | Arduino UNO |
---|---|
SCL | analoger Pin A4 |
SDA | analoger Pin A5 |
INT | – |
GND | GND |
VDD | 3.3 V |
SA0 | – |
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