Arduino-Code für einen LM75A-Temperatursensor

Arduino-Code für einen LM75A-Temperatursensor

In diesem Tutorial lernen Sie, wie Sie den LM75A-Temperatursensor mit einem Arduino verwenden, um die Temperatur sowohl in Celsius als auch in Fahrenheit zu messen. Der LM75A-Sensor kommuniziert über das I2C-Protokoll, was die Integration mit Arduino-Boards erleichtert. Am Ende dieses Tutorials haben Sie einen funktionierenden Aufbau, der jede Sekunde Temperaturwerte anzeigt.

Um dieses Tutorial optimal zu nutzen, empfehle ich, das zugehörige Video anzusehen, das visuelle Hinweise zur Einrichtung und zur Implementierung des Codes gibt (im Video bei 20:29).

Hardware erklärt

Der LM75A-Temperatursensor ist ein digitaler Sensor, der die Umgebungstemperatur mit hoher Genauigkeit messen kann. Er arbeitet über das I2C-Kommunikationsprotokoll, sodass mehrere Sensoren an denselben Bus angeschlossen werden können. Der Sensor verfügt über eine Abschaltfunktion bei Übertemperatur, die dabei helfen kann, Energie zu sparen, wenn er nicht in Gebrauch ist.

Dieser Sensor ist in der Regel entweder als eigenständiger Chip oder als PCB‑Modul erhältlich. Das Modul enthält wichtige Pins wie VCC, GND, SDA und SCL, die für die Kommunikation mit dem Arduino erforderlich sind. Beim Einsatz dieses Sensors ist es wichtig, für korrekte Verbindungen zu sorgen und die richtige I2C‑Adresse für die Kommunikation auszuwählen.

Datenblattdetails

HerstellerNXP / Texas Instruments
TeilenummerLM75A
Logik-/I/O-Spannung2,7 V bis 5,5 V
Versorgungsspannung2.7 V bis 5.5 V
Ausgangsstrom (pro Kanal)3 mA
Spitzenstrom (pro Kanal)10 mA
Leitfaden zur PWM-FrequenzNicht zutreffend
Schwellenwerte der Eingangslogik0,3 VCC (hoch), 0,2 VCC (niedrig)
Spannungsabfall / RDS(on) / Sättigung0,5 V max.
Thermische Grenzen-55 °C bis +125 °C
PaketSOIC-8 / TSSOP
Notizen / VariantenErhältlich mit verschiedenen I2C-Adressen

  • Stellen Sie sicher, dass die korrekte I2C‑Adresse in Ihrem Code gesetzt ist.
  • Verwenden Sie Pull-up-Widerstände an den SDA- und SCL-Leitungen, falls erforderlich.
  • Versorgen Sie den Sensor mit einer stabilen Spannung (2,7 V bis 5,5 V).
  • Auf Überhitzung achten; der Sensor kann bis zu 125 °C betrieben werden.
  • Behandeln Sie den Sensor vorsichtig, um während der Installation Schäden zu vermeiden.

Verdrahtungsanleitung

Arduino_wiring_LM75A_bb

Um den LM75A-Temperatursensor an Ihr Arduino anzuschließen, beginnen Sie damit, den GND-Pin des Sensors mit dem GND-Pin Ihres Arduinos zu verbinden. Als Nächstes verbinden Sie den VCC-Pin des Sensors mit dem 5V-Pin Ihres Arduinos. Für die I2C-Kommunikation verbinden Sie den SDA-Pin des Sensors (meist grün markiert) mit dem A4-Pin Ihres Arduinos und den SCL-Pin (meist blau markiert) mit dem A5-Pin. Wenn Sie ein anderes Arduino-Modell verwenden, stellen Sie sicher, dass Sie die korrekten I2C-Pins anschließen; zum Beispiel verbindet sich beim Arduino Mega SDA mit Pin 20 und SCL mit Pin 21.

Wenn Sie den LM75A als nackten Chip statt als Modul verwenden, stellen Sie sicher, die entsprechenden Pins korrekt zu verbinden: der 1. Pin mit A4 (SDA), der 2. Pin mit A5 (SCL), der 4. Pin mit Masse (GND) und der 8. Pin mit VCC. Die übrigen Pins unverbunden lassen. Diese Konfiguration stellt sicher, dass der Sensor ordnungsgemäß mit dem Arduino kommunizieren kann.

Codebeispiele & Schritt-für-Schritt-Anleitung

Der folgende Code initialisiert den LM75A-Sensor und liest jede Sekunde die Temperatur aus. Der Schlüsselbezeichner in diesem Code istlm75a_sensorEs handelt sich dabei um eine Instanz der Klasse LM75A. Diese Instanz wird verwendet, um Temperaturmesswerte vom Sensor abzurufen.

LM75A lm75a_sensor(false, false, false);

Diese Zeile erstellt eine Instanz der LM75A-Klasse und übergibt Parameter, die den Zustand der Pins A0, A1 und A2 repräsentieren. Der Standardzustand kann auffalseWenn diese Stifte nicht verwendet werden.

In demsetup()In der Funktion initialisieren wir die serielle Kommunikation mit 9600 Baud, was für die Anzeige der Temperaturwerte im seriellen Monitor entscheidend ist.

void setup(void) {
  Serial.begin(9600);
  Serial.println("Robojax LM75A Test");
}

Dieser Codeausschnitt richtet den seriellen Monitor ein, sodass wir die Temperaturwerte sehen können, während sie jede Sekunde ausgegeben werden.

In theloop()In der Funktion rufen wir die Temperatur in Grad Celsius ab und prüfen auf Fehler. Wenn die Temperatur gültig ist, geben wir sie zusammen mit dem entsprechenden Wert in Fahrenheit aus.

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
} else {
  Serial.print("Temperature: ");
  Serial.print(temperature_in_degrees);
  Serial.print(" degrees (");
  Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
  Serial.println(" Fahrenheit)");
}

Dieser Codeabschnitt zeigt, wie man die Temperaturmessung verarbeitet und sie sowohl in Celsius als auch in Fahrenheit auf dem seriellen Monitor ausgibt. Er enthält eine Fehlerbehandlung für ungültige Messwerte.

Den vollständigen Code finden Sie im Abschnitt zum Laden unterhalb des Artikels.

Demonstration / Was Sie erwartet

Sobald Sie die Verkabelung abgeschlossen und den Code auf Ihr Arduino hochgeladen haben, sollten Sie die Temperaturwerte jede Sekunde im seriellen Monitor sehen. Sie können die Reaktionsfähigkeit des Sensors testen, indem Sie ihn berühren oder eine Heißluftpistole verwenden, und sollten beobachten, dass sich die Messwerte entsprechend ändern. Achten Sie auf verpolte Anschlüsse beim Verbinden des Sensors, da dies das Modul beschädigen kann.

Bilder

LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_bb
Arduino_wiring_LM75A_bb
127-Arduino code for an LM75A temperature sensor
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Fritzing-Datei