Inhaltsverzeichnis:

Kalibrierung des DS18B20-Sensors mit Arduino UNO - Gunook
Kalibrierung des DS18B20-Sensors mit Arduino UNO - Gunook

Video: Kalibrierung des DS18B20-Sensors mit Arduino UNO - Gunook

Video: Kalibrierung des DS18B20-Sensors mit Arduino UNO - Gunook
Video: Arduino DS18B20 temperature sensor tutorial 2024, November
Anonim
Kalibrierung des DS18B20-Sensors mit Arduino UNO
Kalibrierung des DS18B20-Sensors mit Arduino UNO
Kalibrierung des DS18B20-Sensors mit Arduino UNO
Kalibrierung des DS18B20-Sensors mit Arduino UNO
Kalibrierung des DS18B20-Sensors mit Arduino UNO
Kalibrierung des DS18B20-Sensors mit Arduino UNO

HAFTUNGSAUSSCHLUSS:

Das Gerät, das Sie auf den Bildern sehen, wird in einem anderen Projekt als Thermostat für den Filmentwicklungsprozess verwendet. Dieses Projekt finden Sie hier. Um einen oder mehrere Sensoren zu kalibrieren, benötigen Sie nur das, was Sie in diesem Projekt finden, nicht mehr, und es ist auch ziemlich einfach! Lass uns gehen!

Schritt 1: Bereiten Sie Ihr Gerät vor

Bereiten Sie Ihr Gerät vor
Bereiten Sie Ihr Gerät vor

Hier ist eine Liste mit dem, was Sie brauchen:

  1. Arduino UNO (oder MEGA)
  2. DS18B20-Sensor(en)
  3. 4kOhm - 5kOhm Widerstand (ich habe einen 5k1Ohm verwendet)
  4. LCD-Bildschirm zum Ablesen von Werten (Sie können auch einen Laptop verwenden und sie einfach auf einem seriellen Monitor ablesen)
  5. Eine Skizze, die den Sensor verwendet und irgendwie die Werte zeigt

Zuerst müssen Sie Ihre Module und Sensoren an Ihren Controller anschließen. Ich überlasse Ihnen den komplizierten Teil des LCD, damit Sie im Internet suchen können, und ich werde Ihnen nur sagen, wie Sie den Sensor anschließen.

Normalerweise werden diese Sensoren mit drei farbigen Drähten geliefert: Schwarz, Rot, Gelb. Die ersten beiden sind für Energie und die dritte für die Daten. Verbinden Sie das Schwarze mit GNN, das Rote mit Vcc (5V) und das Gelbe mit einem analogen Eingang, sagen wir A0.

Verbinden Sie nun den Widerstand zwischen Gelb und Rot, um die Verbindungen abzuschließen.

Schließen Sie auch das LCD an (ich schlage ein einfaches 16x2 LCD mit i2c-Anschluss vor, um insgesamt nur 4 Drähte zu verwenden) und Sie sind mit Drähten und Kabeln fertig.

Nun die supereinfache Skizze:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasTemperatursensor1(&ourWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd(0x27, 16, 2); float RawValue = 0;

Void setup () {lcd.init (); LCD-Rücklicht(); sensor1.begin(); sensor1.setResolution(11); aufrechtzuerhalten. Void Schleife () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex(0); lcd.setCursor(0, 0); lcd.print("Sens.1"); lcd.print (RohWert, 1); }

Wie Sie sehen, verwenden wir die Dallas Temperature Library und einen LCD-Bildschirm mit i2c-Anschluss.

Im Setup initialisieren wir LCD und Sensor und in der Schleife fragen wir einfach die Temperatur ab und speichern den Wert in der Variablen RawValue, um ihn auf dem LCD anzuzeigen.

Wenn Sie es einfacher halten möchten, verwenden Sie einfach den seriellen Monitor mit der folgenden Skizze

#include "Wire.h"#include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasTemperatursensor1(&ourWire1);

float RawValue = 0;

Void-Setup () {

Verzögerung (1000); Serial.begin (9600); sensor1.begin(); sensor1.setResolution(11);

}

Void Schleife () { sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex(0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

Folgen Sie mir nun im Kern des Projekts, um den Sensor zu kalibrieren.

Schritt 2: Zweipunktkalibrierung

Zweipunktkalibrierung
Zweipunktkalibrierung
Zweipunktkalibrierung
Zweipunktkalibrierung
Zweipunktkalibrierung
Zweipunktkalibrierung

Zuerst etwas wissen

Um einen Thermosensor zu kalibrieren, müssen Sie etwas messen, dessen Temperatur Sie kennen. Der einfache Weg, dies zu Hause zu tun, ist die Verwendung von kochendem Wasser und einem Bad aus schmelzendem Eis, auch "Triple-Point"-Bad genannt. In diesen Fällen wissen wir, dass Wasser auf Meereshöhe bei 100 °C siedet. Denken Sie daran, dass Sie für eine genaue Messung Ihre Höhe kennen und dort die richtige Siedetemperatur berechnen sollten.

Sie können es hier überprüfen!

Um ehrlich zu sein, sollten Sie den Luftdruck und nicht die Höhe überprüfen. Aber dieser Weg ist genau genug.

Das Tripelpunktbad oder Eisbad ist die Temperatur, bei der Wasser in den drei Zuständen fest, flüssig und gasförmig vorliegt, diese Temperatur beträgt 0, 01°C. Zur Vereinfachung verwenden wir 0°C.

Wenn wir den Wert kennen, den der Sensor liest und den Wert, der sein sollte, können wir den Rohwert des DS18B20 in einen korrekteren Wert ändern.

HINWEIS: Sie können auch eine höhere Temperatur verwenden, um den Sensor zu kalibrieren, indem Sie ihn einfach in eine andere Substanz geben, deren Siedepunkt Sie kennen, wie Ether (35°C), Pentan (36, 1°C), Aceton (56°C) oder Ethanol (78, 37°C), aber diese kochenden Stoffe erzeugen hochentzündliche Gase! Also Tu es nicht!

Kochendes Wasser:

Geben Sie etwas Wasser in einen Topf und erhitzen Sie es, bis es kocht (Gasblasen entwickeln sich und das Wasser rührt sich selbst). Tauchen Sie Ihren Sensor dort ein, wo er nichts außer Wasser berührt. Warten Sie ein paar Minuten und lesen Sie das LCD oder den seriellen Monitor ab

Die Temperatur sollte mindestens eine Minute lang gleich bleiben. Wenn ja, notieren Sie diesen Wert. Das ist Ihr: RawHoher Wert.

Dreipunktbad:

Nehmen Sie nun ein großes Glas (Sie brauchen weder etwas Großes noch einen Topf) und füllen Sie es bis zum Rand mit Eiswürfeln. Versuchen Sie, kleine Eiswürfel zu verwenden. Füllen Sie nun 80% des Glases mit kaltem Wasser. Füllen Sie Eis nach, wenn der Hebel versucht, nach unten zu gehen.

Legen Sie nun Ihren Sensor in das Wasser-/Eis-Ding und warten Sie anderthalb Minuten. Lesen Sie die Temperatur ab, die mindestens 30 Sekunden lang gleich bleiben soll. Wenn ja, schreiben Sie es auf, dass es Ihr RawLow-Wert ist.

Schritt 3: Nutzen Sie die Werte, die Sie erhalten, richtig

So, jetzt haben Sie einige wichtige Werte:

  • RawHigh
  • RawLow
  • ReferenzHoch
  • ReferenzNiedrig

Die Referenzwerte sind natürlich 99,9°C für das kochende Wasser (in meiner Höhe von 22m) und 0°C für das schmelzende Eisbad. Berechnen Sie nun die Bereiche für diese Werte:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Jetzt können Sie diesen Sensor in jedem anderen Projekt verwenden, um sicher zu sein, dass Sie eine richtige Messung erhalten. Wie? Verwenden Sie den Wert, den Sie hier im Projekt erhalten haben, den Sie mit diesem Sensor erstellen.

In Ihrem zukünftigen Projekt müssen Sie die Werte verwenden, die Sie in diesem lesen, und ich schlage vor, dies mit den gleichen Namen zu tun, die ich hier verwendet habe.

Deklarieren Sie die Variablen vor dem Abschnitt void setup() wie folgt:

float RawHigh = 99.6;float RawLow = 0.5;float ReferenceHigh = 99.9;float ReferenceLow = 0;float RawRange = RawHigh - RawLow;float ReferenceRange = ReferenceHigh - ReferenceLow;

Dann können Sie jedes Mal, wenn Sie den Sensor verwenden, die folgende Formel verwenden, um den korrigierten Wert zu berechnen:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue ist offensichtlich der Messwert des Sensors.

Das ist es!

Jetzt wissen Sie, wie Sie Ihren DS18B20-Sensor oder jeden anderen Sensor, den Sie verwenden, kalibrieren! Spaß haben!

Empfohlen: