SHT3X.cpp 863 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "SHT3X.h"
  2. /* Motor()
  3. */
  4. SHT3X::SHT3X(uint8_t address)
  5. {
  6. Wire.begin();
  7. _address=address;
  8. }
  9. byte SHT3X::get()
  10. {
  11. unsigned int data[6];
  12. // Start I2C Transmission
  13. Wire.beginTransmission(_address);
  14. // Send measurement command
  15. Wire.write(0x2C);
  16. Wire.write(0x06);
  17. // Stop I2C transmission
  18. if (Wire.endTransmission()!=0)
  19. return 1;
  20. delay(500);
  21. // Request 6 bytes of data
  22. Wire.requestFrom(_address, 6);
  23. // Read 6 bytes of data
  24. // cTemp msb, cTemp lsb, cTemp crc, humidity msb, humidity lsb, humidity crc
  25. for (int i=0;i<6;i++) {
  26. data[i]=Wire.read();
  27. };
  28. delay(50);
  29. if (Wire.available()!=0)
  30. return 2;
  31. // Convert the data
  32. cTemp = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45;
  33. fTemp = (cTemp * 1.8) + 32;
  34. humidity = ((((data[3] * 256.0) + data[4]) * 100) / 65535.0);
  35. return 0;
  36. }