Sadržaj:

Kalibracija senzora DS18B20 sa Arduino UNO: 3 koraka (sa slikama)
Kalibracija senzora DS18B20 sa Arduino UNO: 3 koraka (sa slikama)

Video: Kalibracija senzora DS18B20 sa Arduino UNO: 3 koraka (sa slikama)

Video: Kalibracija senzora DS18B20 sa Arduino UNO: 3 koraka (sa slikama)
Video: Как использовать лазерный передатчик и лазерный датчик для Arduino 2024, Juli
Anonim
Kalibracija senzora DS18B20 sa Arduino UNO
Kalibracija senzora DS18B20 sa Arduino UNO
Kalibracija senzora DS18B20 sa Arduino UNO
Kalibracija senzora DS18B20 sa Arduino UNO
Kalibracija senzora DS18B20 sa Arduino UNO
Kalibracija senzora DS18B20 sa Arduino UNO

ODRICANJE ODGOVORNOSTI:

Uređaj koji vidite na slikama koristi se u drugom projektu kao termostat za proces razvoja filma. Taj projekat možete pronaći ovde. Da biste kalibrirali senzor ili više njih, trebat će vam samo ono što ćete pronaći u ovom projektu, ništa više, a i prilično je osnovno! Idemo!

Korak 1: Pripremite svoj uređaj

Pripremite svoj uređaj
Pripremite svoj uređaj

Evo spiska onoga što vam treba:

  1. Arduino UNO (ili MEGA)
  2. DS18B20 senzori (i)
  3. 4kOhm - 5kOhm otpor (koristio sam 5k1Ohm)
  4. LCD ekran za čitanje vrijednosti (možete koristiti i laptop i čitati ih samo na serijskom monitoru)
  5. Skica koja koristi senzor i prikazuje nekako vrijednosti

Prije svega morate spojiti svoje module i senzor na vaš kontroler. Ostavit ću vam komplicirani dio LCD -a za pretraživanje weba i samo ću vam reći kako spojiti senzor.

Obično ti senzori dolaze s tri obojene žice: crnom, crvenom, žutom. Prva dva su za energiju, a treća za podatke. Spojite crnu na GNN, crvenu na Vcc (5V) i žutu na analogni ulaz, recimo A0.

Sada spojite otpor između žute i crvene boje kako biste dovršili veze.

Uključite i LCD (predlažem jednostavan LCD ekran veličine 16x2 sa i2c vezom da biste koristili samo 4 žice) i završili ste sa žicama i kablovima.

Sada skica koja je super jednostavna:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Senzor temperature 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 ("Sens. 1"); lcd.print (RawValue, 1); }

Kao što vidite, koristimo Dallas Temperature Library i LCD ekran sa i2c vezom.

U postavkama pokrećemo LCD i senzor, a u petlji jednostavno zahtijevamo temperaturu i pohranjujemo vrijednost unutar varijable RawValue kako bismo je prikazali na LCD -u.

Ako želite pojednostaviti, samo upotrijebite serijski monitor sa sljedećom skicom

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

float RawValue = 0;

void setup () {

kašnjenje (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

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

Sada me slijedite u jezgri projekta za kalibraciju senzora.

Korak 2: Kalibracija u dvije točke

Kalibracija u dvije točke
Kalibracija u dvije točke
Kalibracija u dvije točke
Kalibracija u dvije točke
Kalibracija u dvije točke
Kalibracija u dvije točke

Nešto prvo treba znati

Da biste kalibrirali termo-senzor, morate izmjeriti nešto za šta znate temperaturu. Najjednostavniji način da to učinite kod kuće je upotreba ključale vode i kupka topljenog leda, koja se naziva i kupka sa „tri tačke“. U tim slučajevima znamo da voda ključa na 100 ° C na razini mora. Imajte na umu da za precizno mjerenje morate znati svoju nadmorsku visinu i tamo izračunati odgovarajuću temperaturu ključanja.

To možete provjeriti ovdje!

Da budem iskren, trebali biste provjeriti atmosferski tlak, a ne visinu. Ali taj način je dovoljno tačan.

Kupatilo sa tri tačke ili ledeno kupatilo je temperatura na kojoj voda postoji u tri čvrsta, tečna i gasovita stanja, ta temperatura je 0,01 ° C. Pojednostavljeno ćemo koristiti 0 ° C.

Znajući vrijednost koju senzor očitava i vrijednost koja bi trebala biti, možemo izmijeniti sirovu vrijednost DS18B20 u nešto ispravnije.

NAPOMENA: za kalibraciju senzora mogli biste koristiti i više temperature, stavljajući ga u neku drugu tvar za koju znate tačku ključanja, poput etera (35 ° C), pentana (36, 1 ° C), acetona (56 ° C) ili Etanol (78, 37 ° C), ali te ključale tvari proizvode visoko zapaljive plinove! Zato nemojte to raditi!

Ključala voda:

Stavite malo vode u lonac i zagrijavajte je dok ne proključa (razvijaju se mjehurići plina i voda se sama uzburka). Uronite senzor tamo gdje ne dodiruje ništa osim vode. Sačekajte nekoliko minuta i pročitajte LCD ili serijski monitor

Temperatura bi trebala ostati ista najmanje jedan minut. Ako je tako, zapišite tu vrijednost. To je vaša: RawHigh vrijednost.

Kupatilo sa tri tačke:

Sada uzmite veliku čašu (ne trebate ništa ogromno niti lonac) i napunite je do ivice kockicama leda. Pokušajte koristiti kockice leda male veličine. Sada napunite 80% čaše hladnom vodom. Napunite led ako se ručica pokuša spustiti.

Sada stavite senzor u vodu/led i pričekajte jednu i pol minutu. Očitajte temperaturu koja bi trebala ostati ista najmanje 30 sekundi. Ako je tako, zapišite da je to vaša vrijednost RawLow.

Korak 3: Iskoristite vrijednosti koje ste dobili na pravi način

Dakle, sada imate neke važne vrijednosti:

  • RawHigh
  • RawLow
  • ReferenceHigh
  • ReferenceLow

Referentna vrijednost je očito 99,9 ° C za kipuću vodu (na mojoj nadmorskoj visini od 22 m) i 0 ° C za ledeno kupatilo u topljenju. Sada izračunajte raspone za te vrijednosti:

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

Sada ste spremni za korištenje tog senzora u bilo kojem drugom projektu, sigurni ste da će vam dati pravo mjerenje. Kako? Koristeći vrijednost koju ste ovdje dobili u projektu koji ćete stvoriti s tim senzorom.

U svom budućem projektu morat ćete koristiti vrijednosti koje ste pročitali u ovom, a ja predlažem da to učinite koristeći ista imena koja sam koristio ovdje.

Proglasite varijable prije odjeljka void setup () upravo ovako:

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

Zatim, svaki put kada ćete koristiti senzor, možete koristiti sljedeću formulu za izračun CorrectedValue:

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

RawValue je očito očitanje senzora.

To je to!

Sada znate kako kalibrirati svoj DS18B20 senzor ili bilo koji drugi senzor koji ćete koristiti! Zabavi se!

Preporučuje se: