Satura rādītājs:

DS18B20 sensora kalibrēšana ar Arduino UNO: 3 soļi (ar attēliem)
DS18B20 sensora kalibrēšana ar Arduino UNO: 3 soļi (ar attēliem)

Video: DS18B20 sensora kalibrēšana ar Arduino UNO: 3 soļi (ar attēliem)

Video: DS18B20 sensora kalibrēšana ar Arduino UNO: 3 soļi (ar attēliem)
Video: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Jūlijs
Anonim
DS18B20 sensora kalibrēšana ar Arduino UNO
DS18B20 sensora kalibrēšana ar Arduino UNO
DS18B20 sensora kalibrēšana ar Arduino UNO
DS18B20 sensora kalibrēšana ar Arduino UNO
DS18B20 sensora kalibrēšana ar Arduino UNO
DS18B20 sensora kalibrēšana ar Arduino UNO

ATRUNA:

Attēlos redzamā ierīce tiek izmantota citā projektā kā termostats filmu izstrādes procesā. Jūs varat atrast šo projektu šeit. Lai kalibrētu sensoru vai vairāk nekā vienu, jums būs nepieciešams tikai tas, ko atradīsit šajā projektā, nekas vairāk, un tas ir arī diezgan vienkāršs! Ejam!

1. darbība: sagatavojiet ierīci

Sagatavojiet savu ierīci
Sagatavojiet savu ierīci

Šeit ir saraksts ar to, kas jums nepieciešams:

  1. Arduino UNO (vai MEGA)
  2. DS18B20 sensors (-i)
  3. 4kOhm - 5kOhm pretestība (es izmantoju 5k1Ohm)
  4. LCD ekrāns, lai nolasītu vērtības (varat arī izmantot klēpjdatoru un vienkārši izlasīt tos seriālajā monitorā)
  5. Skice, kas izmanto sensoru un kaut kādā veidā parāda vērtības

Pirmkārt, jums ir jāpievieno moduļi un sensors kontrolierim. Es atstāšu LCD sarežģīto daļu, lai jūs varētu meklēt tīmeklī, un es tikai pastāstīšu, kā savienot sensoru.

Parasti šiem sensoriem ir trīs krāsaini vadi: melns, sarkans, dzeltens. Pirmie divi ir paredzēti enerģijai, bet trešais - datiem. Savienojiet melno ar GNN, sarkano ar Vcc (5V) un dzelteno pie analogās ieejas, pieņemsim, ka A0.

Tagad pievienojiet pretestību starp dzelteno un sarkano, lai pabeigtu savienojumus.

Pievienojiet arī LCD (es iesaku vienkāršu 16x2 LCD ar i2c savienojumu, lai kopā izmantotu tikai 4 vadus), un jūs esat pabeidzis ar vadiem un kabeļiem.

Tagad ļoti vienkārša skice:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Dallas Temperatūras sensors1 (& ourWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C LCD (0x27, 16, 2); pludiņš RawValue = 0;

void setup () {lcd.init (); lcd.fona apgaismojums (); sensors1.sākas (); sensors1.setResolution (11); } void loop () {sensor1.requestTemperatures (); pludiņš RawValue = sensors1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("1. sens."); lcd.print (RawValue, 1); }

Kā redzat, mēs izmantojam Dalasas temperatūras bibliotēku un LCD ekrānu ar i2c savienojumu.

Iestatīšanas laikā mēs sākam LCD un sensora darbību, un mēs vienkārši pieprasām temperatūru un saglabājam vērtību mainīgā RawValue, lai to parādītu LCD.

Ja vēlaties, lai tas būtu vienkāršāk, vienkārši izmantojiet seriālo monitoru ar šādu skici

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Dallas Temperatūras sensors1 (& ourWire1);

pludiņš RawValue = 0;

void setup () {

kavēšanās (1000); Sērijas sākums (9600); sensors1.sākas (); sensors1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); pludiņš RawValue = sensors1.getTempCByIndex (0); Serial.print ("1. sens."); Serial.println (RawValue, 1); }

Tagad sekojiet man projekta kodolā, lai kalibrētu sensoru.

2. solis: divu punktu kalibrēšana

Divu punktu kalibrēšana
Divu punktu kalibrēšana
Divu punktu kalibrēšana
Divu punktu kalibrēšana
Divu punktu kalibrēšana
Divu punktu kalibrēšana

Vispirms kaut kas jāzina

Lai kalibrētu termo sensoru, jums ir jāmēra kaut kas tāds, par kuru jūs zināt temperatūru. Vienkāršs veids, kā to izdarīt mājās, ir verdoša ūdens un ledus kušanas vanna, ko sauc arī par "trīspunktu" vannu. Šajos gadījumos mēs zinām, ka ūdens vārās 100 ° C jūras līmenī. Paturiet prātā, ka, lai veiktu precīzu mērījumu, jums jāzina jūsu augstums un jāaprēķina pareizā viršanas temperatūra.

To var pārbaudīt šeit!

Godīgi sakot, jums jāpārbauda atmosfēras spiediens, nevis augstums. Bet šāds veids ir pietiekami precīzs.

Trīspunktu vanna jeb ledus vanna ir temperatūra, kurā ūdens pastāv trijos cietos, šķidros un gāzveida stāvokļos, šī temperatūra ir 0, 01 ° C. Vienkāršošanai mēs izmantosim 0 ° C.

Zinot sensora nolasīto vērtību un vērtību, kādai tai vajadzētu būt, mēs varam pārveidot DS18B20 neapstrādāto vērtību par kaut ko pareizāku.

PIEZĪME. Jūs varat izmantot arī lielāku temperatūru, lai kalibrētu sensoru, vienkārši ievietojot to kādā citā vielā, par kuras viršanas temperatūru jūs zināt, piemēram, ēteris (35 ° C), pentāns (36, 1 ° C), acetons (56 ° C) vai Etanols (78, 37 ° C), bet šīs viršanas vielas rada ļoti viegli uzliesmojošas gāzes! Tā nedari!

Verdošs ūdens:

Ielejiet katliņā ūdeni un uzkarsējiet, līdz tas vārās (veidojas gāzes burbuļi un ūdens maisās). Iegremdējiet sensoru vietā, kur tas nepieskaras tikai ūdenim. Pagaidiet dažas minūtes un izlasiet LCD vai sērijas monitoru

Temperatūrai vajadzētu palikt nemainīgai vismaz vienu minūti. Ja tā, pierakstiet šo vērtību. Tā ir jūsu: RawHigh vērtība.

Trīspunktu vanna:

Tagad paņemiet lielu glāzi (jums nav nepieciešams nekas milzīgs, ne katls) un piepildiet to līdz robežai ar ledus gabaliņiem. Mēģiniet izmantot maza izmēra ledus gabaliņus. Tagad piepildiet 80% glāzes ar aukstu ūdeni. Ja svira mēģina nolaisties, uzpildiet to ar ledu.

Tagad ievietojiet sensoru ūdens/ledus lietā un pagaidiet pusotru minūti. Izlasiet temperatūru, kurai vajadzētu palikt nemainīgai vismaz 30 sekundes. Ja tā, pierakstiet to, lai tā būtu jūsu RawLow vērtība.

3. darbība. Izmantojiet iegūtās vērtības pareizajā veidā

Tātad, tagad jums ir dažas svarīgas vērtības:

  • RawHigh
  • RawLow
  • AtsauceAugsta
  • ReferenceLow

Atsauces vērtība acīmredzami ir 99,9 ° C verdošam ūdenim (manā augstumā 22 m) un 0 ° C kūstošā ledus vannai. Tagad aprēķiniet šo vērtību diapazonus:

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

Tagad jūs esat gatavs izmantot šo sensoru jebkurā citā projektā, pārliecinoties, ka tas sniegs pareizu mērījumu. Kā? Izmantojot šeit iegūto vērtību projektā, kuru izveidosit ar šo sensoru.

Turpmākajā projektā jums būs jāizmanto šajā lasītās vērtības, un es iesaku to darīt, izmantojot tos pašus nosaukumus, kurus es šeit izmantoju.

Deklarējiet mainīgos pirms sadaļas void setup () šādi:

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

Katru reizi, kad izmantojat sensoru, CorrectedValue aprēķināšanai varat izmantot šādu formulu:

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

RawValue acīmredzami ir sensora nolasījums.

Tieši tā!

Tagad jūs zināt, kā kalibrēt DS18B20 sensoru vai jebkuru citu sensoru, ko izmantosit! Izklaidējieties!

Ieteicams: