Kazalo:

Umerjanje senzorja DS18B20 z Arduino UNO: 3 koraki (s slikami)
Umerjanje senzorja DS18B20 z Arduino UNO: 3 koraki (s slikami)

Video: Umerjanje senzorja DS18B20 z Arduino UNO: 3 koraki (s slikami)

Video: Umerjanje senzorja DS18B20 z Arduino UNO: 3 koraki (s slikami)
Video: Удаленно контролировать энергопотребление дома | ПЗЭМ-004Т | Облако Интернета вещей RemoteXY 2024, Julij
Anonim
Umerjanje senzorja DS18B20 z Arduino UNO
Umerjanje senzorja DS18B20 z Arduino UNO
Umerjanje senzorja DS18B20 z Arduino UNO
Umerjanje senzorja DS18B20 z Arduino UNO
Umerjanje senzorja DS18B20 z Arduino UNO
Umerjanje senzorja DS18B20 z Arduino UNO

ODGOVORNOST:

Naprava, ki jo vidite na slikah, se v drugem projektu uporablja kot termostat za proces razvoja filma. Ta projekt najdete tukaj. Če želite umeriti senzor ali več kot enega, boste potrebovali samo tisto, kar boste našli v tem projektu, nič več in tudi precej osnovno! Pojdimo!

1. korak: Pripravite napravo

Pripravite svojo napravo
Pripravite svojo napravo

Tu je seznam tega, kar potrebujete:

  1. Arduino UNO (ali MEGA)
  2. Senzor (ji) DS18B20
  3. 4kOhm - 5kOhm upor (uporabil sem 5k1Ohm)
  4. LCD zaslon za branje vrednosti (lahko uporabite tudi prenosni računalnik in jih preprosto preberete na serijskem monitorju)
  5. Skica, ki uporablja senzor in nekako prikazuje vrednosti

Najprej morate svoje module in senzor priključiti na krmilnik. Zapleten del LCD -ja vam bom pustil za brskanje po spletu in povedal vam bom le, kako priključite senzor.

Običajno imajo ti senzorji tri barvne žice: črno, rdečo, rumeno. Prvi dve sta za energijo, tretja pa za podatke. Črno priključite na GNN, rdečo na Vcc (5V) in rumeno na analogni vhod, recimo A0.

Zdaj povežite upor med rumeno in rdečo, da dokončate povezave.

Priključite tudi LCD (predlagam preprost 16x2 LCD s povezavo i2c za uporabo samo 4 žic) in končali ste z žicami in kabli.

Zdaj skica, ki je zelo preprosta:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Temperaturni senzor Dallas1 (& ourWire1); #include "LiquidCrystal_I2C.h"

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

void setup () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Občut. 1"); lcd.print (RawValue, 1); }

Kot lahko vidite, uporabljamo Dallas Temperature knjižnico in LCD zaslon s povezavo i2c.

V nastavitvi aktiviramo LCD in senzor, v zanki pa preprosto zahtevamo temperaturo in vrednost shranimo v spremenljivko RawValue, da jo prikaže na LCD -prikazovalniku.

Če želite biti enostavnejši, uporabite serijski monitor z naslednjo skico

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Temperaturni senzor Dallas1 (& ourWire1);

float RawValue = 0;

void setup () {

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

}

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

Sledite mi v jedru projekta za umerjanje senzorja.

Korak: Kalibracija v dveh točkah

Dvotočkovna kalibracija
Dvotočkovna kalibracija
Dvotočkovna kalibracija
Dvotočkovna kalibracija
Dvotočkovna kalibracija
Dvotočkovna kalibracija

Najprej je treba nekaj vedeti

Za umerjanje termo-senzorja morate izmeriti nekaj, za kar poznate temperaturo. Enostaven način, da to storite doma, je uporaba vrele vode in kopel talilnega ledu, imenovana tudi kopel s "tremi točkami". V teh primerih vemo, da voda vre na 100 ° C na morski gladini. Upoštevajte, da morate za natančno meritev poznati svojo nadmorsko višino in izračunati ustrezno temperaturo vrelišča.

To lahko preverite tukaj!

Če sem iskren, morate preveriti atmosferski tlak in ne nadmorske višine. Toda ta način je dovolj natančen.

Kopel s tremi točkami ali ledena kopel je temperatura, pri kateri voda obstaja v treh trdnih, tekočih in plinskih stanjih, ta temperatura je 0, 01 ° C. Za poenostavitev bomo uporabili 0 ° C.

Če poznamo vrednost, ki jo odčita senzor, in vrednost, ki bi morala biti, lahko surovo vrednost DS18B20 spremenimo v nekaj pravilnejšega.

OPOMBA: senzor lahko uporabite tudi za večjo temperaturo, če ga vstavite v kakšno drugo snov, za katero poznate vrelišče, na primer eter (35 ° C), pentan (36, 1 ° C), aceton (56 ° C) ali Etanol (78, 37 ° C), vendar te vrele snovi proizvajajo visoko vnetljive pline! Torej ne naredi tega!

Vrela voda:

V lonec nalijte nekaj vode in jo segrevajte, dokler ne zavre (nastajajo mehurčki plina in voda se meša). Senzor potopite tja, kjer se ne dotika ničesar razen vode. Počakajte nekaj minut in preberite LCD ali serijski monitor

Temperatura mora ostati enaka vsaj eno minuto. Če je tako, zapišite to vrednost. To je vaša vrednost: RawHigh.

Kopel s tremi točkami:

Zdaj vzemite velik kozarec (ne potrebujete ničesar ogromnega in lonca) in ga do meje napolnite s kockami ledu. Poskusite uporabiti majhne kocke ledu. Zdaj napolnite 80% kozarca s hladno vodo. Napolnite z ledom, če se ročica spusti.

Zdaj postavite senzor v vodo/led in počakajte minuto in pol. Preberite temperaturo, ki mora ostati enaka vsaj 30 sekund. Če je tako, zapišite, da je to vaša vrednost RawLow.

3. korak: Uporabite vrednosti, ki jih dobite na pravi način

Torej, zdaj imate nekaj pomembnih vrednot:

  • RawHigh
  • RawLow
  • ReferencaHigh
  • Referenca Nizka

Referenčna vrednost je očitno 99,9 ° C za vrelo vodo (na moji nadmorski višini 22 m) in 0 ° C za taljeno ledeno kopel. Zdaj izračunajte razpone za te vrednosti:

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

Zdaj ste pripravljeni za uporabo tega senzorja v katerem koli drugem projektu, saj ste prepričani, da vam bo omogočil pravo meritev. Kako? Z uporabo vrednosti, ki ste jo dobili v projektu, boste ustvarili s tem senzorjem.

V svojem prihodnjem projektu boste morali uporabiti vrednosti, ki ste jih prebrali v tem, in predlagam, da to storite z istimi imeni, ki sem jih uporabil tukaj.

Spremenljivke razglasite pred razdelkom void setup () takole:

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

Pri vsaki uporabi senzorja lahko za izračun CorrectedValue uporabite naslednjo formulo:

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

RawValue je očitno odčitavanje senzorja.

To je to!

Zdaj veste, kako umeriti senzor DS18B20 ali kateri koli drug senzor, ki ga boste uporabili! Zabavaj se!

Priporočena: