Sadržaj:
- Korak 1: Pripremite svoj uređaj
- Korak 2: Kalibracija u dvije točke
- Korak 3: Iskoristite vrijednosti koje ste dobili na pravi način
Video: Kalibracija senzora DS18B20 sa Arduino UNO: 3 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
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
Evo spiska onoga što vam treba:
- Arduino UNO (ili MEGA)
- DS18B20 senzori (i)
- 4kOhm - 5kOhm otpor (koristio sam 5k1Ohm)
- LCD ekran za čitanje vrijednosti (možete koristiti i laptop i čitati ih samo na serijskom monitoru)
- 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
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:
KALIBRACIJA ARDUINO PH SENZORA: 7 koraka
ARDUINO PH SENZORSKA KALIBRACIJA: U ovom vodiču ćemo kalibrirati EZO pH senzor Atlas Scientific -a koristeći Arduino Uno. TEORIJA KALIBRACIJE Najvažniji dio kalibracije je praćenje očitanja tokom procesa kalibracije. Najjednostavnije je kalibrirati uređaj u
Kalibracija senzora vlažnosti tla: 5 koraka
Kalibracija senzora vlažnosti tla: Na tržištu postoji mnogo mjerača vlažnosti tla koji pomažu vrtlaru da odluči kada će zalijevati svoje biljke. Nažalost, zgrabiti šaku zemlje i pregledati boju i teksturu jednako je pouzdano kao i mnogi od ovih naprava! Neke sonde se čak registruju
KALIBRACIJA ARDUINO ORP SENZORA: 3 koraka
ARDUINO ORP SENZORSKA KALIBRACIJA: U ovom ćemo vodiču kalibrirati Atlas Scientificov EZO ORP (oksidacijski redukcijski potencijal) senzor pomoću Arduino Uno. TEORIJA KALIBRACIJE Najvažniji dio kalibracije je praćenje očitanja tijekom procesa kalibracije. Lako je
Kalibracija senzora vlažnosti: 7 koraka
Kalibracija senzora vlažnosti: Imam 3 senzora koji mogu mjeriti relativnu vlažnost zraka: BME280, SHT21, DHT22. Naveli su sposobnost mjerenja s točnošću +/- 3% u rasponu 20 do 80%. Međutim, pri testiranju u istom stanju za 3 senzora, dobio sam 3 različita rezultata. Možda o
Laka kalibracija magnetometra od tvrdog i mekog željeza: 6 koraka (sa slikama)
Laka kalibracija magnetometra s tvrdim i mekim željezom: Ako vam je hobi RC, dronovi, robotika, elektronika, povećanje stvarnosti ili slično, prije ili kasnije ćete se suočiti sa zadatkom kalibracije magnetometra. Bilo koji modul magnetometra mora biti kalibriran jer mjerenje magnetskog polja podliježe