Exemplo n.º 1
0
        //Set sensor resolution
        /*******************************************************************************************/
        //Sets the sensor resolution to one of four levels
        //Page 12:
        // 0/0 = 12bit RH, 14bit Temp
        // 0/1 = 8bit RH, 12bit Temp
        // 1/0 = 10bit RH, 13bit Temp
        // 1/1 = 11bit RH, 11bit Temp
        //Power on default is 0/0
        void SetResolution(SensorResolution resolution)
        {
            byte userData = si7021.ReadRegister(READ_USER_REGISTER); //Go get the current register state
                                                                     //userRegister &= 0b01111110; //Turn off the resolution bits
                                                                     //resolution &= 0b10000001; //Turn off all other bits but resolution bits
                                                                     //userRegister |= resolution; //Mask in the requested resolution bits
            var res = (byte)resolution;

            userData &= 0x73; //Turn off the resolution bits
            res      &= 0x81; //Turn off all other bits but resolution bits
            userData |= res;  //Mask in the requested resolution bits

            //Request a write to user register
            si7021.WriteBytes(new byte[] { WRITE_USER_REGISTER }); //Write to the user register
            si7021.WriteBytes(new byte[] { userData });            //Write the new resolution bits
        }
Exemplo n.º 2
0
        //Set sensor resolution
        /*******************************************************************************************/
        //Sets the sensor resolution to one of four levels
        //Page 12:
        // 0/0 = 12bit RH, 14bit Temp
        // 0/1 = 8bit RH, 12bit Temp
        // 1/0 = 10bit RH, 13bit Temp
        // 1/1 = 11bit RH, 11bit Temp
        //Power on default is 0/0
        void SetResolution(SensorResolution resolution)
        {
            var userData = new byte[0];

            htu21d.WriteRead(new byte[] { READ_USER_REGISTER }, userData); //Go get the current register state
                                                                           //userRegister &= 0b01111110; //Turn off the resolution bits
                                                                           //resolution &= 0b10000001; //Turn off all other bits but resolution bits
                                                                           //userRegister |= resolution; //Mask in the requested resolution bits
            var res = (byte)resolution;

            userData[0] &= 0x73; //Turn off the resolution bits
            res         &= 0x81; //Turn off all other bits but resolution bits
            userData[0] |= res;  //Mask in the requested resolution bits

            //Request a write to user register
            htu21d.Write(new byte[] { WRITE_USER_REGISTER }); //Write to the user register
            htu21d.Write(userData);                           //Write the new resolution bits
        }
Exemplo n.º 3
0
        private void MeasureDelay(SensorResolution resolution)
        {
            Int32 delay;

            switch (resolution)
            {
            case SensorResolution.Resolution_10RH_13T:
            {
                delay = 52;
                break;
            }

            case SensorResolution.Resolution_11RH_11T:
            {
                delay = 26;
                break;
            }

            case SensorResolution.Resolution_8RH_12T:
            {
                delay = 26;
                break;
            }

            case SensorResolution.Resolution_12RH_14T:
            {
                delay = 114;
                break;
            }

            default:
            {
                delay = 114;
                break;
            }
            }

            Thread.Sleep(delay);
        }