Turinys:

DS18B20 jutiklio su „Arduino UNO“kalibravimas: 3 žingsniai (su nuotraukomis)
DS18B20 jutiklio su „Arduino UNO“kalibravimas: 3 žingsniai (su nuotraukomis)

Video: DS18B20 jutiklio su „Arduino UNO“kalibravimas: 3 žingsniai (su nuotraukomis)

Video: DS18B20 jutiklio su „Arduino UNO“kalibravimas: 3 žingsniai (su nuotraukomis)
Video: 4 pamoka - kaip pajungti LCD1602 ekraną 2024, Liepa
Anonim
DS18B20 jutiklio kalibravimas naudojant „Arduino UNO“
DS18B20 jutiklio kalibravimas naudojant „Arduino UNO“
DS18B20 jutiklio kalibravimas naudojant „Arduino UNO“
DS18B20 jutiklio kalibravimas naudojant „Arduino UNO“
DS18B20 jutiklio kalibravimas naudojant „Arduino UNO“
DS18B20 jutiklio kalibravimas naudojant „Arduino UNO“

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į

Paruoškite savo prietaisą
Paruoškite savo prietaisą

Čia yra sąrašas, ko jums reikia:

  1. „Arduino UNO“(arba MEGA)
  2. DS18B20 jutiklis (-iai)
  3. 4kOhm - 5kOhm atsparumas (aš naudojau 5k1Ohm)
  4. LCD ekranas vertėms nuskaityti (taip pat galite naudoti nešiojamąjį kompiuterį ir tiesiog skaityti juos serijiniame monitoriuje)
  5. 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

Dviejų taškų kalibravimas
Dviejų taškų kalibravimas
Dviejų taškų kalibravimas
Dviejų taškų kalibravimas
Dviejų taškų kalibravimas
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: