Adafruit BMP3XX Library
Adafruit_BMP3XX.h
Go to the documentation of this file.
1 
22 #ifndef __BMP3XX_H__
23 #define __BMP3XX_H__
24 
25 #include "bmp3.h"
26 
27 #include <Adafruit_I2CDevice.h>
28 #include <Adafruit_SPIDevice.h>
29 
30 /*=========================================================================
31  I2C ADDRESS/BITS
32  -----------------------------------------------------------------------*/
33 #define BMP3XX_DEFAULT_ADDRESS (0x77)
34 /*=========================================================================*/
35 #define BMP3XX_DEFAULT_SPIFREQ (1000000)
36 
37 
42 public:
44 
45  bool begin_I2C(uint8_t addr = BMP3XX_DEFAULT_ADDRESS,
46  TwoWire *theWire = &Wire);
47  bool begin_SPI(uint8_t cs_pin, SPIClass *theSPI = &SPI,
48  uint32_t frequency = BMP3XX_DEFAULT_SPIFREQ);
49  bool begin_SPI(int8_t cs_pin, int8_t sck_pin, int8_t miso_pin,
50  int8_t mosi_pin, uint32_t frequency = BMP3XX_DEFAULT_SPIFREQ);
51  uint8_t chipID(void);
52  float readTemperature(void);
53  float readPressure(void);
54  float readAltitude(float seaLevel);
55 
56  bool setTemperatureOversampling(uint8_t os);
57  bool setPressureOversampling(uint8_t os);
58  bool setIIRFilterCoeff(uint8_t fs);
59  bool setOutputDataRate(uint8_t odr);
60 
62  bool performReading(void);
63 
65  double temperature;
67  double pressure;
68 
69 private:
70  Adafruit_I2CDevice *i2c_dev = NULL;
71  Adafruit_SPIDevice *spi_dev = NULL;
72 
73  bool _init(void);
74 
75  bool _filterEnabled, _tempOSEnabled, _presOSEnabled, _ODREnabled;
76  uint8_t _i2caddr;
77  int32_t _sensorID;
78  int8_t _cs;
79  unsigned long _meas_end;
80 
81  uint8_t spixfer(uint8_t x);
82 
83  struct bmp3_dev the_sensor;
84 };
85 
86 #endif
bool performReading(void)
Perform a reading in blocking mode.
Definition: Adafruit_BMP3XX.cpp:310
double temperature
Temperature (Celsius) assigned after calling performReading()
Definition: Adafruit_BMP3XX.h:65
float readAltitude(float seaLevel)
Calculates the altitude (in meters).
Definition: Adafruit_BMP3XX.cpp:288
float readTemperature(void)
Performs a reading and returns the ambient temperature.
Definition: Adafruit_BMP3XX.cpp:253
float readPressure(void)
Performs a reading and returns the barometric pressure.
Definition: Adafruit_BMP3XX.cpp:272
#define BMP3XX_DEFAULT_SPIFREQ
The default SPI Clock speed.
Definition: Adafruit_BMP3XX.h:35
bool setTemperatureOversampling(uint8_t os)
Setter for Temperature oversampling.
Definition: Adafruit_BMP3XX.cpp:401
bool setOutputDataRate(uint8_t odr)
Setter for output data rate (ODR)
Definition: Adafruit_BMP3XX.cpp:475
double pressure
Pressure (Pascals) assigned after calling performReading()
Definition: Adafruit_BMP3XX.h:67
bool begin_SPI(uint8_t cs_pin, SPIClass *theSPI=&SPI, uint32_t frequency=BMP3XX_DEFAULT_SPIFREQ)
Sets up the hardware and initializes hardware SPI.
Definition: Adafruit_BMP3XX.cpp:107
#define BMP3XX_DEFAULT_ADDRESS
The default I2C address.
Definition: Adafruit_BMP3XX.h:33
bool begin_I2C(uint8_t addr=BMP3XX_DEFAULT_ADDRESS, TwoWire *theWire=&Wire)
Initializes the sensor.
Definition: Adafruit_BMP3XX.cpp:76
Definition: Adafruit_BMP3XX.h:41
uint8_t chipID(void)
Reads the chip identifier.
Definition: Adafruit_BMP3XX.cpp:264
Adafruit_BMP3XX()
Instantiates sensor.
Definition: Adafruit_BMP3XX.cpp:58
bool setIIRFilterCoeff(uint8_t fs)
Setter for IIR filter coefficient.
Definition: Adafruit_BMP3XX.cpp:449
bool setPressureOversampling(uint8_t os)
Setter for Pressure oversampling.
Definition: Adafruit_BMP3XX.cpp:424