hu:arduino:temperature

Differences

This shows you the differences between two versions of the page.

hu:arduino:temperature [2022/04/21 15:02] ()
 1:  1:
 +{{ :wiki:arduino:ds18b20.png?100|DS18B20}}
 +====== 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 [[hu:arduino:humidity#si7021_modul|SI7021]]-t ott lehet megtalálni: [[hu:arduino:humidity|Páratartalom-mérés]]. 
  
 +===== DS18B20 =====
 +{{anchor:ds18b20}}
 +==== Leírás ====
 +A DS18B20 digitális hőmérséklet-érzékelő szenzort, a Maxim (formailag a Dallas) fejlesztette ki. A szenzor [[hu:comm:bus_1wire#1-wire|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:
 +
 +{{:wiki:arduino:ky001_sensor.jpg?200|KY001 hőmérséklet-érzékelő modul}}
 +
 +
 +{{ :wiki:arduino:ds18b20_packages.png?200|DS18B20 tokozás}}
 +==== 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
 +
 +{{ :wiki:arduino:ds18b20-waterproof.png|DS18B20 vízálló tokozással}}
 +==== 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ás**sal kell összekötni.
 +==== Parazita / normál mód ====
 +^Normál mód^Parazita mód|
 +|{{:wiki:arduino:ds18b20_normal_mode.png?300|Normál mód}}|{{:wiki:arduino:ds18b20_parasite_mode.png?300|Parazita 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 el|Parazita, 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 ====
 +{{:wiki:arduino:ds18b20_wire.png|A DS18B20 bekötése}}
 +
 +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 ====
 +<code c>
 +/********************************************************************/
 +// 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); 
 +}
 +</code>
 +==== Források ====
 +https://www.tweaking4all.com/hardware/arduino/arduino-ds18b20-temperature-sensor/attachment/ds18b20-normal-power/
 +
 +{{ :wiki:arduino:lm75a.png?150|LM75A}}
 +===== LM75A =====
 +{{anchor:lm75a}}
 +Az LM75A egy nagysebességű [[hu:comm:bus_i2c|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 [[hu:comm:bus_i2c|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: [[hu:arduino:comm_example#arduino_i_c_kommunikacio|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 [[hu:comm:bus_i2c|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 ====
 +
 +{{:wiki:arduino:lm75a_schema.png|LM75A bekötési sémája}}
 +
 +==== LM75A címzése ====
 +
 +{{:wiki:arduino:lm75a_adr.png|LM75A címzése}}
 +
 +==== LM75A szoftver ====
 +
 +https://github.com/QuentinCG/Arduino-LM75A-Temperature-Sensor-Library
 +===== Termisztorok =====
 +A termisztorokról bővebben a [[hu:sensor:sens_5_temp_hum#ellenallas_homerok_termisztorok|szenzorok fejezetben olvashat]].
 +
 +{{ :wiki:arduino:ky013.png?120|KY-013 analóg termisztoros hőmérő modul}}
 +==== 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 egyenlet//et 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 ====
 +
 +{{:wiki:arduino:ky013_wiring.png?400|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 .
 +<code c>
 +#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);
 +}
 +</code>
 +==== Forrás ====
 +http://arduinomodules.info/ky-013-analog-temperature-sensor-module/
  • hu/arduino/temperature.txt
  • 2022/04/21 15:02
  • ()