Wie man den digitalen Temperatursensor DS18B20 mit arduino uno testet Leave a comment

Es gibt viele Arten von Temperatursensoren, die je nach Messmethode, thermischem Widerstand und Thermoelement nach Sensormaterial in Kontakttyp und berührungsloser Typ unterteilt sind, analog und digital nach dem Arbeitsprinzip. Der vorherige Artikel führte den analogen Temperatursensor LM35 ein, und dieser Artikel führte die Verwendung des digitalen Temperatursensors DS18B20ein.

  1. Einführung in DS18B20
    DS18B20 ist ein gängiger digitaler Temperatursensor, der einen integrierten Chip verwendet und eine Single-Bus-Technologie verwendet, um externe Interferenzen effektiv zu reduzieren und die Messgenauigkeit zu verbessern. Der Ausgang ist ein digitales Signal, und die Verdrahtung ist sehr bequem. Es kann auf verschiedene Anlässe auf verschiedene Arten angewendet werden, wie Rohrtyp, Schraubentyp, Magnetadsorptionstyp und Edelstahl-Verpackungstyp.

Hauptmerkmal:

Verwenden Sie eine einzelne Busschnittstelle. Für die bidirektionale Kommunikation wird nur eine Datenleitung benötigt.


Breiter Messbereich und hohe Genauigkeit. Der Messbereich beträgt -55 °C — + 125 °C, und die Genauigkeit liegt bei 0,5 °C im Bereich von -10 – + 85 °C.
Multi-Point-Netzwerkfunktion. Mehrere DS18B20 können auf den einzigen drei Linien parallel angeschlossen werden, um eine Mehrpunkttemperaturmessung zu erreichen.


Flexible Stromversorgung. Die Stromversorgung kann über interne parasitäre Schaltkreise aus der Datenleitung gewonnen werden.


Die Messparameter sind konfigurierbar. Die Messauflösung von DS18B20 kann über das Programm auf 9-12 Bit eingestellt werden.
Abschaltschutzfunktion. Es enthält EEPROM, nachdem das System ausgeschaltet ist, kann es immer noch die Auflösung und Alarmtemperatureinstellungen speichern.

  1. Experimentelle Materialien
    Uno R3 Entwicklungsplatine
    Unterstützung von USB-Datenkabeln
    Steckbrett und Tragkabel
    DS18B20
    10K Inline-Widerstand
  2. Installieren der Bibliothek
    Zwei Bibliotheken werden in diesem Experiment verwendet, nämlich “OneWire” und “DallasTemperature”, die erste ist eine einzelne Busbibliothek, und letztere ist eine Bibliothek für Dallas Temperatursensoren auf der Grundlage der ersteren verpackt.

Klicken Sie in der IDE auf “Project”-“Load Library”-“Library verwalten”, suchen Sie nach “OneWire”, wählen Sie die neueste version aus, die installiert werden soll. Die neueste Version ist derzeit 2.3.4.

  1. Experimentelle Schritte
  2. Erstellen Sie den Schaltplan gemäß dem Schemadiagramm.
    Die Leitungsverbindung ist sehr einfach. Die VCC, DQ und GND des DS18B20 sind mit dem 5V, 2 und GND des Entwicklungsboards verbunden. Ein 10K-Widerstand ist an einem Ende mit VCC verbunden, und DQ ist am anderen Ende verbunden, und der Pull-up-Widerstand wird verwendet, um die Antriebsfähigkeit des I / O-Ports zu verbessern.

Das experimentelle Schema wird unten gezeigt:

Code:

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

// 数据输出脚接开发板数字引脚2
#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup(void)
{
  Serial.begin(9600);
  sensors.begin();
}

void loop(void)
{ 
  sensors.requestTemperatures(); // 发送命令获取温度
  Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0)); 
  delay(500); 
}

3.Verbinden Sie die Entwicklungsplatine, legen Sie die entsprechende Portnummer und den Entwicklungsplatinentyp fest, und laden Sie das Programm herunter.

  1. Experimentelle Phänomene
    Öffnen Sie den seriellen Monitor, die Baudrate ist auf 9600 eingestellt, der serielle Anschluss druckt den zyklisch gelesenen Temperaturwert

Protokoll:

2020.04.28 Update

Leave a Reply