HDC1080 hőmérséklet és páratartalom szenzor

Tartalom:

  • HDC1080 szenzor műszaki adatai
  • Programkönyvtárhoz kapott forráskód mintapélda a működés megismeréséhez

——————————————————————————-

Ezt a modult már kipróbáltam, jól is működik, de működését részletesen nem ismertem meg. A használata roppant egyszerűnek tűnik, letölthető hozzá kezelő könyvtár ezen a néven:

Az eszköz működési elvét nem sikerült kihámoznom az adatlapjából. Mivel gyakorlatban még nem használtam, csak érdeklődésből vettem kézbe, gyakorlati tanácsokat nem tudok adni. Viszont ha valaki használni kezdi, érdemes alaposabban utána olvasni a működésnek, mert olyan funkciókat is láttam a leírásban, amik jelentősen befolyásolhatják a pontosságot. Pl. van egy fűtési mód a chip-ben, ami kb. 7mA áramfelvétel árán páralecsapódás esetén fűti a szenzort. Azt már nem sikerült kiderítenem, hogy ez automatikus folyamat, vagy programból kell időnként elindítani. A programkönyvtárban kapott példa csak diszkréten annyit jelez, hogy be és ki lehet kapcsolni.

Néhány infó az adatlapjáról:

  • Relatív páratartalom pontossága:+/- 2%
  • Hőmérséklet mérés pontossága:+/- 0.2 fok celsius
  • AD átalakító felbontása: 14 bit (hőmérséklet és páratartalom felbontása is beállítható)
  • Mérési gyakoriság 1 mérés/sec
  • Áramfelvétel alvó módban: 100nA
  • Tápfeszültség: 2,7 – 5,5V

Példaprogram:

#include <Wire.h>
#include "ClosedCube_HDC1080.h"
ClosedCube_HDC1080 hdc1080;


void setup()
{
  Serial.begin(9600);    //sorosport indul
  hdc1080.begin(0x40);   //hdc1080 indul
  //eszköz gyári adatainak kiírása
  Serial.print("Gyariszam=0x");
  Serial.println(hdc1080.readManufacturerId(), HEX); 
  // 0x5449 ID of Texas Instruments
  Serial.print("Eszkoz ID=0x");
  Serial.println(hdc1080.readDeviceId(), HEX); // 0x1050 ID of the device
  
  //felbontás beállítása: első paraméter páratartalom (0-14bit, 1-11bit,2-8bit)
  //második paraméter hőmérséklet (0-14bit, 1-11bit)
  hdc1080.setResolution(0,0);  //14bit hőmérséklet és páratartalom is
  
  //felbontás kiolvasása eszköz regisztereiből
  HDC1080_Registers reg = hdc1080.readRegister();
  Serial.print("Homerseklet felbontas (0-14bit, 1-11bit):");
  Serial.println(reg.TemperatureMeasurementResolution);
  Serial.print("Paratartalom felbontas (0-14bit, 1-11-bit, 2-8bit):");
  Serial.println(reg.HumidityMeasurementResolution);
}

void loop()
{             
  //hőmérséklet és páratartalom kiolvasása és kiírása soros portra
  Serial.print("T=");
  Serial.print(hdc1080.readTemperature());
  Serial.print("C, RH=");
  Serial.print(hdc1080.readHumidity());
  Serial.println("%");
  delay(5000); 
}

Mennyire volt hasznos amit olvastál? Értékelés után szövegesen is leírhatod megjegyzéseidet és véleményedet!

Kattints egy csillagra az értékeléshez!

Szövegesen is leírhatod véleményedet! Ha kérdésed van, ne felejtsd el megadni az email címedet!