Cuprins:

Calibrarea senzorului DS18B20 cu Arduino UNO: 3 pași (cu imagini)
Calibrarea senzorului DS18B20 cu Arduino UNO: 3 pași (cu imagini)

Video: Calibrarea senzorului DS18B20 cu Arduino UNO: 3 pași (cu imagini)

Video: Calibrarea senzorului DS18B20 cu Arduino UNO: 3 pași (cu imagini)
Video: How to Interface Industrial Sensors with Arduino Nano 2024, Iulie
Anonim
Calibrarea senzorului DS18B20 cu Arduino UNO
Calibrarea senzorului DS18B20 cu Arduino UNO
Calibrarea senzorului DS18B20 cu Arduino UNO
Calibrarea senzorului DS18B20 cu Arduino UNO
Calibrarea senzorului DS18B20 cu Arduino UNO
Calibrarea senzorului DS18B20 cu Arduino UNO

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

Pregătiți-vă dispozitivul
Pregătiți-vă dispozitivul

Iată o listă cu ceea ce aveți nevoie:

  1. Arduino UNO (sau MEGA)
  2. Senzori DS18B20
  3. 4kOhm - rezistență 5kOhm (am folosit un 5k1Ohm)
  4. Ecran LCD pentru a citi valorile (puteți utiliza și un laptop și le puteți citi doar pe un monitor serial)
  5. 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

Calibrare în două puncte
Calibrare în două puncte
Calibrare în două puncte
Calibrare în două puncte
Calibrare în două puncte
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: