Temperatursensor LM75 mit dem RasPi ansteuern

© Texelart, 123rf.com

Fühlen und messen

Dank seines programmierbaren Ausgangs eignet sich der digitale Sensor LM75 bestens, um mit einem RasPi die Temperatur zu überwachen.

Bei der Außentemperatur sprechen Wetterfrösche von "Wind-Chill" und gefühlten Werten. Wenn es aber um wertvolle elektronische Bauteile geht, schützt subjektives Empfinden nicht vor Schaden. RasPi-Fans haben die harten Fakten auf dem Schirm: Mit einem Temperatursensor und etwas Programmlogik ermitteln Sie im Handumdrehen die tatsächlichen Werte und setzen so, wenn nötig, einen Lüfter in Gang.

TIPP

Dieser Artikel setzt auf dem Grundwissen auf, das der erste Artikel dieser Reihe vermittelte. Sie finden ihn zusammen mit dem zweiten Teil jeweils als PDF-Datei auf der Heft-DVD.

Den für dieses Beispiel verwendeten LM75-Sensor (Abbildung 1) erhalten Sie allerdings nicht in einer für Bastler angenehmen DIL8-Bauform, sondern lediglich als SO8 mit kurzen Beinchen. Dabei handelt es sich um eine SMD-Bauform, bei der die Pins ein Rastermaß von 1,27 Millimetern haben. Nähere Informationen dazu zeigt der Kasten "Kompaktklasse". Zum Löten brauchen Sie jedoch eine ruhige Hand und eine feine Lötspitze.

Abbildung 1: Die Pin-Belegung zeigt Ihnen, wo Sie was am LM75 anschließen müssen.

Kompaktklasse

SMD kommt aus dem Englischen und bedeutet "surface mounted device", auf Deutsch also so viel wie "oberflächenmontiertes Bauelement". Das Verlöten der Bauelemente auf der Platine erlaubt eine höhere Dichte der Bauelemente. Die komplette Rückseite der Platine steht außerdem bereit, um sie anderweitig zu bestücken.

SMD-Bausteine nutzen darüber hinaus im Vergleich zu den üblichen Elektronikkomponenten ein geringeres Rastermaß. Das und die nicht mehr vorhandenen Anschlussbeinchen machen die Herstellung erheblich billiger. Den Hobbylöter stellt dies aber vor eine Herausforderung: Die Teile fallen so klein und leicht aus, dass sie durch die Oberflächenspannung des Lötzinns an der Spitze hängen bleiben.

Um das zu verhindern, kleben Sie die Bauteile vor dem Löten fest oder fixieren sie mit einer Pinzette. Der Handel bietet darüber hinaus spezielle Lötpasten an, die Sie mit einer Spritze an den Lötpunkten anbringen und dann mit einem Fön schmelzen. Selbst dabei kommen Sie aber nicht umhin, die Bauteile vorher zu verkleben.

Sie erhalten den Sensor für die Betriebsspannungen 3,3- und 5 Volt. Beim Anschließen müssen Sie deswegen genau auf die Angaben des Datenblatts achten. Der LM75 [1] besitzt drei Adresseingänge, folglich arbeiten bis zu acht dieser Bausteine an einem gemeinsamen Bus. Die Adressen beginnen bei 0x48h und reichen bis 0x4Fh.

Für die hier vorgestellten Experimente gilt es zu beachten, dass der Interrupt- beziehungsweise Alarmausgang über einen Feldeffekt-Transistor mit herausgeführtem Drain realisiert ist. Das bedeutet, dass er ohne zusätzlichen externen Pullup-Widerstand keinen sauberen Logikpegel liefert. Zusätzlich steht der Ausgang ab Werk auf "low aktiv" und nimmt maximal 10 mA auf. Achten Sie deshalb auf einen möglichst geringen Strom. Jedes Milliampere erzeugt zusätzliche Wärme, die womöglich das Messergebnis verfälscht.

Aufbau

Der Aufbau des Versuchs (Abbildung 2) simuliert einen Regler in Abhängigkeit von der Temperatur für einen Lüfter. Bei zu hohen Werten schaltet der Sensor den Lüfter ein, bis es wieder kühl genug ist. Dafür verbinden Sie den LM75 mit ein paar Drähten an einem DIL8-Sockel, schließen die Spannungsversorgung an und legen alle Adressleitungen auf Masse.

Abbildung 2: Dieser einfache Testaufbau genügt, um mit dem Temperatursensor zu arbeiten.

Die Leitungen SDA und SCL verbinden Sie mit dem RasPi. An den Ausgang OS schalten Sie eine LED mit einem 1K-Widerstand gegen +UB (Abbildung 3). Ein kleiner Test mit dem Befehl i2cdetect zeigt, ob alles stimmt (Listing 1). Sollten Fehler auftreten, prüfen Sie, ob Sie alle nötigen Vorarbeiten aus Teil 1 dieser Reihe vorgenommen haben.

Listing 1

 

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Abbildung 3: Der Schaltplan des LM75-Moduls gestaltet sich vergleichsweise simpel.

Der LM75 besitzt vier interne Register (siehe Tabelle "Register"). Bis auf das für die Konfiguration handelt es sich um 16-Bit-Register. Sie arbeiten zwar auch mit 8 Bit, das kostet allerdings 0,5 Grad Celsius an Messgenauigkeit.

Register

Adresse

Funktion

0x00h

Temperatur

0x01h

Konfiguration

0x02h

Temperatur-Abschaltwert

0x03h

Temperatur-Anschaltwert

Temperaturmessung

Das erste Testprogramm (Listing 2) liest die Temperatur in Register 0 aus und zeigt sie im Terminal an. Wir lesen das Register 0 als 16-Bit-Register ein. Das niederwertige Byte repräsentiert die ganzzahlige Temperatur. Befindet sich im hochwertigen Byte ein Wert, entspricht das einem Plus von 0,5 Grad Celsius.

Listing 2

 

#include <wiringPiI2C.h>
#include <stdio.h>
int main (void) {
  int handle = wiringPiI2CSetup (0x48) ;
  int reg0=wiringPiI2CReadReg16(handle,0x00);
  int temp=reg0&0x00ff;
  int half=0;
        if(reg0&0xff00) half=5; else half=0;
  printf("Temp:%d,%d\n",temp,half);
  return 0 ;
}

Anscheinend dreht die Methode wiringPiI2CWriteReg16() die 2 Bytes, laut Datenblatt müsste es genau anders herum sein. Aber das stört nicht weiter. Den Quellcode des Programms finden Sie auf der Heft-DVD; Sie kompilieren ihn wie in Listing 3 beschrieben.

Listing 3

 

$ cc lm75.c -lwiringPi
$ ./a.out
Temp:21,0

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.