Oldalforrás megtekintése Korábbi változatok Hivatkozások Exportálás PDF-be Share on ... Google+ Twitter LinkedIn Facebook Pinterest Telegram Tartalomjegyzék Hőmérséklet mérés DS18B20 Leírás Specifikáció Vízálló tokozás Parazita / normál mód Bekötés letöltendő könyvtárak Github Példaprogram Források LM75A Technikai adatok LM75A bekötési sémája LM75A címzése LM75A szoftver Termisztorok KY-013 analóg termisztoros hőmérő modul KY-013 vezetékezés Szoftver Forrás Hőmérséklet mérés Ezen az oldalon a csak hőmérsékletmérésre alkalmas megoldásokat sorolom fel. A páratartalom-méréssel kombinált hőmérséklet-mérő modulokat, mint például az SI7021-t ott lehet megtalálni: Páratartalom-mérés. DS18B20 Leírás A DS18B20 digitális hőmérséklet-érzékelő szenzort, a Maxim (formailag a Dallas) fejlesztette ki. A szenzor 1-Wire buszon keresztül kommunikál, méréstartománya -55 °C ~ 125 °C-ig terjed. Alapvetően a környezeti (levegő) hőmérséklet mérésére lett kifejlesztve, Arduino-s környezetben a legelterjedtebb ilyen szenzor. A DS18B20 modulra szerelt változata a KY001 névre hallgat: Specifikáció Méréstartománya: -55 °C és + 125 °C között (-67 °F és + 257 °F között) Pontossága: ± 0,5 °C / -10 °C és + 85° C között Felbontása: programozható felbontás 9 - 12 bit Vezetékek száma: Parazita üzemmódban csak 2 vezetéket igényel (DQ és GND) Azonosítás: Minden szenzor rendelkezik egy egyedi 64 bites azonosítóval, mely a ROM-ban került tárolásra Paraméterezése: Rugalmas, felhasználó által definiálható, nem felejtő (NV) riasztási beállítások (Alarm Search Command segítségével) tokozása: TO-92, SO, uSOP Vízálló tokozás A szenzornak létezik vízálló változata is, ennél a vezetékek kiosztása: fekete: GND fehér/sárga: DATA piros: Vdd (5V+) A csatlakozókon is érdemes ezt a sorrendet tartani (fekete, fehér/sárga, piros), mert ha valami nem stimmel, tesztelésként egy "mezítlábas" IC-vel behelyettesíthető a csatlakozó. A data és Vdd (5V+) vezetékeket minden mód esetében itt is egy 4,7k-s ellenállással kell összekötni. Parazita / normál mód Normál módParazita mód Normál, 3-vezetékes módban a tápellátást a Vdd felől az IC-k Vdd lábaira kötött vezeték látja elParazita, 2-vezetékes módban az IC-k Vdd lábait a GND-re kell lekötni, a tápellátás a Data vezetéken kerül megvalósításra. Bekötés A fenti képen egy darab szenzor 3 vezetékes, normál módú bekötése látható. A data és Vdd (5V+) vezetékeket minden mód esetében egy 4,7k-s ellenállással kell összekötni. Ha a méréseredmény -127, akkor a bekötéssel valami nem stimmel. letöltendő könyvtárak oneWire.h : https://www.arduinolibraries.info/libraries/one-wire dallasTemperature.h: https://github.com/milesburton/Arduino-Temperature-Control-Library Github https://github.com/milesburton/Arduino-Temperature-Control-Library https://github.com/RobTillaart/Arduino/tree/master/libraries/DS18B20 Példaprogram /********************************************************************/ // First we include the libraries #include <OneWire.h> #include <DallasTemperature.h> /********************************************************************/ // Data wire is plugged into pin 2 on the Arduino #define ONE_WIRE_BUS 2 /********************************************************************/ // Setup a oneWire instance to communicate with any OneWire devices // (not just Maxim/Dallas temperature ICs) OneWire oneWire(ONE_WIRE_BUS); /********************************************************************/ // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); /********************************************************************/ void setup(void) { // start serial port Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // Start up the library sensors.begin(); } void loop(void) { // call sensors.requestTemperatures() to issue a global temperature // request to all devices on the bus /********************************************************************/ Serial.print(" Requesting temperatures..."); sensors.requestTemperatures(); // Send the command to get temperature readings Serial.println("DONE"); /********************************************************************/ Serial.print("Temperature is: "); Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? // You can have more than one DS18B20 on the same bus. // 0 refers to the first IC on the wire delay(1000); } Források https://www.tweaking4all.com/hardware/arduino/arduino-ds18b20-temperature-sensor/attachment/ds18b20-normal-power/ LM75A Az LM75A egy nagysebességű I²C interfésszel rendelkező digitális hőmérsékletérzékelő modul. A modul 4 adatregiszterrel rendelkezik a különböző működési módok beállításához. Az LM75A-val szerelt OPEN-SMART modulon (képe fent jobbra) nyolc I²C címet lehet beállítani (leforrasztani) egy egységhez. A modul túlmelegedés elleni védelmet is biztosít - jelentsen ez bármit is. További I²C-s modulok: Arduino I²C kommunikáció Technikai adatok - Kompatibilitás: Arduino UNO R3 / Arduino Mega2560 - Működési feszültség: 2.8..5.5V DC - Áramfelvétel: 2mA (max) - Interfész: standard I²C interfész - Felbontás: 0,125 °C - Méréstartomány: -55 ~ 125 °C - Pontosság: ± 2 °C -25 ~ + 100 °C; ± 3 °C -55 ~ + 125 °C LM75A bekötési sémája LM75A címzése LM75A szoftver https://github.com/QuentinCG/Arduino-LM75A-Temperature-Sensor-Library Termisztorok A termisztorokról bővebben a szenzorok fejezetben olvashat. KY-013 analóg termisztoros hőmérő modul A KY-013 analóg hőmérséklet-érzékelő modul NTC termisztorból és 10 kΩ-os ellenállásból áll. A termisztor ellenállása a környező hőmérséklettől függően változik, a Steinhart-Hart egyenletet használjuk a termisztor hőmérsékletének precíz meghatározásához. Technikai adatok: Üzemi feszültség: 5V DC Hőmérsékletmérési tartomány: -55 °C .. 125 °C között [-67 °F - 257 °F] Mérési pontosság: ± 0,5 °C KY-013 vezetékezés S: Pin A0 középső: 5V DC -: GND Szoftver Az alábbi Arduino program a termisztor hőmérsékletét a "Thermister" funkcióban megvalósított Steinhart-Hart egyenlet felhasználásával számítja ki . #include <math.h> double Thermister(int RawADC) { double Temp; Temp = log(((10240000/RawADC) - 10000)); Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp ); Temp = Temp - 273.15; // konvertálás Kelvin -> Celcius return Temp; } void setup() { Serial.begin(9600); } void loop() { Serial.print(Thermister(analogRead(0))); // pin A0 olvasása Serial.println("c"); delay(500); } Forrás http://arduinomodules.info/ky-013-analog-temperature-sensor-module/