/* * Anatole SCHRAMM-HENRY * Tim THUREL * Température groupe 3 * Date 14/02/2020 00:05 * * Classe permettant de piloter le STS21 * Capteur de température de la marque SENSIRION * Précision : 0.2°C * * Tout droit réservé */ #ifndef STS21_H #define STS21_H #include "I2CDevice.h" //Définition des commandes #define HOLD_MASTER 0xE3 #define NO_HOLD_MASTER 0xF3 #define WRITE_USER_REG 0xE6 #define READ_USER_REG 0xE7 #define SOFT_RST 0xFE //User register bits #define END_OF_BAT 0x40 #define CHIP_HEATER 0x04 class STS21 : public I2CDevice { public: enum STS_RES {RES_11 = 3, RES_12 = 1, RES_13 = 2, RES_14 = 0}; STS21(uint8_t addr = 0x4A):I2CDevice(addr), _onChipHeater(false), _stsRes(RES_14) {delay(20);} ~STS21(){} virtual boolean begin(){return I2CDevice::begin();}; double getTemperature(boolean noHold = true);//Degré celsius boolean setResolution(STS_RES res); boolean enableOnChipHeater(boolean enabled); boolean reset(); boolean lowBattery();//Retourne vrai si le bit indiquant un niveau de batterie faible est present, faux sinon protected: private: uint8_t readUserRegister(); boolean writeUserRegister(uint8_t value); boolean _onChipHeater; STS_RES _stsRes; }; #endif //STS21_H