DS18B20: ein Temperatursensor für Flüssigkeiten

DS18B20

Es stehen verschiedene Feuchtigkeits- und Temperatursensoren zur Verfügung, wie z der LM35. Einige integrierte Module für die spezifische Verwendung mit dem Arduino. Im Allgemeinen sollen sie jedoch die Trockentemperatur, dh die Lufttemperatur, messen. Aber es gibt ein konkretes Modell, für das es funktioniert Messen Sie die Temperatur in Flüssigkeiten und heißt DS18B20. Eine Besonderheit, die sich für einige Ihrer exotischeren DIY-Projekte als nützlich erweisen kann, bei denen Sie auch mit einer Art Flüssigkeit spielen, für die Sie diesen Parameter kennen müssen.

Tatsächlich misst der DS18B20 nicht nur die Temperatur in Flüssigkeiten, sondern kann auch sehr nützlich sein, um die Temperatur in Flüssigkeiten zu messen feuchte Umgebung und auch unter etwas Flüssigkeit. Sie können damit auch die Lufttemperatur messen, wenn die Umgebung stark mit Feuchtigkeit belastet ist. Und wie gesagt, das Merkmal, es in eine Flüssigkeit eintauchen zu können, um seine Temperatur zu messen, ist eines der Merkmale, die es unglaublich praktisch machen.

Was ist der DS18B20?

Nun, ich denke, es ist bereits ziemlich klar geworden, es ist ein elektronischer Sensor, der die Temperatur von gasförmigen oder flüssigen Medien messen kann. Darüber hinaus gibt es unterschiedliche Verkapselung oder Verpackung des DS18B20B. das grundlegende, das Sie im Hauptbild sehen, oder es kann auch in einige Leiterplatten, Tauchsonden usw. integriert werden. Für Ihr Projekt sollten Sie das am besten geeignete Format auswählen, je nachdem, was Sie möchten.

Zum Beispiel gibt es neben dem typischen TO-92 auch den microSOP. Möglicherweise zu integrieren mit Arduino ist der TO-92 am besten geeignet, da es mit seinen drei Stiften sehr einfach zum Anschließen in das Steckbrett eingesetzt werden kann.

Pinout

Ds18b20-Stifte

El Pinbelegung DS18B20 es ist leicht zu identifizieren. Wenn Sie beispielsweise das Dallas TO-92-Paket als Referenz verwenden, das eines der beliebtesten ist, können Sie sehen, dass es drei Stifte hat. Wenn Sie es von vorne platzieren, dh mit dem abgerundeten Abschnitt nach hinten und mit Blick auf die flache Seite, auf der die Inschriften erscheinen, ist der Stift auf der linken Seite 1 und der auf der rechten Seite 3. Daher wäre 1 für GND oder Masse, 2 ist für Daten und 3 für Versorgungsspannung.

Hier müssen wir das sagen, Werte, die Sie kennen sollten:

  • Pin 1: Sie müssen es mit dem GND-Pin von Arduino verbinden, dh mit 0V.
  • Pin 2: Dieser Pin ist DQ oder Daten, der die vom Sensor gemessenen Temperaturen über ein bestimmtes Protokoll namens 1-Wire an Arduino sendet und eine spezielle Bibliothek und Funktionen für die Arduino IDE benötigt. Dadurch können nur ein Arduino-Pin verwendet werden, um mehrere Sensoren mit diesem Protokoll zu verbinden ...
  • Pin 3: Es kann mit 3 bis 5,5 V betrieben werden, sodass Sie es an den 5-V-Ausgang von Arduino anschließen können.

Technische Merkmale und Datenblatt des DS18B20

Wie immer ist es so interessant, die technischen Eigenschaften zu kennen des Sensors zu wissen, wie er funktioniert, um ihn nicht zu beschädigen, und vor allem, damit wir wissen, wo seine Messgrenzen liegen, denn wenn die Werte, die wir messen möchten, nicht zwischen ihnen liegen, hilft es uns und Ihnen nicht sollte nach einer anderen Alternative suchen.

Dazu laden Sie am besten a herunter Herstellerdatenblatt, wie der in Dallas Sie können hier sehen. Dort finden Sie alle notwendigen Informationen. Und denken Sie daran, dass, obwohl alle DS18B20 ähnlich sein können, je nach Hersteller oder Verpackung einige Änderungen auftreten können ...

Aber unabhängig von den Macken, hier sind einige technische Grunddaten:

  • Temperaturbereich: -55 bis 125ºC, daher kann es bei sehr niedrigen und auch hohen Temperaturen in Gas oder Flüssigkeit messen.
  • Fehler: Der DS18B20 reagiert empfindlich auf externe Geräusche oder Störungen, die zu fehlerhaften Messwerten führen können. Die Fehlerquote beträgt plus minus 2 ° C, obwohl sie bei Temperaturen zwischen -10 ° C und 85 ° C, wenn wir uns den Grenzwerten nicht nähern, nur einen halben Grad betragen kann.
  • Auflösung: Sie können mit mehreren Auflösungen oder minimalen Abweichungen arbeiten, die Sie mit den analogen Arduino-Pins erkennen können. Unterstützt 9-Bit, 10-Bit, 11-Bit und 12-Bit (Standard). Das heißt, es kann von einem halben bis zu einem halben Grad, von einem Viertel bis zu einem Viertel Grad, von 0,125 bis 0,125ºC bzw. von 0,0625ºC gemessen werden. Sie können diese Programmierung über den Programmiercode ändern.
  • Versorgungsspannung: 3 bis 5,5 V.
  • Preis: 1 bis 3 €

Integration mit Arduino

Arduino-Anschlussplan - ds18b20

Allerdings sind da verschiedene Möglichkeiten, es zu verbindenAm besten geeignet ist das, das Sie in diesem Diagramm sehen. Es ist ganz einfach, mit dem GND-Pin in der entsprechenden Verbindung der Arduino-Karte, der Stromversorgung und den Daten zum Arduino-Analog, die Sie in Ihrem Programmcode in der Arduino-IDE ausgewählt haben. Es ist aber auch gut, einen 4,7-k-Pull-up-Widerstand einzustellen (wenn der Abstand des Sensorsondenkabels größer ist, sollte der Widerstand geringer sein, z. B. für 5 m von 3,3 k, für 10 von 2,2, XNUMX k,…) für den Daten-Pin und damit immer hoch halten.

Für Programmierung in Arduino IDE Aufgrund der guten Integration mit dem DS18B20 und diesem speziellen Protokoll wird empfohlen, die Bibliotheken herunterzuladen Dallas Temperatur y OneWire aus der Umwelt. Und der Basiscode könnte so etwas wie dieses Beispiel sein, das ich zeige:

#include <OneWire.h>
#include <DallasTemperature.h>

// Pin donde se conecta el bus 1-Wire (DQ)
const int pinDatosDQ = 9;

// Instancia a las clases OneWire y DallasTemperature
OneWire oneWireObjeto(pinDatosDQ);
DallasTemperature sensorDS18B20(&oneWireObjeto);
 
void setup() {
    // Iniciamos la comunicación serie a 9600 baudios
    Serial.begin(9600);
    // Iniciamos el bus 1-Wire del sensor
    sensorDS18B20.begin(); 
}
 
void loop() {
    // Indicamos que tome la temperatura
    Serial.println("Midiendo temperatura");
    sensorDS18B20.requestTemperatures();
 
    // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire)
    Serial.print("La temperatura del sensor 0 es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(0));
    Serial.println(" C");
    Serial.print("La temperatura del sensor x es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(1));
    Serial.println(" ºC");
    
    delay(1000); 
}

Mehr Info - Arduino Programmierhandbuch (Free PDF)


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.