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

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.