INHOUDSOPGAWE:

Kalibrasie van DS18B20 -sensor met Arduino UNO: 3 stappe (met foto's)
Kalibrasie van DS18B20 -sensor met Arduino UNO: 3 stappe (met foto's)

Video: Kalibrasie van DS18B20 -sensor met Arduino UNO: 3 stappe (met foto's)

Video: Kalibrasie van DS18B20 -sensor met Arduino UNO: 3 stappe (met foto's)
Video: Kalibrasie van Skaal 2024, Julie
Anonim
Kalibrasie van DS18B20 -sensor met Arduino UNO
Kalibrasie van DS18B20 -sensor met Arduino UNO
Kalibrasie van DS18B20 -sensor met Arduino UNO
Kalibrasie van DS18B20 -sensor met Arduino UNO
Kalibrasie van DS18B20 -sensor met Arduino UNO
Kalibrasie van DS18B20 -sensor met Arduino UNO

VRYWARING:

Die toestel wat u op die foto's sien, word in 'n ander projek gebruik as 'n termostaat vir filmontwikkeling. U kan die projek hier vind. Om 'n sensor of meer as een te kalibreer, benodig u net wat u in hierdie projek sal vind, niks meer nie, en dit is ook redelik basies! Kom ons gaan!

Stap 1: Berei u toestel voor

Berei u toestel voor
Berei u toestel voor

Hier is 'n lys van wat u nodig het:

  1. Arduino UNO (of MEGA)
  2. DS18B20 -sensor (s)
  3. 4kOhm - 5kOhm weerstand (ek het 'n 5k1Ohm gebruik)
  4. LCD -skerm om waardes te lees (u kan ook 'n skootrekenaar gebruik en dit net op 'n seriële monitor lees)
  5. 'N Skets wat die sensor gebruik en op een of ander manier die waardes toon

Eerstens moet u u modules en sensor aan u beheerder koppel. Ek laat die ingewikkelde deel van die LCD vir u op die internet soek, en ek sal u net vertel hoe u die sensor kan koppel.

Gewoonlik het die sensors drie gekleurde drade: swart, rooi, geel. Die eerste twee is vir energie en die derde vir die data. Koppel die swart aan GNN, die rooi aan Vcc (5V) en die geel op 'n analoog ingang, laat ons sê A0.

Verbind nou die weerstand tussen die geel en die rooi om die verbindings te voltooi.

Koppel ook die LCD aan (ek stel 'n eenvoudige 16x2 LCD met i2c -verbinding voor om slegs 4 drade in totaal te gebruik) en u is klaar met drade en kabels.

Nou die skets wat super eenvoudig is:

#sluit "OneWire.h" in

#sluit "DallasTemperature.h" in #definieer ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperatuur sensor1 (& ourWire1); #sluit "LiquidCrystal_I2C.h" in

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

ongeldige opstelling () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } leemte -lus () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Soos u kan sien, gebruik ons die Dallas Temperature -biblioteek en 'n LCD -skerm met i2c -verbinding.

In die opstelling gebruik ons LCD en sensor en in die lus vra ons eenvoudig die temperatuur en stoor die waarde in die veranderlike RawValue om dit op die LCD te wys.

As u dit meer eenvoudig wil hou, gebruik die seriële monitor met die volgende skets

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

dryf RawValue = 0;

ongeldige opstelling () {

vertraging (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

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

Volg my nou in die kern van die projek om die sensor te kalibreer.

Stap 2: tweepuntkalibrasie

Tweepuntkalibrasie
Tweepuntkalibrasie
Tweepuntkalibrasie
Tweepuntkalibrasie
Tweepuntkalibrasie
Tweepuntkalibrasie

Iets om eers te weet

Om 'n termosensor te kalibreer, moet u iets meet waarvan u die temperatuur ken. Die eenvoudige manier om dit tuis te doen, is deur kookwater en 'n bad met smeltende ys te gebruik, ook 'n 'driepunt' bad genoem. In daardie gevalle weet ons dat water by 100 ° C op die seevlak kook. Hou in gedagte dat u 'n presiese meting van u hoogte moet weet en die regte kooktemperatuur moet bereken.

U kan dit hier nagaan!

Om eerlik te wees, moet u die atmosferiese druk nagaan en nie die hoogte nie. Maar die manier is akkuraat genoeg.

Die driepuntbad, of ysbad, is die temperatuur waarteen water bestaan in die drie toestande vaste stof, vloeistof en gas, die temperatuur is 0, 01 ° C. Ons sal, ter vereenvoudiging, 0 ° C gebruik.

Deur die waarde van die sensor te lees en die waarde wat dit behoort te wees, kan ons die rou waarde van die DS18B20 verander na iets meer korrek.

OPMERKING: u kan ook meer temperatuur gebruik om die sensor te kalibreer deur dit in 'n ander stof te plaas waarvan u die kookpunt ken, soos eter (35 ° C), Pentaan (36, 1 ° C), asetoon (56 ° C) of Etanol (78, 37 ° C), maar die kookstowwe produseer hoë brandbare gasse! Moet dit dus nie doen nie!

Kookwater:

Gooi 'n bietjie water in 'n pot en verhit dit totdat dit kook (gasborrels ontwikkel en die water roer self). Dompel jou sensor waar dit niks anders as water raak nie. Wag 'n paar minute en lees die lcd of die seriële monitor

Die temperatuur moet minstens een minuut dieselfde bly. Indien wel, skryf die waarde neer. Dit is u: RawHigh -waarde.

Driepunt bad:

Neem nou 'n groot glas (u het niks groot nodig nie, ook nie 'n pot nie) en vul dit tot by die rand met ysblokkies. Probeer klein ysblokkies gebruik. Vul nou die 80% van die glas met koue water. Vul weer met ys as die hefboom probeer sak.

Plaas nou u sensor in die water/ys -ding en wag 'n half minute. Lees die temperatuur wat minstens 30 sekondes dieselfde moet bly. As dit die geval is, skryf dit neer dat dit u RawLow -waarde is.

Stap 3: Gebruik die waardes wat u op die regte manier kry

U het dus 'n paar belangrike waardes:

  • Rou Hoog
  • RawLow
  • Verwysing Hoog
  • Verwysing Laag

Die verwysingswaarde is duidelik 99,9 ° C vir die kookwater (op my hoogte van 22m) en 0 ° C vir die smeltende ysbad. Bereken nou die reekse vir die waardes:

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

Nou is u gereed om die sensor in enige ander projek te gebruik, seker dat dit u die regte meting sal gee. Hoe? Deur die waarde wat u hier in die projek gekry het, te gebruik, sal u met die sensor skep.

In u toekomstige projek moet u die waardes wat u in hierdie een lees, gebruik en ek stel voor om dit te doen met dieselfde name as wat ek hier gebruik het.

Verklaar die veranderlikes net voor die leemte -opstelling () -afdeling:

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

Elke keer as u die sensor gebruik, kan u die volgende formule gebruik om die CorrectedValue te bereken:

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

RawValue is duidelik die lesing van die sensor.

Dis dit!

Nou weet u hoe u u DS18B20 -sensor of enige ander sensor wat u gaan gebruik, moet kalibreer! Hê pret!

Aanbeveel: