Turinys:
- 1 žingsnis: Paruoškite įrenginį
- 2 žingsnis: dviejų taškų kalibravimas
- 3 žingsnis: naudokitės gautomis vertybėmis teisingai
Video: DS18B20 jutiklio su „Arduino UNO“kalibravimas: 3 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
ATSISAKYMAS:
Nuotraukose matomas įrenginys naudojamas kitame projekte kaip plėvelės kūrimo proceso termostatas. Tą projektą rasite čia. Norėdami kalibruoti jutiklį arba daugiau nei vieną, jums reikės tik to, ką rasite šiame projekte, nieko daugiau, ir tai taip pat yra gana paprasta! Eime!
1 žingsnis: Paruoškite įrenginį
Čia yra sąrašas, ko jums reikia:
- „Arduino UNO“(arba MEGA)
- DS18B20 jutiklis (-iai)
- 4kOhm - 5kOhm atsparumas (aš naudojau 5k1Ohm)
- LCD ekranas vertėms nuskaityti (taip pat galite naudoti nešiojamąjį kompiuterį ir tiesiog skaityti juos serijiniame monitoriuje)
- Eskizas, kuriame naudojamas jutiklis ir kažkaip parodomos vertės
Pirmiausia turite prijungti modulius ir jutiklį prie valdiklio. Paliksiu sudėtingą LCD dalį, kad galėtumėte ieškoti internete, ir tiesiog pasakysiu, kaip prijungti jutiklį.
Paprastai šie jutikliai turi tris spalvotus laidus: juodą, raudoną, geltoną. Pirmieji du yra skirti energijai, o treti - duomenims. Prijunkite juodą prie GNN, raudoną prie Vcc (5V) ir geltoną prie analoginio įėjimo, tarkime, A0.
Dabar prijunkite pasipriešinimą tarp geltonos ir raudonos, kad užbaigtumėte ryšius.
Taip pat prijunkite skystųjų kristalų ekraną (siūlau paprastą 16x2 skystųjų kristalų ekraną su „i2c“jungtimi, kad galėtumėte naudoti tik 4 laidus) ir baigsite naudoti laidus ir kabelius.
Dabar eskizas yra labai paprastas:
#include "OneWire.h"
#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); „Dallas“temperatūros jutiklis1 (& ourWire1); #include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD (0x27, 16, 2); plūdė RawValue = 0;
void setup () {lcd.init (); lcd.backlight (); jutiklis1.pradis (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); plūdė RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print („1 jutiklis“); lcd.print („RawValue“, 1); }
Kaip matote, mes naudojame Dalaso temperatūros biblioteką ir LCD ekraną su „i2c“ryšiu.
Sąrankoje mes įjungiame LCD ir jutiklį, o cikle tiesiog prašome temperatūros ir išsaugome vertę kintamojo „RawValue“viduje, kad ji būtų rodoma LCD.
Jei norite, kad viskas būtų paprasčiau, tiesiog naudokite serijinį monitorių su šiuo eskizu
#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); „Dallas“temperatūros jutiklis1 (& ourWire1);
plūdė RawValue = 0;
void setup () {
vėlavimas (1000); Serial.begin (9600); jutiklis1.pradis (); sensor1.setResolution (11);
}
void loop () {sensor1.requestTemperatures (); plūdė RawValue = sensor1.getTempCByIndex (0); Serial.print („1 jutiklis“); Serial.println („RawValue“, 1); }
Dabar sekite mane projekto esmėje, kad kalibruotumėte jutiklį.
2 žingsnis: dviejų taškų kalibravimas
Pirmiausia reikia ką nors žinoti
Norėdami sukalibruoti termosensorių, turite išmatuoti tai, ką žinote. Paprasčiausias būdas tai padaryti namuose yra verdančio vandens ir tirpstančio ledo vonia, dar vadinama „trijų taškų“vonia. Tokiais atvejais mes žinome, kad vanduo verda 100 ° C temperatūroje. Atminkite, kad norint tiksliai išmatuoti, turėtumėte žinoti savo aukštį ir ten apskaičiuoti tinkamą virimo temperatūrą.
Tai galite patikrinti čia!
Tiesą sakant, turėtumėte patikrinti atmosferos slėgį, o ne aukštį. Bet toks būdas yra pakankamai tikslus.
Trijų taškų vonia arba ledo vonia yra temperatūra, kurioje vanduo egzistuoja trijose būsenose: kieta, skysta ir dujinė, ta temperatūra yra 0, 01 ° C. Paprastinimui naudosime 0 ° C temperatūrą.
Žinodami jutiklio perskaitytą vertę ir vertę, kuri turėtų būti, galime pakeisti neapdorotą DS18B20 vertę į kažką teisingesnio.
PASTABA: jūs taip pat galite naudoti didesnę temperatūrą jutikliui kalibruoti, tiesiog įdėdami jį į kitą medžiagą, kurios virimo temperatūra jums žinoma, pvz., Eterį (35 ° C), pentaną (36, 1 ° C), acetoną (56 ° C) arba Etanolis (78, 37 ° C), tačiau iš tų verdančių medžiagų išsiskiria labai degios dujos! Taigi nedaryk to!
Verdantis vanduo:
Į puodą įpilkite šiek tiek vandens ir kaitinkite, kol užvirs (susidaro dujų burbulai ir vanduo pats maišosi). Panardinkite jutiklį ten, kur jis neliečia nieko, išskyrus vandenį. Palaukite kelias minutes ir perskaitykite LCD arba nuoseklųjį monitorių
Temperatūra turėtų išlikti tokia pati bent vieną minutę. Jei taip, užrašykite šią vertę. Tai jūsų: „RawHigh“vertė.
Trijų taškų vonia:
Dabar paimkite didelę stiklinę (jums nereikia nieko didžiulio ar puodo) ir užpildykite ją iki sienos ledo kubeliais. Pabandykite naudoti mažo dydžio ledo kubelius. Dabar užpildykite 80% stiklo šaltu vandeniu. Jei svirtis bando nusileisti, užpildykite ledu.
Dabar įdėkite jutiklį į vandens/ledo daiktą ir palaukite pusantros minutės. Perskaitykite temperatūrą, kuri turėtų likti ta pati bent 30 sekundžių. Jei taip, užsirašykite, kad tai jūsų „RawLow“vertė.
3 žingsnis: naudokitės gautomis vertybėmis teisingai
Taigi, dabar jūs turite keletą svarbių vertybių:
- RawHigh
- „RawLow“
- NuorodaHigh
- Nuoroda Žemas
Akivaizdu, kad etaloninė vertė yra 99,9 ° C verdančiam vandeniui (mano 22 m aukštyje) ir 0 ° C tirpstančiam ledo voniai. Dabar apskaičiuokite šių verčių intervalus:
- RawRange = RawHigh - RawLow
- ReferenceRange = ReferenceHigh - ReferenceLow
Dabar esate pasiruošę naudoti šį jutiklį bet kuriame kitame projekte, įsitikinę, kad jis suteiks jums tinkamą matavimą. Kaip? Naudodami čia gautą vertę projekte, kurį sukursite naudodami tą jutiklį.
Būsimame projekte turėsite naudoti vertybes, kurias perskaitėte šiame projekte, ir siūlau tai padaryti tais pačiais pavadinimais, kuriuos naudoju čia.
Paskelbkite kintamuosius prieš „void setup“() skyrių taip:
float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;
Kaskart, kai naudosite jutiklį, galite naudoti šią formulę, kad apskaičiuotumėte CorrectedValue:
float CorrectedValue = ((((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;
„RawValue“akivaizdžiai yra jutiklio rodmenys.
Viskas!
Dabar jūs žinote, kaip kalibruoti savo DS18B20 jutiklį ar bet kurį kitą jutiklį, kurį naudosite! Pasilinksmink!
Rekomenduojamas:
Dirvožemio drėgmės jutiklio kalibravimas: 5 žingsniai
Dirvožemio drėgmės jutiklio kalibravimas: rinkoje yra daug dirvožemio drėgmės matuoklių, kurie padeda sodininkui nuspręsti, kada laistyti augalus. Deja, paimti saują dirvožemio ir patikrinti spalvą bei tekstūrą yra taip pat patikima, kaip ir daugelis šių dalykėlių! Kai kurie zondai netgi registruojasi
ARDUINO IŠTIRPTAS OXIGENO JUTIKLIO KALIBRAVIMAS: 4 žingsniai
ARDUINO IŠTIRPTAS OXIGENO JUTIKLIO KALIBRAVIMAS: Šioje pamokoje mes kalibruosime „Atlas Scientific“EZO ištirpusio deguonies (D.O) jutiklį naudodami „Arduino Uno“. KALIBRAVIMO TEORIJA Svarbiausia kalibravimo dalis yra rodmenų stebėjimas kalibravimo proceso metu. Lengviausia kalibruoti
ARDUINO SALINITY JUTIKLIO KALIBRAVIMAS: 9 žingsniai
ARDUINO SALINITY JUTIKLIO KALIBRAVIMAS: Šioje pamokoje mes kalibruosime „Atlas Scientific“EZO druskingumo/laidumo K1.0 jutiklį naudodami „Arduino Uno“. KALIBRAVIMO TEORIJA Svarbiausia kalibravimo dalis yra rodmenų stebėjimas kalibravimo proceso metu. Lengviausia
Drėgmės jutiklio kalibravimas: 7 žingsniai
Drėgmės jutiklio kalibravimas: Turiu 3 jutiklius, kurie gali išmatuoti santykinę oro drėgmę: BME280, SHT21, DHT22. Jie nurodė gebėjimą tiksliai matuoti +/- 3% nuo 20 iki 80%. Tačiau, bandant tą pačią būklę su 3 jutikliais, gavau 3 skirtingus rezultatus. Gal o
6 ašių jutiklio modulis FSP200 Kalibravimas ir bandymas: 6 žingsniai
6 ašių jutiklio modulio FSP200 kalibravimas ir bandymas: FSP200 yra 6 ašių inercinis matavimo vieneto procesorius, suteikiantis krypties ir krypties išvestį. Jis sujungia akselerometrą ir giroskopo jutiklius, kad būtų užtikrinta stabili ir tiksli kryptis ir kryptis. FSP200 tinka naudoti robotizuotai