Tartalomjegyzék:
- 1. lépés: Készítse elő a készüléket
- 2. lépés: Kétpontos kalibrálás
- 3. lépés: Használja a kapott értékeket a megfelelő módon
Videó: A DS18B20 érzékelő kalibrálása Arduino UNO -val: 3 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
NYILATKOZAT:
A képeken látható eszközt egy másik projektben termosztátként használják a filmfejlesztési folyamathoz. A projektet itt találja. Egy vagy több érzékelő kalibrálásához csak arra lesz szüksége, amit ebben a projektben talál, semmi másra, és ez is elég alap! Gyerünk!
1. lépés: Készítse elő a készüléket
Itt van egy lista, amire szüksége van:
- Arduino UNO (vagy MEGA)
- DS18B20 érzékelő (k)
- 4kOhm - 5kOhm ellenállás (én 5k1Ohm -ot használtam)
- LCD képernyő az értékek leolvasásához (laptopot is használhat, és csak soros monitoron olvashatja)
- Egy vázlat, amely az érzékelőt használja, és valahogy megmutatja az értékeket
Először is csatlakoztatnia kell a modulokat és az érzékelőt a vezérlőhöz. Hagyom az LCD bonyolult részét, hogy kereshessen az interneten, és csak elmondom, hogyan kell csatlakoztatni az érzékelőt.
Általában ezek az érzékelők három színes vezetékkel érkeznek: fekete, piros, sárga. Az első kettő az energiát, a harmadik az adatokat szolgálja. Csatlakoztassa a feketét a GNN -hez, a pirosat Vcc -hez (5V), a sárgát pedig analóg bemenethez, mondjuk az A0 -hoz.
Most csatlakoztassa az ellenállást a sárga és a piros közé a csatlakozások befejezéséhez.
Csatlakoztassa az LCD -t is (javaslom egy egyszerű 16x2 méretű LCD -t i2c csatlakozással, hogy összesen 4 vezetéket használjon), és kész a vezetékek és kábelek.
Most a vázlat, ami rendkívül egyszerű:
#include "OneWire.h"
#include "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 (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("1. érzékelés"); lcd.print (RawValue, 1); }
Mint látható, a Dallas Temperature könyvtárat és az i2c csatlakozással ellátott LCD képernyőt használjuk.
A beállítás során bekapcsoljuk az LCD -t és az érzékelőt, és a ciklusban egyszerűen kérjük a hőmérsékletet, és tároljuk az értéket a RawValue változóban, hogy megjelenjen az LCD -n.
Ha egyszerűbbé szeretné tenni a dolgot, használja a soros monitort az alábbi vázlattal
#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;
void setup () {
késleltetés (1000); Sorozat.kezdet (9600); sensor1.begin (); sensor1.setResolution (11);
}
void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("1. érzékelés"); Soros.println (Nyersérték, 1); }
Most kövessen engem a projekt magjában az érzékelő kalibrálásához.
2. lépés: Kétpontos kalibrálás
Először tudni kell valamit
A hőérzékelő kalibrálásához meg kell mérnie valamit, amiről ismeri a hőmérsékletet. Az egyszerű módja annak, hogy ezt otthon végezze, forró víz és olvadó jégfürdő használata, amelyet "hárompontos" fürdőnek is neveznek. Ezekben az esetekben tudjuk, hogy a víz 100 ° C -on forr a tenger szintjén. Ne feledje, hogy a pontos méréshez ismernie kell a magasságát, és ki kell számítania a megfelelő forráspontot.
Itt ellenőrizheti!
Őszintén szólva a légköri nyomást és nem a magasságot kell ellenőrizni. De ez az út elég pontos.
A hármaspontú fürdő vagy jégfürdő az a hőmérséklet, amelyen a víz szilárd, folyékony és gáz halmazállapotban van, ez a hőmérséklet 0, 01 ° C. Az egyszerűsítés érdekében 0 ° C -ot fogunk használni.
Ismerve az érzékelő által leolvasott értéket és az értéket, aminek lennie kell, módosíthatjuk a DS18B20 nyers értékét valami helyesebbre.
MEGJEGYZÉS: több hőmérsékletet is használhat az érzékelő kalibrálásához, csak olyan más anyagba helyezve, amelynek forráspontját ismeri, például étert (35 ° C), pentánt (36, 1 ° C), acetont (56 ° C) vagy Etanol (78, 37 ° C), de ezek a forrásban lévő anyagok erősen gyúlékony gázokat termelnek! Szóval ne tedd!
Forrásban lévő víz:
Öntsön vizet egy edénybe, és forralja fel, amíg fel nem forr (gázbuborékok keletkeznek, és a víz magától felkavarta). Merítse az érzékelőt olyan helyre, ahol nem érint semmit, csak vizet. Várjon néhány percet, és olvassa el az LCD -t vagy a soros monitort
A hőmérsékletnek legalább egy percig változatlannak kell maradnia. Ha igen, írja le ezt az értéket. Ez a te: RawHigh érték.
Hárompontos fürdő:
Most vegyen egy nagy pohárkát (nem kell semmi hatalmas, sem edény), és töltse meg a határig jégkockákkal. Próbáljon kis méretű jégkockákat használni. Most töltse fel a pohár 80% -át hideg vízzel. Töltse fel újra jéggel, ha a kar le akar menni.
Most helyezze az érzékelőt a víz/jég dologba, és várjon másfél percet. Olvassa le a hőmérsékletet, amelynek legalább 30 másodpercig változatlannak kell maradnia. Ha igen, írja le, hogy ez a RawLow értéke.
3. lépés: Használja a kapott értékeket a megfelelő módon
Tehát most van néhány fontos értéke:
- RawHigh
- RawLow
- ReferenciaHigh
- ReferenceLow
A referenciaérték nyilvánvalóan 99,9 ° C a forrásban lévő víz esetében (22 m magasságomban), és 0 ° C az olvadó jégfürdőben. Most számítsa ki az értékek tartományát:
- RawRange = RawHigh - RawLow
- ReferenceRange = ReferenceHigh - ReferenceLow
Most már készen áll arra, hogy ezt az érzékelőt bármilyen más projektben használja, és biztos abban, hogy az megfelelő mérést eredményez. Hogyan? Az itt kapott értéket felhasználva a projektben, amelyet ezzel az érzékelővel hoz létre.
A jövőbeni projektben az itt olvasott értékeket kell használnia, és azt javaslom, hogy ugyanazokat a neveket használja, amelyeket itt használtam.
A void setup () szakasz előtt deklarálja a változókat az alábbiak szerint:
float RawHigh = 99,6; float RawLow = 0,5; float ReferenceHigh = 99,9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;
Minden alkalommal, amikor az érzékelőt használja, a következő képletet használhatja a CorrectedValue kiszámításához:
float CorrectedValue = ((((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;
A RawValue nyilvánvalóan az érzékelő leolvasása.
Ez az!
Most már tudja, hogyan kell kalibrálni a DS18B20 érzékelőt vagy bármely más érzékelőt, amelyet használni fog! Érezd jól magad!
Ajánlott:
ARDUINO PH SZENZOR KALIBRÁLÁSA: 7 lépés
ARDUINO PH ÉRZÉKELŐKALIBRÁCIÓ: Ebben az oktatóanyagban az Atlas Scientific EZO pH -érzékelőjét kalibráljuk az Arduino Uno használatával. KALIBRÁLÁS ELMÉLET A kalibrálás legfontosabb része a leolvasott értékek figyelése a kalibrálási folyamat során. A legegyszerűbb az eszköz kalibrálása
Talajnedvesség -érzékelő kalibrálása: 5 lépés
Talajnedvesség -érzékelő kalibrálása: Számos talajnedvesség -mérő található a piacon, amelyek segítenek a kertésznek eldönteni, hogy mikor kell öntözni növényeit. Sajnos egy marék talaj megragadása és a szín és az állag ellenőrzése ugyanolyan megbízható, mint sok ilyen kütyü! Néhány szonda még regisztrál is
Hogyan készítsünk baba súlygépet Arduino Nano, HX-711 Load Cell és OLED 128X64 használatával -- A HX-711 kalibrálása: 5 lépés
Hogyan készítsünk baba súlygépet Arduino Nano, HX-711 Load Cell és OLED 128X64 használatával || A HX-711 kalibrálása: Hello Instructables, néhány napja egy aranyos baba apja lettem. Amikor kórházban voltam, azt tapasztaltam, hogy a baba súlya nagyon fontos a baba növekedésének figyelemmel kíséréséhez. Szóval van ötletem? hogy csecsemősúlygépet készítsek magamból. ebben az utasítható
Páratartalom -érzékelő kalibrálása: 7 lépés
Páratartalom érzékelő kalibrálása: 3 érzékelőm van, amelyek képesek mérni a levegő relatív páratartalmát: BME280, SHT21, DHT22. Azt állították, hogy képesek a +/- 3% pontosságú mérésre 20 és 80% közötti tartományban. Ha azonban 3 érzékelővel azonos körülmények között teszteltem, 3 különböző eredményt kaptam. Talán o
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Érzékelő: 4 lépés (képekkel)
ESP8266/ESP-12 Arduino Powered SmartThings DS18B20 Temp. Érzékelő: Mindannyian szeretjük tudni, hogy mi a jelenlegi szobahőmérséklet, és néha mi a hőmérséklet egy másik szobában, vagy talán a nyaralóházban a világ másik felén. Lehet, hogy figyelni szeretné a hőmérsékletét háziállata Lizard házában