Obsah:

Kalibrace senzoru DS18B20 s Arduino UNO: 3 kroky (s obrázky)
Kalibrace senzoru DS18B20 s Arduino UNO: 3 kroky (s obrázky)

Video: Kalibrace senzoru DS18B20 s Arduino UNO: 3 kroky (s obrázky)

Video: Kalibrace senzoru DS18B20 s Arduino UNO: 3 kroky (s obrázky)
Video: Как использовать лазерный передатчик и лазерный датчик для Arduino 2024, Listopad
Anonim
Kalibrace senzoru DS18B20 s Arduino UNO
Kalibrace senzoru DS18B20 s Arduino UNO
Kalibrace senzoru DS18B20 s Arduino UNO
Kalibrace senzoru DS18B20 s Arduino UNO
Kalibrace senzoru DS18B20 s Arduino UNO
Kalibrace senzoru DS18B20 s Arduino UNO

ODMÍTNUTÍ:

Zařízení, které vidíte na obrázcích, se používá v jiném projektu jako termostat pro proces vývoje filmu. Tento projekt najdete zde. Abyste mohli kalibrovat senzor nebo více než jeden, budete potřebovat právě to, co najdete v tomto projektu, nic víc a je to také docela základní! Pojďme!

Krok 1: Připravte své zařízení

Připravte své zařízení
Připravte své zařízení

Zde je seznam toho, co potřebujete:

  1. Arduino UNO (nebo MEGA)
  2. Snímače DS18B20
  3. 4kOhm - 5kOhm odpor (použil jsem 5k1Ohm)
  4. LCD obrazovka pro čtení hodnot (můžete také použít notebook a přečíst je na sériovém monitoru)
  5. Náčrt, který používá senzor a nějak ukazuje hodnoty

Nejprve musíte své moduly a senzor připojit k ovladači. Složitou část LCD nechám na vyhledávání na webu a řeknu vám jen, jak připojit senzor.

Obvykle jsou tyto senzory dodávány se třemi barevnými vodiči: černý, červený, žlutý. První dva jsou pro energii a třetí jsou pro data. Připojte černý k GNN, červený k Vcc (5V) a žlutý na analogový vstup, řekněme A0.

Nyní připojte odpor mezi žlutou a červenou a dokončete připojení.

Zapojte také LCD (doporučuji jednoduchý 16x2 LCD s i2c připojením k použití pouze 4 vodičů) a máte hotovo s kabely a kabely.

Nyní náčrt, který je super jednoduchý:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Senzor teploty Dallas1 (& ourWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;

neplatné nastavení () {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); }

Jak vidíte, používáme teplotní knihovnu Dallas a LCD obrazovku s připojením i2c.

V nastavení aktivujeme LCD a senzor a ve smyčce jednoduše požadujeme teplotu a uložíme hodnotu do proměnné RawValue, abychom ji mohli zobrazit na LCD.

Pokud to chcete mít jednodušší, použijte sériový monitor s následujícím náčrtem

#include "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Senzor teploty Dallas1 (& ourWire1);

float RawValue = 0;

neplatné nastavení () {

zpoždění (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); }

Nyní mě následujte v jádru projektu kalibrovat senzor.

Krok 2: Dvoubodová kalibrace

Dvoubodová kalibrace
Dvoubodová kalibrace
Dvoubodová kalibrace
Dvoubodová kalibrace
Dvoubodová kalibrace
Dvoubodová kalibrace

Nejprve něco vědět

Ke kalibraci termosenzoru musíte změřit něco, o čem znáte teplotu. Jednoduchý způsob, jak to udělat doma, je použít vroucí vodu a lázeň tajícího ledu, nazývanou také „lázeň s třemi body“. V takových případech víme, že voda vře při teplotě 100 ° C na hladině moře. Mějte na paměti, že k přesnému měření byste měli znát svou nadmořskou výšku a vypočítat tam správnou teplotu varu.

Můžete to zkontrolovat zde!

Abych byl upřímný, měli byste zkontrolovat atmosférický tlak a ne nadmořskou výšku. Ale ten způsob je dostatečně přesný.

Tříbodová lázeň neboli ledová lázeň je teplota, při které voda existuje ve třech stavech pevné látky, kapaliny a plynu, přičemž tato teplota je 0, 01 ° C. Pro zjednodušení použijeme 0 ° C.

S vědomím hodnoty, kterou snímač přečetl, a hodnoty, která by měla být, můžeme upravit základní hodnotu DS18B20 na něco správnějšího.

POZNÁMKA: Můžete také použít více teploty ke kalibraci senzoru, pouze vložením do jiné látky, o které znáte bod varu, jako je ether (35 ° C), Pentan (36, 1 ° C), aceton (56 ° C) nebo Ethanol (78, 37 ° C), ale tyto vroucí látky produkují vysoce hořlavé plyny! Tak to nedělej!

Vařící voda:

Nalijte trochu vody do hrnce a zahřívejte, dokud se nevaří (vyvíjejí se bubliny plynu a voda se sama míchá). Ponořte senzor tak, aby se nedotýkal ničeho jiného než vody. Počkejte několik minut a přečtěte si LCD nebo sériový monitor

Teplota by měla zůstat stejná po dobu nejméně jedné minuty. Pokud ano, zapište si tuto hodnotu. To je vaše: RawHigh hodnota.

Tříbodová koupel:

Nyní vezměte velkou sklenici (nepotřebujete nic obrovského ani hrnec) a naplňte ji až k hranici kostkami ledu. Zkuste použít malé kostky ledu. Nyní naplňte 80% sklenice studenou vodou. Pokud se páčka pokusí jít dolů, doplňte led.

Nyní vložte senzor do vody/ledu a počkejte jednu a půl minuty. Odečtěte teplotu, která by měla zůstat stejná po dobu nejméně 30 sekund. Pokud ano, zapište si, že je to vaše hodnota RawLow.

Krok 3: Použijte hodnoty, které získáte správným způsobem

Takže teď máte několik důležitých hodnot:

  • RawHigh
  • RawLow
  • Reference Vysoká
  • Reference Nízká

Referenční hodnoty jsou zjevně 99,9 ° C pro vroucí vodu (v mé nadmořské výšce 22 m) a 0 ° C pro tající ledovou lázeň. Nyní vypočítejte rozsahy těchto hodnot:

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

Nyní jste připraveni používat tento senzor v jakémkoli jiném projektu, přičemž jste si jisti, že vám poskytne správné měření. Jak? Pomocí hodnoty, kterou jste zde získali v projektu, který s tímto senzorem vytvoříte.

Ve svém budoucím projektu budete muset použít hodnoty, které jste si přečetli v tomto, a doporučuji to udělat se stejnými názvy, jaké jsem použil zde.

Proměnné deklarujte před sekcí neplatné instalace () takto:

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

Než pokaždé, když použijete senzor, můžete pro výpočet CorrectedValue použít následující vzorec:

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

RawValue je zjevně čtení snímače.

A je to!

Nyní víte, jak kalibrovat senzor DS18B20 nebo jakýkoli jiný senzor, který použijete! Bavte se!

Doporučuje: