Innholdsfortegnelse:

Kalibrering av DS18B20 -sensor med Arduino UNO: 3 trinn (med bilder)
Kalibrering av DS18B20 -sensor med Arduino UNO: 3 trinn (med bilder)

Video: Kalibrering av DS18B20 -sensor med Arduino UNO: 3 trinn (med bilder)

Video: Kalibrering av DS18B20 -sensor med Arduino UNO: 3 trinn (med bilder)
Video: Livesänd information om kvävegödsling säsongen 2020 2024, November
Anonim
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO
Kalibrering av DS18B20 -sensor med Arduino UNO

ANSVARSFRASKRIVELSE:

Enheten du ser på bildene brukes i et annet prosjekt som en termostat for filmutviklingsprosess. Du kan finne det prosjektet her. For å kalibrere en sensor, eller mer enn én, trenger du akkurat det du finner i dette prosjektet, ikke noe mer, og det er også ganske grunnleggende! La oss gå!

Trinn 1: Klargjør enheten

Klargjør enheten
Klargjør enheten

Her er en liste over hva du trenger:

  1. Arduino UNO (eller MEGA)
  2. DS18B20 sensor (er)
  3. 4kOhm - 5kOhm motstand (jeg brukte en 5k1Ohm)
  4. LCD -skjerm for å lese verdier (du kan også bruke en bærbar datamaskin og bare lese dem på en seriell skjerm)
  5. En skisse som bruker sensoren og på en eller annen måte viser verdiene

Først må du koble modulene og sensoren til kontrolleren. Jeg lar den kompliserte delen av LCD -skjermen stå for deg for å søke på nettet, og jeg vil bare fortelle deg hvordan du kobler sensoren.

Vanligvis kommer disse sensorene med tre fargede ledninger: Svart, rød, gul. De to første er for energi og den tredje er for data. Koble den svarte til GNN, den røde til Vcc (5V) og den gule på en analog inngang, la oss si A0.

Koble nå motstanden mellom den gule og den røde for å fullføre tilkoblingene.

Plugg inn også LCD -skjermen (jeg foreslår en enkel 16x2 LCD med i2c -tilkobling for å bruke bare 4 ledninger totalt), og du er ferdig med ledninger og kabler.

Nå er skissen som er superenkel:

#inkludere "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 oppsett () {lcd.init (); lcd.backlight (); sensor1.begynner (); 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 bruker vi Dallas temperaturbibliotek og en LCD -skjerm med i2c -tilkobling.

I oppsettet begynner vi på LCD og sensor, og i sløyfen ber vi ganske enkelt om temperaturen og lagrer verdien inne i variabelen RawValue for å vise den på LCD -skjermen.

Hvis du vil gjøre det mer enkelt, bare bruk den serielle skjermen med følgende skisse

#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 oppsett () {

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

}

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

Følg meg nå i kjernen av prosjektet for å kalibrere sensoren.

Trinn 2: To -punktskalibrering

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

Noe å vite først

For å kalibrere en termosensor må du måle noe du kjenner temperaturen på. Den enkle måten å gjøre det hjemme på er å bruke kokende vann og et bad med smeltende is, også kalt et "trippelpunkt" -bad. I slike tilfeller vet vi at vann koker ved 100 ° C på havnivået. Husk at for å gjøre en presis måling, bør du kjenne høyden din og beregne riktig koketemperatur der.

Du kan sjekke det her!

For å være ærlig bør du sjekke atmosfæretrykket og ikke høyden. Men den måten er nøyaktig nok.

Trepunktsbadet, eller isbadet, er temperaturen der vann eksisterer i de tre tilstandene fast stoff, væske og gass, den temperaturen er 0, 01 ° C. Vi vil bruke, for å forenkle, 0 ° C.

Når vi kjenner verdien som sensoren leser og verdien som bør være, kan vi endre råverdien til DS18B20 til noe mer korrekt.

MERK: du kan også bruke mer temperatur til å kalibrere sensoren bare ved å sette den i et annet stoff som du kjenner kokepunktet som Eter (35 ° C), Pentan (36, 1 ° C), Aceton (56 ° C) eller Etanol (78, 37 ° C), men de kokende stoffene gir høye antennelige gasser! Så ikke gjør det!

Kokende vann:

Ha litt vann i en gryte og varm det opp til det koker (gassbobler utvikler seg og vannet agiterer selv). Dyp sensoren din der den ikke berører annet enn vann. Vent et par minutter og les LCD -en eller seriell skjerm

Temperaturen bør forbli den samme i minst ett minutt. Skriv i så fall ned verdien. Det er din: RawHigh -verdi.

Trepunktsbad:

Ta nå et stort glass (du trenger ikke noe stort eller en gryte) og fyll det til grensen med isbiter. Prøv å bruke små isbiter. Fyll nå 80% av glasset med kaldt vann. Fyll på med is hvis spaken prøver å gå ned.

Sett nå sensoren din inne i vann/is -tingen og vent ett og et halvt minutt. Les temperaturen som skal forbli den samme i minst 30 sekunder. Skriv i så fall ned at det er din RawLow -verdi.

Trinn 3: Bruk verdiene du får på riktig måte

Så nå har du noen viktige verdier:

  • RawHigh
  • RawLow
  • Referanse Høy
  • Referanse Lav

Referanseverdien er åpenbart 99,9 ° C for kokende vann (i min høyde på 22m) og 0 ° C for det smeltende isbadet. Beregn nå områdene for disse verdiene:

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

Nå er du klar til å bruke sensoren i ethvert annet prosjekt, og være sikker på at den vil gi deg en riktig måling. Hvordan? Ved å bruke verdien du fikk her i prosjektet vil du skape med den sensoren.

I ditt fremtidige prosjekt må du bruke verdiene du leser i dette, og jeg foreslår at du gjør det med de samme navnene jeg brukte her.

Angi variablene før delen for ugyldig oppsett () akkurat slik:

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 bruker sensoren, kan du bruke følgende formel til å beregne CorrectedValue:

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

RawValue er åpenbart lesingen av sensoren.

Det er det!

Nå vet du hvordan du kalibrerer DS18B20 -sensoren eller en hvilken som helst annen sensor du vil bruke! Ha det gøy!

Anbefalt: