DS18B20: Temperatursensorfunktionen

  • Der DS18B20-Sensor kann Temperaturen von -55 °C bis 125 °C mit einstellbarer Auflösung von 9 bis 12 Bit messen.
  • Die Stromversorgung kann über den Datenpin erfolgen oder für eine höhere Stabilität eine externe Quelle verwendet werden.
  • Es ermöglicht den Anschluss mehrerer Sensoren an einen einzigen Bus, wobei jeder durch seine eindeutige 64-Bit-Adresse identifiziert wird.
  • Es ist mit Arduino kompatibel und verwendet die Bibliotheken OneWire und DallasTemperature.

ds18b20

El DS18B20-Sensor erfreut sich dank seiner Zuverlässigkeit und Vielseitigkeit bei der Temperaturmessung großer Beliebtheit. Aufgrund seiner einfachen Handhabung und der Möglichkeit, mehrere Sensoren an denselben Bus anzuschließen, wird es häufig in Elektronikprojekten mit Mikrocontrollern wie Arduino, PIC oder ESP8266 verwendet, was es zu einer idealen Option sowohl für Amateure als auch für Profis macht.

Einer der Hauptvorteile dieses Sensors besteht darin, dass er für die Datenkommunikation über das Protokoll nur ein Kabel benötigt 1-Draht, was die Integration in verschiedenste Projekte erleichtert. Darüber hinaus kann der DS18B20 in bis zu zwei verschiedenen Leistungsmodi betrieben werden, was ihn noch flexibler macht. In diesem Artikel erklären wir ausführlich, wie es funktioniert, wie Sie mehrere Sensoren anschließen können und wie Sie Ihre Temperaturmessungen optimieren.

DS18B20-Funktionen

Der DS18B20 wird hergestellt von Maxim Integrated unter anderem und wird in verschiedenen Kapselungen präsentiert, wobei das Format ist TO-92 (ähnlich dem vieler Transistoren) einer der häufigsten. Darüber hinaus ist es auch in versiegelter und wasserdichter Ausführung erhältlich, was es ideal für die Temperaturmessung in rauen oder feuchten Umgebungen macht.

Zu den bemerkenswertesten Merkmalen des DS18B20 gehören:

  • Der Temperaturbereich, den es messen kann, deckt ab -55 °C bis 125 °C, wodurch es für industrielle und private Anwendungen geeignet ist.
  • Su programmierbare Auflösung kann zwischen variieren 9 und 12 BitDies ermöglicht eine präzise Anpassung an die Anforderungen jedes Projekts.
  • Jeder Sensor hat eine eindeutige Adresse 64 BitsDies erleichtert die Identifizierung mehrerer Sensoren, die an denselben Bus angeschlossen sind.

DS18B20-Leistungsmodi

ds18b20 Pinbelegung

Der Sensor kann in zwei Leistungsmodi betrieben werden und bietet so Flexibilität bei der Integration in verschiedene Projekte, von denen jedes seine eigenen Vorteile hat.

Stromversorgung über Datenpin (Parasite Power)

Dieser Modus ist ideal, wenn der Platz begrenzt ist oder Fernverbindungen benötigt werden. Der DS18B20 bezieht Strom direkt vom Datenpin, wenn dieser hoch ist, und speichert den Strom in einem kleinen Kondensator für den Fall, dass die Datenleitung niedrig ist. Diese Art der Diät nennt man Parasitenkraft.

Es ist jedoch wichtig zu beachten, dass für eine ordnungsgemäße Funktion die Verbindung der Pins erforderlich ist GND y VDD an Land. Zusätzlich empfiehlt sich die Einbindung eines Transistors MOSFET Dies hilft in Situationen, in denen Temperaturumwandlungen mehr Strom benötigen.

Stromversorgung über eine externe Quelle

Die gebräuchlichste und empfohlene Art, den DS18B20 mit Strom zu versorgen, ist die Verwendung einer externen Quelle, die an den Pin angeschlossen ist VDD. Diese Methode garantiert eine stabile Spannung unabhängig vom Datenverkehr auf dem 1-Wire-Bus, was bei Projekten, die eine konstante Präzision erfordern, von Vorteil ist.

So verwenden Sie den DS18B20 mit Arduino

Arduino-Verbindung

Um mit diesem Sensor auf der Arduino-Plattform arbeiten zu können, müssen zwei grundlegende Bibliotheken verwendet werden: OneWire y DallasTemperatur. Diese Bibliotheken erleichtern die Kommunikation und ermöglichen eine einfache Durchführung von Auslesungen und Konfigurationen.

OneWire-Bibliothek: Ermöglicht die Kommunikation über das 1-Wire-Protokoll. Es kann unter heruntergeladen werden GitHub-Repository.

Dallas BookstoreTemperatur: Es enthält die notwendigen Funktionen zum Auslesen der Temperatur und zum Konfigurieren des Sensors. Laden Sie es herunter von dieser Link.

Sobald Sie beide Bibliotheken installiert haben, können Sie ohne Komplikationen mit der Arbeit mit dem Sensor beginnen. Nachfolgend erklären wir einige Beispiele zum Ablesen der Temperatur und zum Arbeiten mit mehreren Sensoren.

Beispiel 1: Temperaturmessung mit einem einzelnen Sensor

Um eine Temperaturmessung mit einem einzelnen DS18B20 durchzuführen, der an einen Arduino angeschlossen ist, umfasst die Grundschaltung einfach den Anschluss des Datenpins des Sensors an den digitaler Pin 2 des Arduino, zusammen mit einem Widerstand Klimmzug von 4.7 kΩ.

Dies ist der grundlegende Code zum Lesen der Sensortemperatur:

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire  ds(2);  DallasTemperature sensors(&ds); void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float tempC = sensors.getTempCByIndex(0);   Serial.print("Temperatura= ");   Serial.print(tempC);   Serial.println(" °C");   delay(1000); }

Der Code ist recht einfach. Es sind nur ein paar Zeilen in der Hauptschleife erforderlich, um die Temperatur anzufordern und abzulesen, was die Implementierung und Anpassung an verschiedene Verwendungszwecke sehr einfach macht.

Beispiel 2: Verwendung mehrerer Sensoren an verschiedenen Pins

Bei der Arbeit mit mehr als einem DS18B20 gibt es zwei Möglichkeiten, die Sensoren anzuschließen. Die erste besteht darin, jedem Sensor einen anderen digitalen Arduino-Pin zuzuweisen. In diesem Fall wird für jeden Sensor ein 4.7-kΩ-Pull-Up-Widerstand benötigt.

Hier zeigen wir Ihnen ein Beispiel für die Arbeit mit zwei Sensoren, die an verschiedenen Pins angeschlossen sind:

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire ds1(2); OneWire ds2(3);  DallasTemperature sensors1(&ds1); DallasTemperature sensors2(&ds2); void setup() {   Serial.begin(9600);   sensors1.begin();   sensors2.begin(); } void loop() {   sensors1.requestTemperatures();   float temp1 = sensors1.getTempCByIndex(0);   sensors2.requestTemperatures();   float temp2 = sensors2.getTempCByIndex(0);   Serial.print("Temperatura 1 = ");   Serial.print(temp1);   Serial.print(" °C   Temperatura 2 = ");   Serial.println(temp2);   delay(1000); }

Beispiel 3: Mehrere Sensoren an einen einzigen Pin angeschlossen

Die andere Möglichkeit, mehrere DS18B20 in einem Projekt zu verbinden, besteht darin, für alle einen einzigen Pin und denselben 1-Wire-Bus zu verwenden. In diesem Fall muss jeder Sensor sein eigenes haben eindeutige Identifikationsnummer, die werksseitig vergeben wird. Hier erklären wir, wie Sie diese Adressen mithilfe des folgenden Codes erhalten:

#include <OneWire.h> OneWire ds(2); void setup(void) {   Serial.begin(9600); } void loop(void) {   byte address[8];   if (!ds.search(address)) {     Serial.println("No more addresses.");     ds.reset_search();     delay(250);     return;   }   Serial.print("Address: ");   for (int i = 0; i < 8; i++) {     Serial.print(address[i], HEX);     if (i < 7) Serial.print(", ");   }   Serial.println();   delay(250); }

Sobald Sie die Adressen aller Sensoren haben, können Sie den jeweiligen Sensor anhand seiner eindeutigen Adresse auslesen. Der folgende Code zeigt Ihnen, wie es geht:

#include <DallasTemperature.h>  OneWire ds(2);  DallasTemperature sensors(&ds);  DeviceAddress sensor1 = {0x28, 0xFF, 0xCA, 0x4A, 0x5, 0x16, 0x3, 0xBD}; DeviceAddress sensor2 = {0x28, 0xFF, 0x89, 0x3A, 0x1, 0x16, 0x4, 0xAF};  void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float temp1 = sensors.getTempC(sensor1);   float temp2 = sensors.getTempC(sensor2);   Serial.print("Temp sensor 1: ");   Serial.println(temp1);   Serial.print("Temp sensor 2: ");   Serial.println(temp2);   delay(1000); }

Die Vorteile dieser Methode bestehen darin, dass Sie Pins auf dem Arduino einsparen und viele Sensoren parallel an denselben Datenbus anschließen können.

Anhand dieser Beispiele können Sie die Vielseitigkeit und Leistungsfähigkeit des DS18B20-Sensors erkennen. Die Implementierung ist sehr einfach, und wenn Sie mehrere Sensoren anschließen müssen, haben Sie die volle Flexibilität, dies auf unterschiedliche Weise zu tun. Der DS18B20 ist einer der zuverlässigsten Sensoren zur Temperaturmessung und eignet sich dank seines geringen Stromverbrauchs und der einfachen Programmierung perfekt für alle Arten von Projekten.

Der DS18B20-Sensor lässt sich nicht nur einfach mit Arduino verwenden, sondern kann auch in einer Vielzahl von industriellen und privaten Anwendungen eingesetzt werden, beispielsweise zur Temperaturüberwachung in Klimaanlagen, Maschinen oder sogar Gewächshäusern.


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

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

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.