11#include " DFRobot_SHT20.h"
22
3- void DFRobot_SHT20::initSHT20 (TwoWire &wirePort)
4- {
3+ void DFRobot_SHT20::initSHT20 (TwoWire &wirePort) {
54 i2cPort = &wirePort;
65 i2cPort->begin ();
76}
87
9- uint16_t DFRobot_SHT20::readValue (byte cmd)
10- {
8+ uint16_t DFRobot_SHT20::readValue (byte cmd) {
119 i2cPort->beginTransmission (SLAVE_ADDRESS);
1210 i2cPort->write (cmd);
1311 i2cPort->endTransmission ();
1412 byte toRead;
1513 byte counter;
16- for (counter = 0 , toRead = 0 ; counter < MAX_COUNTER && toRead != 3 ; counter++){
14+ for (counter = 0 , toRead = 0 ; counter < MAX_COUNTER && toRead != 3 ;
15+ counter++) {
1716 delay (DELAY_INTERVAL);
1817 toRead = i2cPort->requestFrom (SLAVE_ADDRESS, 3 );
1918 }
20- if (counter == MAX_COUNTER){
19+ if (counter == MAX_COUNTER) {
2120 return (ERROR_I2C_TIMEOUT);
2221 }
2322 byte msb, lsb, checksum;
24- msb = i2cPort->read ();
25- lsb = i2cPort->read ();
26- checksum = i2cPort->read ();
27- uint16_t rawValue = ((uint16_t ) msb << 8 ) | (uint16_t ) lsb;
28- if (checkCRC (rawValue, checksum) != 0 ){
23+ msb = i2cPort->read ();
24+ lsb = i2cPort->read ();
25+ checksum = i2cPort->read ();
26+ uint16_t rawValue = ((uint16_t )msb << 8 ) | (uint16_t )lsb;
27+ if (checkCRC (rawValue, checksum) != 0 ) {
2928 return (ERROR_BAD_CRC);
3029 }
3130 return rawValue & 0xFFFC ;
3231}
3332
34- float DFRobot_SHT20::readHumidity (void )
35- {
33+ float DFRobot_SHT20::readHumidity (void ) {
3634 uint16_t rawHumidity = readValue (TRIGGER_HUMD_MEASURE_NOHOLD);
37- if (rawHumidity == ERROR_I2C_TIMEOUT || rawHumidity == ERROR_BAD_CRC){
38- return (rawHumidity);
35+ if (rawHumidity == ERROR_I2C_TIMEOUT || rawHumidity == ERROR_BAD_CRC) {
36+ return (rawHumidity);
3937 }
4038 float tempRH = rawHumidity * (125.0 / 65536.0 );
41- float rh = tempRH - 6.0 ;
39+ float rh = tempRH - 6.0 ;
4240 return (rh);
4341}
4442
45- float DFRobot_SHT20::readTemperature (void )
46- {
43+ float DFRobot_SHT20::readTemperature (void ) {
4744 uint16_t rawTemperature = readValue (TRIGGER_TEMP_MEASURE_NOHOLD);
48- if (rawTemperature == ERROR_I2C_TIMEOUT || rawTemperature == ERROR_BAD_CRC){
49- return (rawTemperature);
45+ if (rawTemperature == ERROR_I2C_TIMEOUT ||
46+ rawTemperature == ERROR_BAD_CRC) {
47+ return (rawTemperature);
5048 }
5149 float tempTemperature = rawTemperature * (175.72 / 65536.0 );
5250 float realTemperature = tempTemperature - 46.85 ;
5351 return (realTemperature);
5452}
5553
56- void DFRobot_SHT20::setResolution (byte resolution)
57- {
54+ void DFRobot_SHT20::setResolution (byte resolution) {
5855 byte userRegister = readUserRegister ();
5956 userRegister &= B01111110;
6057 resolution &= B10000001;
6158 userRegister |= resolution;
6259 writeUserRegister (userRegister);
6360}
6461
65- byte DFRobot_SHT20::readUserRegister (void )
66- {
62+ byte DFRobot_SHT20::readUserRegister (void ) {
6763 byte userRegister;
6864 i2cPort->beginTransmission (SLAVE_ADDRESS);
6965 i2cPort->write (READ_USER_REG);
@@ -73,40 +69,37 @@ byte DFRobot_SHT20::readUserRegister(void)
7369 return (userRegister);
7470}
7571
76- void DFRobot_SHT20::writeUserRegister (byte val)
77- {
72+ void DFRobot_SHT20::writeUserRegister (byte val) {
7873 i2cPort->beginTransmission (SLAVE_ADDRESS);
7974 i2cPort->write (WRITE_USER_REG);
8075 i2cPort->write (val);
8176 i2cPort->endTransmission ();
8277}
8378
84- byte DFRobot_SHT20::checkCRC (uint16_t message_from_sensor, uint8_t check_value_from_sensor)
85- {
79+ byte DFRobot_SHT20::checkCRC (uint16_t message_from_sensor,
80+ uint8_t check_value_from_sensor) {
8681 uint32_t remainder = (uint32_t )message_from_sensor << 8 ;
8782 remainder |= check_value_from_sensor;
8883 uint32_t divsor = (uint32_t )SHIFTED_DIVISOR;
89- for (int i = 0 ; i < 16 ; i++){
90- if (remainder & (uint32_t )1 << (23 - i)){
84+ for (int i = 0 ; i < 16 ; i++) {
85+ if (remainder & (uint32_t )1 << (23 - i)) {
9186 remainder ^= divsor;
9287 }
9388 divsor >>= 1 ;
9489 }
9590 return (byte)remainder;
9691}
9792
98- void DFRobot_SHT20::showReslut (const char *prefix, int val)
99- {
93+ void DFRobot_SHT20::showReslut (const char *prefix, int val) {
10094 Serial.print (prefix);
101- if (val){
95+ if (val) {
10296 Serial.println (" yes" );
103- }else {
97+ } else {
10498 Serial.println (" no" );
10599 }
106100}
107101
108- void DFRobot_SHT20::checkSHT20 (void )
109- {
102+ void DFRobot_SHT20::checkSHT20 (void ) {
110103 byte reg = readUserRegister ();
111104 showReslut (" End of battery: " , reg & USER_REGISTER_END_OF_BATTERY);
112105 showReslut (" Heater enabled: " , reg & USER_REGISTER_HEATER_ENABLED);
0 commit comments