Indholdsfortegnelse:

Kalibrering af DS18B20 -sensor med Arduino UNO: 3 trin (med billeder)
Kalibrering af DS18B20 -sensor med Arduino UNO: 3 trin (med billeder)

Video: Kalibrering af DS18B20 -sensor med Arduino UNO: 3 trin (med billeder)

Video: Kalibrering af DS18B20 -sensor med Arduino UNO: 3 trin (med billeder)
Video: DjH modul 2 10 part 03 connecting Dallas DS18b20 temperature sensors calibrating sensors creating lo 2024, Juli
Anonim
Kalibrering af DS18B20 -sensor med Arduino UNO
Kalibrering af DS18B20 -sensor med Arduino UNO
Kalibrering af DS18B20 -sensor med Arduino UNO
Kalibrering af DS18B20 -sensor med Arduino UNO
Kalibrering af DS18B20 -sensor med Arduino UNO
Kalibrering af DS18B20 -sensor med Arduino UNO

ANSVARSFRASKRIVELSE:

Enheden, du ser på billederne, bruges i et andet projekt som en termostat til filmudviklingsproces. Du kan finde det projekt her. For at kalibrere en sensor, eller mere end en, skal du bruge lige det, du finder i dette projekt, ikke mere, og det er også ret grundlæggende! Lad os gå!

Trin 1: Forbered din enhed

Forbered din enhed
Forbered din enhed

Her er en liste over, hvad du har brug for:

  1. Arduino UNO (eller MEGA)
  2. DS18B20 sensor (er)
  3. 4kOhm - 5kOhm modstand (jeg brugte en 5k1Ohm)
  4. LCD -skærm til aflæsning af værdier (du kan også bruge en bærbar computer og bare læse dem på en seriel skærm)
  5. En skitse, der bruger sensoren og på en eller anden måde viser værdierne

Først og fremmest skal du forbinde dine moduler og sensor til din controller. Jeg lader den komplicerede del af LCD'et stå til dig for at søge på nettet, og jeg vil bare fortælle dig, hvordan du tilslutter sensoren.

Normalt leveres disse sensorer med tre farvede ledninger: Sort, rød, gul. De to første er til energi, og den tredje er til data. Tilslut den sorte til GNN, den røde til Vcc (5V) og den gule på en analog indgang, lad os sige A0.

Tilslut nu modstanden mellem den gule og den røde for at fuldføre forbindelserne.

Tilslut også LCD'en (jeg foreslår en simpel 16x2 LCD med i2c -forbindelse til kun at bruge 4 ledninger i alt), og du er færdig med ledninger og kabler.

Nu er skitsen, der er super enkel:

#include "OneWire.h"

#inkludere "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;

ugyldig opsætning () {lcd.init (); lcd.backlight (); sensor1.begynd (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Som du kan se, bruger vi Dallas Temperature -biblioteket og en LCD -skærm med i2c -forbindelse.

I opsætningen undersøger vi LCD og sensor, og i sløjfen anmoder vi ganske enkelt om temperaturen og gemmer værdien inde i variablen RawValue for at vise den på LCD'et.

Hvis du vil holde det mere enkelt, skal du bare bruge den serielle skærm med følgende skitse

#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;

ugyldig opsætning () {

forsinkelse (1000); Serial.begin (9600); sensor1.begynd (); sensor1.setResolution (11);

}

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

Følg mig nu i kernen af projektet for at kalibrere sensoren.

Trin 2: To -punktskalibrering

To -punkts kalibrering
To -punkts kalibrering
To -punkts kalibrering
To -punkts kalibrering
To -punkts kalibrering
To -punkts kalibrering

Noget at vide først

For at kalibrere en termosensor skal du måle noget, som du kender temperaturen af. Den enkle måde at gøre det hjemme på er ved at bruge kogende vand og et bad med smeltende is, også kaldet et "triple-point" bad. I disse tilfælde ved vi, at vand koger ved 100 ° C på havets overflade. Husk, at for at foretage en præcis måling skal du kende din højde og beregne den korrekte kogetemperatur der.

Du kan tjekke det her!

For at være ærlig bør du kontrollere atmosfæretrykket og ikke højden. Men den måde er præcis nok.

Dobbeltpunktsbadet eller isbadet er den temperatur, ved hvilken der findes vand i de tre tilstande fast, flydende og gas, denne temperatur er 0, 01 ° C. Vi vil bruge, for at forenkle, 0 ° C.

Ved at kende værdien, som sensoren læste, og den værdi, der skulle være, kan vi ændre DS18B20s råværdi til noget mere korrekt.

BEMÆRK: du kan også bruge mere temperatur til at kalibrere sensoren ved blot at sætte den i et andet stof, som du kender kogepunktet som Ether (35 ° C), Pentan (36, 1 ° C), Acetone (56 ° C) eller Ethanol (78, 37 ° C), men de kogende stoffer producerer meget brandfarlige gasser! Så gør det ikke!

Kogende vand:

Kom lidt vand i en gryde og varm det op, indtil det koger (gasbobler udvikler sig, og vandet omrører sig selv). Dæmp din sensor, hvor den ikke rører ved andet end vand. Vent et par minutter, og læs lcd'en eller den serielle skærm

Temperaturen skal forblive den samme i mindst et minut. Hvis ja, skriv værdien ned. Det er din: RawHigh -værdi.

Triple-point bad:

Tag nu et stort glas (du behøver ikke noget stort eller en gryde) og fyld det til grænsen med isterninger. Prøv at bruge små isterninger. Fyld nu 80% af glasset med koldt vand. Påfyld med is, hvis håndtaget forsøger at gå ned.

Sæt nu din sensor inde i vand/is -tingen, og vent et og et halvt minut. Læs temperaturen, der skal forblive den samme i mindst 30 sekunder. Hvis ja, skriv det ned, at det er din RawLow -værdi.

Trin 3: Brug de værdier, du får på den rigtige måde

Så nu har du nogle vigtige værdier:

  • Råhøj
  • RawLow
  • ReferenceHøj
  • Reference Lav

Referenceværdien er naturligvis 99,9 ° C for det kogende vand (i min højde på 22 m) og 0 ° C for det smeltende isbad. Beregn nu intervallerne for disse værdier:

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

Nu er du klar til at bruge den sensor i ethvert andet projekt, idet du er sikker på, at den vil give dig en korrekt måling. Hvordan? Ved at bruge den værdi, du fik her i projektet, vil du oprette med den sensor.

I dit fremtidige projekt skal du bruge de værdier, du læser i dette, og jeg foreslår at gøre det ved hjælp af de samme navne, som jeg brugte her.

Deklarér variablerne inden sektionen for tomrumsopsætning () ligesom:

float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Hver gang du bruger sensoren, kan du bruge følgende formel til at beregne CorrectedValue:

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

RawValue er naturligvis sensorens aflæsning.

Det er det!

Nu ved du, hvordan du kalibrerer din DS18B20 -sensor eller enhver anden sensor, du vil bruge! Hav det sjovt!

Anbefalede: