Obsah:
- Krok 1: Připravte své zařízení
- Krok 2: Dvoubodová kalibrace
- Krok 3: Použijte hodnoty, které získáte správným způsobem
Video: Kalibrace senzoru DS18B20 s Arduino UNO: 3 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
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í
Zde je seznam toho, co potřebujete:
- Arduino UNO (nebo MEGA)
- Snímače DS18B20
- 4kOhm - 5kOhm odpor (použil jsem 5k1Ohm)
- LCD obrazovka pro čtení hodnot (můžete také použít notebook a přečíst je na sériovém monitoru)
- 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
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:
KALIBRACE SNÍMAČE ARDUINO ORP: 3 kroky
KALIBRACE SENZORU ARDUINO ORP: V tomto tutoriálu budeme kalibrovat snímač EZO ORP (potenciál redukce oxidace) společnosti Atlas Scientific pomocí teorie Arduino Uno.CALIBRATION THEORY Nejdůležitější součástí kalibrace je sledování hodnot během procesu kalibrace. Je snadné
KALIBRACE SNÍMAČE KYSLÍKU ARDUINO ROZPOUŠTĚNO: 4 kroky
KALIBRACE SNÍMAČE KYBRUSU ARDUINO ROZPOUŠTĚNÉ Kyslíkem: V tomto tutoriálu budeme kalibrovat senzor rozpuštěného kyslíku (D.O) Atlas Scientific pomocí teorie Arduino Uno. CALIBRATION THEORY Nejdůležitější částí kalibrace je sledování naměřených hodnot během procesu kalibrace. Kalibrovat je nejjednodušší
Postup kalibrace Atlas Scientific EZO PH: 3 kroky
Postup kalibrace Atlas Scientific EZO PH: Tento návod popisuje postup kalibrace. Předpokládá se, že uživatel pracuje s hardwarem a kódem a je nyní připraven kalibrovat senzor. Teorie Nejdůležitější částí kalibrace je sledování hodnot během kalibrace
Snadná kalibrace magnetometru z tvrdého a měkkého železa: 6 kroků (s obrázky)
Snadná kalibrace magnetometru tvrdým a měkkým železem: Pokud je vaším koníčkem RC, drony, robotika, elektronika, rozšiřování reality nebo podobně, dříve nebo později se setkáte s úkolem kalibrace magnetometru. Každý modul magnetometru musí být kalibrován, protože měření magnetického pole podrobuje
Metody detekce vodní hladiny Arduino pomocí ultrazvukového senzoru a Funduino vodního senzoru: 4 kroky
Metody detekce hladiny vody Arduino pomocí ultrazvukového senzoru a Funduino senzoru vody: V tomto projektu vám ukážu, jak vytvořit levný detektor vody pomocí dvou metod: 1. Ultrazvukový senzor (HC-SR04) .2. Senzor vody Funduino