Cuprins:
- Pasul 1: Pregătiți-vă dispozitivul
- Pasul 2: Calibrare în două puncte
- Pasul 3: Folosiți valorile pe care le obțineți în modul corect
Video: Calibrarea senzorului DS18B20 cu Arduino UNO: 3 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
DISCLAIMER:
Dispozitivul pe care îl vedeți în imagini este utilizat într-un alt proiect ca un termostat pentru procesul de dezvoltare a filmului. Puteți găsi acel proiect aici. Pentru a calibra un senzor sau mai mult de unul, veți avea nevoie doar de ceea ce veți găsi în acest proiect, nimic mai mult și, de asemenea, este destul de simplu! Să mergem!
Pasul 1: Pregătiți-vă dispozitivul
Iată o listă cu ceea ce aveți nevoie:
- Arduino UNO (sau MEGA)
- Senzori DS18B20
- 4kOhm - rezistență 5kOhm (am folosit un 5k1Ohm)
- Ecran LCD pentru a citi valorile (puteți utiliza și un laptop și le puteți citi doar pe un monitor serial)
- O schiță care folosește senzorul și arată cumva valorile
În primul rând trebuie să vă conectați modulele și senzorul la controler. Voi lăsa partea complicată a ecranului LCD pentru ca dvs. să căutați pe web și vă voi spune doar cum să conectați senzorul.
De obicei, acei senzori vin cu trei fire colorate: negru, roșu, galben. Primele două sunt pentru energie și a treia este pentru date. Conectați negru la GNN, roșu la Vcc (5V) și galben la o intrare analogică, să zicem A0.
Acum conectați rezistența dintre galben și roșu pentru a finaliza conexiunile.
Conectați și LCD-ul (vă sugerez un LCD simplu de 16x2 cu conexiune i2c pentru a utiliza doar 4 fire în total) și ați terminat cu fire și cabluri.
Acum schița care este super simplă:
#include „OneWire.h”
#includeți "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1); #include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;
void setup () {lcd.init (); lcd.backlight (); senzor1.begin (); sensor1.setResolution (11); } void loop () {senzor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }
După cum puteți vedea, utilizăm biblioteca Dallas Temperature și un ecran LCD cu conexiune i2c.
În configurare începem LCD și senzor și în buclă solicităm pur și simplu temperatura și stocăm valoarea în variabila RawValue pentru ao afișa pe LCD.
Dacă doriți să fie mai simplu, utilizați monitorul serial cu următoarea schiță
#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); DallasTemperature sensor1 (& ourWire1);
float RawValue = 0;
configurare nulă () {
întârziere (1000); Serial.begin (9600); senzor1.begin (); sensor1.setResolution (11);
}
bucla void () {senzor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }
Acum urmează-mă în centrul proiectului pentru a calibra senzorul.
Pasul 2: Calibrare în două puncte
Ceva de știut mai întâi
Pentru a calibra un termosensor, trebuie să măsurați ceva din care știți temperatura. Modul simplu de a face acasă este utilizarea apei clocotite și a unei băi de gheață care se topește, numită și o baie cu „punct triplu”. În aceste cazuri știm că apa fierbe la 100 ° C la nivelul mării. Rețineți că, pentru a face o măsurare precisă, ar trebui să vă cunoașteți altitudinea și să calculați temperatura de fierbere corespunzătoare acolo.
O puteți verifica aici!
Pentru a fi sincer, ar trebui să verificați presiunea atmosferică și nu altitudinea. Dar acest mod este suficient de corect.
Baia cu trei puncte sau baia de gheață este temperatura la care există apă în cele trei stări solide, lichide și gaz, temperatura respectivă fiind de 0, 01 ° C. Vom folosi, pentru a simplifica, 0 ° C.
Cunoscând valoarea citită de senzor și valoarea care ar trebui să fie, putem modifica valoarea brută a DS18B20 în ceva mai corect.
NOTĂ: ați putea utiliza, de asemenea, mai multă temperatură pentru a calibra senzorul, doar punându-l într-o altă substanță din care cunoașteți punctul de fierbere, cum ar fi eter (35 ° C), pentan (36, 1 ° C), acetonă (56 ° C) sau Etanol (78, 37 ° C), dar acele substanțe în fierbere produc gaze puternic inflamabile! Deci, nu o faceți!
Apă clocotită:
Puneți puțină apă într-o oală și încălziți-o până fierbe (se dezvoltă bule de gaz și apa se agită singură). Scufundați senzorul acolo unde nu atinge altceva decât apa. Așteptați câteva minute și citiți ecranul LCD sau monitorul serial
Temperatura ar trebui să rămână aceeași timp de cel puțin un minut. Dacă da, scrieți această valoare. Aceasta este valoarea dvs.: RawHigh.
Baie cu trei puncte:
Acum ia un pahar mare (nu ai nevoie de nimic uriaș și nici de oală) și umple-l până la margine cu cuburi de gheață. Încercați să utilizați cuburi de gheață de dimensiuni mici. Acum umpleți 80% din pahar cu apă rece. Umpleți cu gheață dacă pârghia încearcă să coboare.
Acum puneți senzorul în interiorul apei / gheaței și așteptați un minut și jumătate. Citiți temperatura care ar trebui să rămână aceeași timp de cel puțin 30 de secunde. Dacă da, scrieți-l, ca valoare RawLow.
Pasul 3: Folosiți valorile pe care le obțineți în modul corect
Deci, acum aveți câteva valori importante:
- RawHigh
- RawLow
- Referință Înaltă
- Referință Low
Valoarea referințelor este evident 99,9 ° C pentru apa care fierbe (la altitudinea mea de 22m) și 0 ° C pentru baia de gheață care se topește. Acum calculați intervalele acestor valori:
- RawRange = RawHigh - RawLow
- ReferenceRange = ReferenceHigh - ReferenceLow
Acum sunteți pregătiți să utilizați senzorul în orice alt proiect, fiind sigur că vă va oferi o măsurare corectă. Cum? Folosind valoarea obținută aici în proiect, veți crea cu senzorul respectiv.
În viitorul dvs. proiect va trebui să utilizați valorile pe care le-ați citit în acesta și vă sugerez să faceți acest lucru folosind aceleași nume pe care le-am folosit aici.
Declarați variabilele înainte de secțiunea void setup () la fel:
float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;
De fiecare dată când veți utiliza senzorul, puteți utiliza următoarea formulă pentru a calcula Valoarea corectată:
float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;
RawValue este, evident, citirea senzorului.
Asta e!
Acum știți cum să vă calibrați senzorul DS18B20 sau orice alt senzor pe care îl veți folosi! A se distra!
Recomandat:
CALIBRAREA SENZORULUI PH ARDUINO: 7 pași
CALIBRAREA SENZORULUI PH ARDUINO: În acest tutorial, vom calibra senzorul de pH EZO al Atlas Scientific folosind Arduino Uno. TEORIA CALIBRĂRII Cea mai importantă parte a calibrării este urmărirea citirilor în timpul procesului de calibrare. Cel mai simplu este să calibrați dispozitivul în
Calibrarea senzorului de umiditate a solului: 5 pași
Calibrarea senzorului de umiditate a solului: Există multe contoare de umiditate a solului pe piață pentru a ajuta grădinarul să decidă când să-și udă plantele. Din păcate, apucarea unei mână de sol și inspectarea culorii și texturii este la fel de fiabilă ca multe dintre aceste gadgeturi! Unele sondaje chiar registrează
CALIBRAREA SENZORULUI ORP ARDUINO: 3 pași
CALIBRARE ARDUINO ORP SENSOR: În acest tutorial, vom calibra senzorul EZO ORP (potențial de reducere a oxidării) al Atlas Scientific folosind Arduino Uno. Este mai ușor
CALIBRAREA SENZORULUI DE OXIGEN DIZOLVAT ARDUINO: 4 pași
CALIBRAREA SENZORULUI DE OXIGEN DIZOLVAT ARDUINO: În acest tutorial, vom calibra senzorul de oxigen dizolvat (D.O) EZO al lui Atlas Scientific folosind Arduino Uno. Este cel mai ușor de calibrat
CALIBRAREA SENZORULUI DE SALINITATE ARDUINO: 9 pași
CALIBRARE A SENZORULUI DE SALINITATE ARDUINO: În acest tutorial, vom calibra senzorul EZO de salinitate / conductivitate K1.0 al lui Atlas Scientific folosind Arduino Uno. Este cel mai ușor să