/// <summary> /// Read Temperature /// </summary> /// <param name="VDD">VDD Voltage for SHT11</param> /// <param name="TemperatureUnit">Temperature units to return</param> /// <returns>Temperature in TemperatureUnit units</returns> public double ReadTemperature(SHT11VDD_Voltages VDD, SHT11TemperatureUnits TemperatureUnit) { double readTemp = 0.0F; double multplier = 0.0F; if (TemperatureUnit == SHT11TemperatureUnits.Celcius) { switch (VDD) { case SHT11VDD_Voltages.VDD_2_5V: readTemp = -39.4F; break; case SHT11VDD_Voltages.VDD_3_5V: readTemp = -39.7F; break; case SHT11VDD_Voltages.VDD_3V: readTemp = -39.6F; break; case SHT11VDD_Voltages.VDD_4V: readTemp = -39.8F; break; case SHT11VDD_Voltages.VDD_5V: readTemp = -40.1F; break; } } if (TemperatureUnit == SHT11TemperatureUnits.Farenheid) { switch (VDD) { case SHT11VDD_Voltages.VDD_2_5V: readTemp = -38.9F; break; case SHT11VDD_Voltages.VDD_3_5V: readTemp = -39.5F; break; case SHT11VDD_Voltages.VDD_3V: readTemp = -39.3F; break; case SHT11VDD_Voltages.VDD_4V: readTemp = -39.6F; break; case SHT11VDD_Voltages.VDD_5V: readTemp = -40.2F; break; } } // Check if we have 12 or 14 bits temperature if (((byte)ReadStatusRegister() & 0x01) == 0x01) { // 12 Bit switch (TemperatureUnit) { case SHT11TemperatureUnits.Farenheid: multplier = 0.072F; break; case SHT11TemperatureUnits.Celcius: multplier = 0.04F; break; } } else { // 14 Bit switch (TemperatureUnit) { case SHT11TemperatureUnits.Farenheid: multplier = 0.018F; break; case SHT11TemperatureUnits.Celcius: multplier = 0.01F; break; } } // Calculate actual temperature readTemp += (double)ReadTemperatureRaw() * multplier; // Return temperature return readTemp; }
/// <summary> /// Read Temperature /// </summary> /// <param name="VDD">VDD Voltage for SHT11</param> /// <param name="TemperatureUnit">Temperature units to return</param> /// <returns>Temperature in TemperatureUnit units</returns> public double ReadTemperature(SHT11VDD_Voltages VDD, SHT11TemperatureUnits TemperatureUnit) { double readTemp = 0.0F; double multplier = 0.0F; if (TemperatureUnit == SHT11TemperatureUnits.Celcius) { switch (VDD) { case SHT11VDD_Voltages.VDD_2_5V: readTemp = -39.4F; break; case SHT11VDD_Voltages.VDD_3_5V: readTemp = -39.7F; break; case SHT11VDD_Voltages.VDD_3V: readTemp = -39.6F; break; case SHT11VDD_Voltages.VDD_4V: readTemp = -39.8F; break; case SHT11VDD_Voltages.VDD_5V: readTemp = -40.1F; break; } } if (TemperatureUnit == SHT11TemperatureUnits.Farenheid) { switch (VDD) { case SHT11VDD_Voltages.VDD_2_5V: readTemp = -38.9F; break; case SHT11VDD_Voltages.VDD_3_5V: readTemp = -39.5F; break; case SHT11VDD_Voltages.VDD_3V: readTemp = -39.3F; break; case SHT11VDD_Voltages.VDD_4V: readTemp = -39.6F; break; case SHT11VDD_Voltages.VDD_5V: readTemp = -40.2F; break; } } // Check if we have 12 or 14 bits temperature if (((byte)ReadStatusRegister() & 0x01) == 0x01) { // 12 Bit switch (TemperatureUnit) { case SHT11TemperatureUnits.Farenheid: multplier = 0.072F; break; case SHT11TemperatureUnits.Celcius: multplier = 0.04F; break; } } else { // 14 Bit switch (TemperatureUnit) { case SHT11TemperatureUnits.Farenheid: multplier = 0.018F; break; case SHT11TemperatureUnits.Celcius: multplier = 0.01F; break; } } // Calculate actual temperature readTemp += (double)ReadTemperatureRaw() * multplier; // Return temperature return(readTemp); }