Esempio n. 1
0
		/// <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;
		}
Esempio n. 2
0
        /// <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);
        }