26 #include <Adafruit_Sensor.h> 27 #include <Adafruit_I2CDevice.h> 28 #include <Adafruit_SPIDevice.h> 34 #define BMP280_ADDRESS (0x77) 35 #define BMP280_ADDRESS_ALT \ 37 #define BMP280_CHIPID (0x58) 43 BMP280_REGISTER_DIG_T1 = 0x88,
44 BMP280_REGISTER_DIG_T2 = 0x8A,
45 BMP280_REGISTER_DIG_T3 = 0x8C,
46 BMP280_REGISTER_DIG_P1 = 0x8E,
47 BMP280_REGISTER_DIG_P2 = 0x90,
48 BMP280_REGISTER_DIG_P3 = 0x92,
49 BMP280_REGISTER_DIG_P4 = 0x94,
50 BMP280_REGISTER_DIG_P5 = 0x96,
51 BMP280_REGISTER_DIG_P6 = 0x98,
52 BMP280_REGISTER_DIG_P7 = 0x9A,
53 BMP280_REGISTER_DIG_P8 = 0x9C,
54 BMP280_REGISTER_DIG_P9 = 0x9E,
55 BMP280_REGISTER_CHIPID = 0xD0,
56 BMP280_REGISTER_VERSION = 0xD1,
57 BMP280_REGISTER_SOFTRESET = 0xE0,
59 BMP280_REGISTER_STATUS = 0xF3,
60 BMP280_REGISTER_CONTROL = 0xF4,
61 BMP280_REGISTER_CONFIG = 0xF5,
62 BMP280_REGISTER_PRESSUREDATA = 0xF7,
63 BMP280_REGISTER_TEMPDATA = 0xFA,
123 SAMPLING_NONE = 0x00,
145 MODE_SOFT_RESET_CODE = 0xB6
167 STANDBY_MS_63 = 0x01,
169 STANDBY_MS_125 = 0x02,
171 STANDBY_MS_250 = 0x03,
173 STANDBY_MS_500 = 0x04,
175 STANDBY_MS_1000 = 0x05,
177 STANDBY_MS_2000 = 0x06,
179 STANDBY_MS_4000 = 0x07
184 Adafruit_BMP280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
189 uint8_t getStatus(
void);
190 uint8_t sensorID(
void);
192 float readTemperature();
193 float readPressure(
void);
194 float readAltitude(
float seaLevelhPa = 1013.25);
195 float seaLevelForAltitude(
float altitude,
float atmospheric);
196 float waterBoilingPoint(
float pressure);
197 bool takeForcedMeasurement();
199 Adafruit_Sensor *getTemperatureSensor(
void);
200 Adafruit_Sensor *getPressureSensor(
void);
210 Adafruit_I2CDevice *i2c_dev = NULL;
211 Adafruit_SPIDevice *spi_dev = NULL;
219 config() : t_sb(STANDBY_MS_1), filter(FILTER_OFF), none(0), spi3w_en(0) {}
221 unsigned int t_sb : 3;
223 unsigned int filter : 3;
225 unsigned int none : 1;
227 unsigned int spi3w_en : 1;
229 unsigned int get() {
return (t_sb << 5) | (filter << 2) | spi3w_en; }
236 : osrs_t(SAMPLING_NONE), osrs_p(SAMPLING_NONE), mode(MODE_SLEEP) {}
238 unsigned int osrs_t : 3;
240 unsigned int osrs_p : 3;
242 unsigned int mode : 2;
244 unsigned int get() {
return (osrs_t << 5) | (osrs_p << 2) | mode; }
247 void readCoefficients(
void);
248 uint8_t spixfer(uint8_t x);
249 void write8(byte reg, byte value);
250 uint8_t read8(byte reg);
251 uint16_t read16(byte reg);
252 uint32_t read24(byte reg);
253 int16_t readS16(byte reg);
254 uint16_t read16_LE(byte reg);
255 int16_t readS16_LE(byte reg);
259 int32_t _sensorID = 0;
Adafruit_BMP280_Pressure(Adafruit_BMP280 *parent)
Create an Adafruit_Sensor compatible object for the pressure sensor.
Definition: Adafruit_BMP280.h:106
int16_t dig_P3
Definition: Adafruit_BMP280.h:76
Definition: Adafruit_BMP280.h:69
sensor_filter
Definition: Adafruit_BMP280.h:149
int16_t dig_P6
Definition: Adafruit_BMP280.h:79
bool getEvent(sensors_event_t *)
Gets the temperature as a standard sensor event.
Definition: Adafruit_BMP280.cpp:443
int16_t dig_P2
Definition: Adafruit_BMP280.h:75
int16_t dig_T3
Definition: Adafruit_BMP280.h:72
uint16_t dig_T1
Definition: Adafruit_BMP280.h:70
int16_t dig_T2
Definition: Adafruit_BMP280.h:71
Definition: Adafruit_BMP280.h:88
int16_t dig_P7
Definition: Adafruit_BMP280.h:80
standby_duration
Definition: Adafruit_BMP280.h:163
int16_t dig_P8
Definition: Adafruit_BMP280.h:81
sensor_sampling
Definition: Adafruit_BMP280.h:121
int16_t dig_P5
Definition: Adafruit_BMP280.h:78
uint16_t dig_P1
Definition: Adafruit_BMP280.h:74
Definition: Adafruit_BMP280.h:102
sensor_mode
Definition: Adafruit_BMP280.h:137
void getSensor(sensor_t *)
Gets the sensor_t data for the BMP280's temperature sensor.
Definition: Adafruit_BMP280.cpp:420
int16_t dig_P4
Definition: Adafruit_BMP280.h:77
Definition: Adafruit_BMP280.h:58
int16_t dig_P9
Definition: Adafruit_BMP280.h:82
Adafruit_BMP280_Temp(Adafruit_BMP280 *parent)
Create an Adafruit_Sensor compatible object for the temp sensor.
Definition: Adafruit_BMP280.h:92
#define BMP280_ADDRESS
Definition: Adafruit_BMP280.h:34
#define BMP280_CHIPID
Definition: Adafruit_BMP280.h:37
Definition: Adafruit_BMP280.h:118