No changes made

Dependents:   DewPoint_Sensor_NormalScreen disp70 disp70 DPTimer_NormalScreen_8R_DIP_4-20mA_Out

Committer:
koosvanderwat
Date:
Mon Feb 19 09:37:41 2018 +0000
Revision:
1:2d50976e2506
Parent:
0:cb02bfe8cf44
123

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ksenia 0:cb02bfe8cf44 1 #include "HYT.h"
Ksenia 0:cb02bfe8cf44 2 #include "mbed.h"
Ksenia 0:cb02bfe8cf44 3
Ksenia 0:cb02bfe8cf44 4 HYT::HYT(PinName sda, PinName scl) : _i2c(sda, scl)
Ksenia 0:cb02bfe8cf44 5 {
Ksenia 0:cb02bfe8cf44 6 }
Ksenia 0:cb02bfe8cf44 7
Ksenia 0:cb02bfe8cf44 8 /*************************************************************************************************************************/
Ksenia 0:cb02bfe8cf44 9 void HYT::MRCommand(void)
Ksenia 0:cb02bfe8cf44 10 {
Ksenia 0:cb02bfe8cf44 11 _i2c.write(HYT_ADDR, 0, 0);
Ksenia 0:cb02bfe8cf44 12 }
Ksenia 0:cb02bfe8cf44 13
Ksenia 0:cb02bfe8cf44 14
Ksenia 0:cb02bfe8cf44 15 /*************************************************************************************************************************/
Ksenia 0:cb02bfe8cf44 16 int HYT::DFCommand(void)
Ksenia 0:cb02bfe8cf44 17 {
Ksenia 0:cb02bfe8cf44 18 char dataI2C[4];
Ksenia 0:cb02bfe8cf44 19 int stateBit;
Ksenia 0:cb02bfe8cf44 20 int humidityRaw;
Ksenia 0:cb02bfe8cf44 21 int temperatureRaw;
Ksenia 0:cb02bfe8cf44 22
Ksenia 0:cb02bfe8cf44 23 _i2c.read(HYT_ADDR, dataI2C, 4);
Ksenia 0:cb02bfe8cf44 24
Ksenia 0:cb02bfe8cf44 25 stateBit = (dataI2C[0] & 0x40) >> 6;
Ksenia 0:cb02bfe8cf44 26 if (stateBit == 0) {
Ksenia 0:cb02bfe8cf44 27 humidityRaw = ((dataI2C[0] & 0x3F) << 8) | dataI2C[1];
Ksenia 0:cb02bfe8cf44 28 temperatureRaw = ((dataI2C[2] << 8) | dataI2C[3]) >> 2;
Ksenia 0:cb02bfe8cf44 29 if (temperatureRaw < 0x3FFF && humidityRaw < 0x3FFF) {
Ksenia 0:cb02bfe8cf44 30 temperature = ((float)(temperatureRaw) * 165.0f / 16383.0f) - 40.0f;
Ksenia 0:cb02bfe8cf44 31 humidity = (float)humidityRaw * 100.0f / 16383.0f;
Ksenia 0:cb02bfe8cf44 32 } else {
Ksenia 0:cb02bfe8cf44 33 // sensor returns wrong data (1111...11)
Ksenia 0:cb02bfe8cf44 34 return -1;
Ksenia 0:cb02bfe8cf44 35 }
Ksenia 0:cb02bfe8cf44 36 } else {
Ksenia 0:cb02bfe8cf44 37 // no new value received from sensor
koosvanderwat 1:2d50976e2506 38 return -2;
Ksenia 0:cb02bfe8cf44 39 }
Ksenia 0:cb02bfe8cf44 40
Ksenia 0:cb02bfe8cf44 41 return 0;
Ksenia 0:cb02bfe8cf44 42 }