Sadržaj:

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

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

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

ODRICANJE:

Uređaj koji vidite na slikama koristi se u drugom projektu kao termostat za proces razvoja filma. Taj projekt možete pronaći ovdje. 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 popisa onoga što vam treba:

  1. Arduino UNO (ili MEGA)
  2. Senzori (i) DS18B20
  3. 4kOhm - 5kOhm otpor (koristio sam 5k1Ohm)
  4. LCD zaslon za čitanje vrijednosti (možete koristiti i prijenosno računalo 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š upravljač. 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 bojene ž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 16x2 LCD s i2c vezom za korištenje samo 4 žice) i gotovi ste sa žicama i kabelima.

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 zaslon s 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 kalibriranje 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 što znate temperaturu. Jednostavan način da to učinite kod kuće je pomoću kipuće vode i kade s topljenim ledom, koja se naziva i kupka s "tri točke". U tim slučajevima znamo da voda ključa na 100 ° C na razini mora. Imajte na umu da biste za precizno mjerenje trebali znati svoju nadmorsku visinu i tamo izračunati odgovarajuću temperaturu vrenja.

Ovdje možete provjeriti!

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

Kupelj s tri točke ili ledena kupelj je temperatura pri kojoj voda postoji u tri stanja: kruto, tekuće i plinsko, 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 promijeniti sirovu vrijednost DS18B20 u nešto ispravnije.

NAPOMENA: također možete upotrijebiti više temperature za kalibriranje senzora samo stavljajući ga u neku drugu tvar za koju znate vrelište, poput etera (35 ° C), pentana (36, 1 ° C), acetona (56 ° C) ili Etanol (78, 37 ° C), ali te vrele tvari proizvode visoko zapaljive plinove! Dakle, nemojte to raditi!

Kipuća voda:

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

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

Kupka s tri točke:

Sada uzmite veliku čašu (ne trebate ništa ogromno niti lonac) i napunite je do ruba 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 to kao svoju vrijednost RawLow.

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

Dakle, sada imate neke važne vrijednosti:

  • RawHigh
  • RawLow
  • ReferencaHigh
  • Referentno nisko

Referentna vrijednost je očito 99,9 ° C za kipuću vodu (na mojoj nadmorskoj visini od 22 m), a 0 ° C za ledenu kupelj 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 iste nazive koje 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;

Svaki put kad koristite 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 kalibrirati svoj DS18B20 senzor ili bilo koji drugi senzor koji ćete koristiti! Zabavi se!

Preporučeni: