Sisukord:

DS18B20 anduri kalibreerimine Arduino UNO -ga: 3 sammu (piltidega)
DS18B20 anduri kalibreerimine Arduino UNO -ga: 3 sammu (piltidega)

Video: DS18B20 anduri kalibreerimine Arduino UNO -ga: 3 sammu (piltidega)

Video: DS18B20 anduri kalibreerimine Arduino UNO -ga: 3 sammu (piltidega)
Video: photoresistors: calibration version 2 2024, November
Anonim
DS18B20 anduri kalibreerimine Arduino UNO -ga
DS18B20 anduri kalibreerimine Arduino UNO -ga
DS18B20 anduri kalibreerimine Arduino UNO -ga
DS18B20 anduri kalibreerimine Arduino UNO -ga
DS18B20 anduri kalibreerimine Arduino UNO -ga
DS18B20 anduri kalibreerimine Arduino UNO -ga

TÄHELEPANU:

Seadet, mida näete piltidel, kasutatakse teises projektis filmi väljatöötamise termostaadina. Selle projekti leiate siit. Anduri või mitme kalibreerimiseks vajate just seda, mida selles projektis leiate, ei midagi enamat ja see on ka üsna lihtne! Lähme!

Samm: valmistage seade ette

Valmistage seade ette
Valmistage seade ette

Siin on nimekiri sellest, mida vajate:

  1. Arduino UNO (või MEGA)
  2. DS18B20 andurid
  3. 4kOhm - 5kOhm takistus (ma kasutasin 5k1Ohm)
  4. LCD -ekraan väärtuste lugemiseks (saate kasutada ka sülearvutit ja neid lihtsalt jadamonitorilt lugeda)
  5. Eskiis, mis kasutab andurit ja näitab kuidagi väärtusi

Kõigepealt peate ühendama oma moodulid ja anduri kontrolleriga. Jätan vedelkristallekraani keerulise osa teile veebist otsimiseks ja ütlen teile lihtsalt, kuidas andurit ühendada.

Tavaliselt on need andurid varustatud kolme värvi juhtmega: must, punane, kollane. Esimesed kaks on energia ja kolmas andmete jaoks. Ühendage must GNN -iga, punane Vcc -ga (5 V) ja kollane analoogsisendiga, oletame A0.

Ühendage ühenduste lõpuleviimiseks nüüd takistus kollase ja punase vahel.

Ühendage ka LCD -ekraan (soovitan kasutada lihtsat 16x2 LCD -ekraani koos i2c -ühendusega, et kasutada kokku 4 juhtmest) ja olete juhtmete ja kaablitega valmis.

Nüüd on väga lihtne visand:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperatuuri andur1 (& meieWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C LCD (0x27, 16, 2); ujuk RawValue = 0;

void setup () {lcd.init (); lcd.taustavalgus (); sensor1.algus (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Nagu näete, kasutame Dallase temperatuuri raamatukogu ja i2c -ühendusega LCD -ekraani.

Seadistamisel käivitame LCD ja anduri ning ahelas palume lihtsalt temperatuuri ja salvestame väärtuse muutuja RawValue sisse, et seda LCD -l näidata.

Kui soovite, et see oleks lihtsam, kasutage lihtsalt jaemonitori koos järgmise visandiga

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperatuuri andur1 (& meieWire1);

ujuk RawValue = 0;

tühine seadistus () {

viivitus (1000); Seriaalne algus (9600); sensor1.algus (); sensor1.setResolution (11);

}

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

Nüüd järgige mind projekti tuumas, et kalibreerida andurit.

2. samm: kahepunktiline kalibreerimine

Kahepunktiline kalibreerimine
Kahepunktiline kalibreerimine
Kahepunktiline kalibreerimine
Kahepunktiline kalibreerimine
Kahepunktiline kalibreerimine
Kahepunktiline kalibreerimine

Midagi kõigepealt teada

Termosensori kalibreerimiseks peate mõõtma midagi, millest teate temperatuuri. Lihtne viis seda kodus teha on keeva vee ja sulavjäävanni kasutamine, mida nimetatakse ka "kolmepunktiliseks vanniks". Nendel juhtudel teame, et vesi keeb 100 ° C juures merepinnal. Pidage meeles, et täpse mõõtmise tegemiseks peaksite teadma oma kõrgust ja arvutama seal õige keemistemperatuuri.

Saate seda kontrollida siit!

Ausalt öeldes peaksite kontrollima õhurõhku, mitte kõrgust. Kuid see meetod on piisavalt täpne.

Kolmepunktivann või jäävann on temperatuur, mille juures vesi eksisteerib kolmes olekus tahke, vedel ja gaasiline, see temperatuur on 0, 01 ° C. Lihtsustamiseks kasutame 0 ° C.

Teades väärtust, mida andur luges, ja väärtust, mis peaks olema, saame muuta DS18B20 toorväärtust millekski õigemaks.

MÄRKUS. Anduri kalibreerimiseks võiksite kasutada ka rohkem temperatuuri, pannes selle mõne muu aine, mille keemistemperatuuri teate, näiteks eeter (35 ° C), pentaan (36, 1 ° C), atsetoon (56 ° C) või Etanool (78, 37 ° C), kuid need keevad ained tekitavad kergesti süttivaid gaase! Nii et ära tee seda!

Keev vesi:

Valage potti vett ja kuumutage seda keemiseni (gaasimullid tekivad ja vesi segab). Asetage andur kohta, kus see ei puuduta midagi peale vee. Oodake mõni minut ja lugege LCD -d või jadamonitori

Temperatuur peaks jääma samaks vähemalt minutiks. Kui jah, kirjutage see väärtus alla. See on teie: RawHigh väärtus.

Kolmepunktiline vann:

Võtke nüüd suur klaas (te ei vaja midagi suurt ega potti) ja täitke see jääkuubikutega piirini. Proovige kasutada väikese suurusega jääkuubikuid. Nüüd täitke 80% klaasist külma veega. Täitke jääga, kui hoob üritab alla minna.

Nüüd pange andur vee/jää asja sisse ja oodake poolteist minutit. Lugege temperatuuri, mis peaks jääma samaks vähemalt 30 sekundiks. Kui jah, kirjutage see üles, et see oleks teie RawLow väärtus.

Samm: kasutage saadud väärtusi õigesti

Nüüd on teil mõned olulised väärtused:

  • RawHigh
  • RawLow
  • Viide Kõrge
  • ViideLow

Võrdlusväärtus on ilmselgelt 99,9 ° C keeva vee puhul (minu kõrgusel 22 m) ja 0 ° C sulav jäävann. Nüüd arvutage nende väärtuste vahemikud:

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

Nüüd olete valmis seda andurit kasutama mõnes muus projektis, olles kindel, et see annab teile õige mõõtmise. Kuidas? Kasutades siin saadud väärtust projektis, mille selle anduriga loote.

Tulevases projektis peate kasutama selles loetud väärtusi ja soovitan seda teha samade nimedega, mida siin kasutasin.

Deklareerige muutujad enne jaotist void setup () järgmiselt:

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

Iga kord, kui andurit kasutate, saate CorrectedValue arvutamiseks kasutada järgmist valemit:

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

RawValue on ilmselgelt anduri näit.

See on kõik!

Nüüd teate, kuidas kalibreerida oma DS18B20 andurit või mõnda muud kasutatavat andurit! Lõbutse hästi!

Soovitan: