Obsah:

Kalibrácia senzora DS18B20 s Arduino UNO: 3 kroky (s obrázkami)
Kalibrácia senzora DS18B20 s Arduino UNO: 3 kroky (s obrázkami)

Video: Kalibrácia senzora DS18B20 s Arduino UNO: 3 kroky (s obrázkami)

Video: Kalibrácia senzora DS18B20 s Arduino UNO: 3 kroky (s obrázkami)
Video: Как подключить промышленные датчики к Arduino Nano 2024, November
Anonim
Kalibrácia senzora DS18B20 s Arduino UNO
Kalibrácia senzora DS18B20 s Arduino UNO
Kalibrácia senzora DS18B20 s Arduino UNO
Kalibrácia senzora DS18B20 s Arduino UNO
Kalibrácia senzora DS18B20 s Arduino UNO
Kalibrácia senzora DS18B20 s Arduino UNO

UPOZORNENIE:

Zariadenie, ktoré vidíte na obrázkoch, sa používa v inom projekte ako termostat pre proces vývoja filmu. Projekt nájdete tu. Aby ste mohli kalibrovať snímač alebo viac ako jeden, budete potrebovať presne to, čo nájdete v tomto projekte, nič viac a je to tiež celkom základné! Poďme!

Krok 1: Pripravte svoje zariadenie

Pripravte svoje zariadenie
Pripravte svoje zariadenie

Tu je zoznam toho, čo potrebujete:

  1. Arduino UNO (alebo MEGA)
  2. Snímače DS18B20
  3. 4kOhm - odpor 5kOhm (použil som 5k1Ohm)
  4. LCD obrazovka na čítanie hodnôt (môžete použiť aj prenosný počítač a načítať ich na sériovom monitore)
  5. Náčrt, ktorý používa senzor a nejako ukazuje hodnoty

Najprv musíte pripojiť svoje moduly a snímač k ovládaču. Zložitú časť displeja LCD nechám na vás, aby ste prehľadali web, a poviem vám len, ako pripojiť snímač.

Tieto senzory sa obvykle dodávajú s tromi farebnými vodičmi: čierny, červený, žltý. Prvé dve slúžia na energiu a tretie na dáta. Pripojte čiernu k GNN, červenú k Vcc (5V) a žltú na analógovom vstupe, povedzme A0.

Teraz prepojte odpor medzi žltou a červenou, aby ste spojenia dokončili.

Pripojte aj LCD (navrhujem jednoduchý 16x2 LCD s pripojením i2c, aby ste použili iba 4 vodiče) a káble a káble máte hotové.

Teraz je náčrt, ktorý je veľmi jednoduchý:

#include „OneWire.h“

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Snímač teploty Dallas1 (& 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); } prázdna slučka () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Ako vidíte, používame knižnicu teploty Dallas a LCD obrazovku s pripojením i2c.

V nastavení iniciujeme LCD a senzor a v slučke jednoducho požadujeme teplotu a hodnotu uložíme do premennej RawValue, aby sa zobrazila na LCD.

Ak to chcete mať ešte jednoduchšie, stačí použiť sériový monitor s nasledujúcim náčrtom

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Snímač teploty Dallas1 (& ourWire1);

float RawValue = 0;

neplatné nastavenie () {

oneskorenie (1000); Serial.begin (9600); senzor1.begin (); sensor1.setResolution (11);

}

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

Teraz ma nasledujte v jadre projektu kalibrácie senzora.

Krok 2: Dvojbodová kalibrácia

Dvojbodová kalibrácia
Dvojbodová kalibrácia
Dvojbodová kalibrácia
Dvojbodová kalibrácia
Dvojbodová kalibrácia
Dvojbodová kalibrácia

Najprv niečo vedieť

Na kalibráciu tepelného senzora musíte zmerať niečo, o čom poznáte teplotu. Jednoduchý spôsob, ako to urobiť doma, je použitie vriacej vody a kúpeľa topiaceho sa ľadu, nazývaného tiež kúpeľ „s tromi bodmi“. V tých prípadoch vieme, že voda vrie pri teplote 100 ° C na hladine mora. Majte na pamäti, že na presné meranie by ste mali poznať svoju nadmorskú výšku a vypočítať tam správnu teplotu varu.

Môžete to skontrolovať tu!

Ak chcete byť úprimný, mali by ste kontrolovať atmosférický tlak a nie nadmorskú výšku. Ale tento spôsob je dostatočne presný.

Trojbodový kúpeľ alebo ľadový kúpeľ je teplota, pri ktorej voda existuje v troch stavoch tuhej, kvapalnej a plynnej, pričom táto teplota je 0, 01 ° C. Na zjednodušenie použijeme 0 ° C.

Keď poznáme hodnotu, ktorú snímač prečítal, a hodnotu, ktorá by mala byť, môžeme surovú hodnotu DS18B20 upraviť na niečo správnejšie.

POZNÁMKA: Na kalibráciu senzora môžete použiť aj väčšiu teplotu, stačí ho vložiť do inej látky, o ktorej poznáte bod varu, ako je éter (35 ° C), pentán (36, 1 ° C), acetón (56 ° C) alebo Etanol (78, 37 ° C), ale tieto vriace látky produkujú vysoko zápalné plyny! Tak to nerob!

Vriaca voda:

Do hrnca dajte trochu vody a zohrievajte ho, kým nezovrie (vyvíjajú sa bublinky plynu a voda sa sama mieša). Ponorte senzor tak, aby sa nedotýkal ničoho iného než vody. Počkajte pár minút a prečítajte si LCD alebo sériový monitor

Teplota by mala zostať rovnaká najmenej jednu minútu. Ak je to tak, zapíšte si túto hodnotu. To je vaša: RawHigh hodnota.

Trojbodový kúpeľ:

Teraz vezmite veľký pohár (nepotrebujete nič obrovské ani hrniec) a naplňte ho po okraj kockami ľadu. Skúste použiť malé kocky ľadu. Teraz naplňte 80% pohára studenou vodou. Ak sa páčka pokúsi dostať dole, doplňte ľad.

Teraz vložte senzor do veci voda/ľad a počkajte jednu a pol minúty. Prečítajte si teplotu, ktorá by mala zostať rovnaká najmenej 30 sekúnd. Ak je to tak, napíšte to tak, že je to vaša hodnota RawLow.

Krok 3: Využite hodnoty, ktoré získate správnym spôsobom

Takže teraz máte niekoľko dôležitých hodnôt:

  • RawHigh
  • RawLow
  • Referencia Vysoká
  • Referencia Nízka

Referenčné hodnoty sú očividne 99,9 ° C pre vriacu vodu (v mojej nadmorskej výške 22 m) a 0 ° C pre topiaci sa ľadový kúpeľ. Teraz vypočítajte rozsahy týchto hodnôt:

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

Teraz ste pripravení používať tento senzor v akomkoľvek inom projekte, pričom ste si istí, že vám poskytne správne meranie. Ako? Pomocou hodnoty, ktorú ste tu získali v projekte, vytvoríte pomocou tohto senzora.

Vo svojom budúcom projekte budete musieť použiť hodnoty, ktoré ste si prečítali v tomto, a navrhujem to urobiť pomocou rovnakých mien, aké som použil tu.

Deklarujte premenné pred sekciou neplatného nastavenia () takto:

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

Potom zakaždým, keď použijete senzor, môžete na výpočet CorrectedValue použiť nasledujúci vzorec:

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

RawValue je zrejme čítanie senzora.

To je všetko!

Teraz viete, ako kalibrovať snímač DS18B20 alebo iný snímač, ktorý použijete! Bavte sa!

Odporúča: