Merge branch 'mjs513-master'
This commit is contained in:
commit
b2fd691dc7
|
|
@ -40,14 +40,40 @@ Adafruit_BME280::Adafruit_BME280(int8_t cspin, int8_t mosipin, int8_t misopin, i
|
||||||
@brief Initialise sensor with given parameters / settings
|
@brief Initialise sensor with given parameters / settings
|
||||||
*/
|
*/
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
bool Adafruit_BME280::begin(uint8_t addr)
|
bool Adafruit_BME280::begin(TwoWire *theWire)
|
||||||
|
{
|
||||||
|
_wire = theWire;
|
||||||
|
_i2caddr = BME280_ADDRESS;
|
||||||
|
return init();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Adafruit_BME280::begin(uint8_t addr)
|
||||||
|
{
|
||||||
|
_i2caddr = addr;
|
||||||
|
_wire = &Wire;
|
||||||
|
return init();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Adafruit_BME280::begin(uint8_t addr, TwoWire *theWire)
|
||||||
{
|
{
|
||||||
_i2caddr = addr;
|
_i2caddr = addr;
|
||||||
|
_wire = theWire;
|
||||||
|
return init();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Adafruit_BME280::begin(void)
|
||||||
|
{
|
||||||
|
_i2caddr = BME280_ADDRESS;
|
||||||
|
_wire = &Wire;
|
||||||
|
return init();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Adafruit_BME280::init()
|
||||||
|
{
|
||||||
// init I2C or SPI sensor interface
|
// init I2C or SPI sensor interface
|
||||||
if (_cs == -1) {
|
if (_cs == -1) {
|
||||||
// I2C
|
// I2C
|
||||||
Wire.begin();
|
_wire -> begin();
|
||||||
} else {
|
} else {
|
||||||
digitalWrite(_cs, HIGH);
|
digitalWrite(_cs, HIGH);
|
||||||
pinMode(_cs, OUTPUT);
|
pinMode(_cs, OUTPUT);
|
||||||
|
|
@ -149,10 +175,10 @@ uint8_t Adafruit_BME280::spixfer(uint8_t x) {
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
void Adafruit_BME280::write8(byte reg, byte value) {
|
void Adafruit_BME280::write8(byte reg, byte value) {
|
||||||
if (_cs == -1) {
|
if (_cs == -1) {
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr);
|
_wire -> beginTransmission((uint8_t)_i2caddr);
|
||||||
Wire.write((uint8_t)reg);
|
_wire -> write((uint8_t)reg);
|
||||||
Wire.write((uint8_t)value);
|
_wire -> write((uint8_t)value);
|
||||||
Wire.endTransmission();
|
_wire -> endTransmission();
|
||||||
} else {
|
} else {
|
||||||
if (_sck == -1)
|
if (_sck == -1)
|
||||||
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
||||||
|
|
@ -175,11 +201,11 @@ uint8_t Adafruit_BME280::read8(byte reg) {
|
||||||
uint8_t value;
|
uint8_t value;
|
||||||
|
|
||||||
if (_cs == -1) {
|
if (_cs == -1) {
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr);
|
_wire -> beginTransmission((uint8_t)_i2caddr);
|
||||||
Wire.write((uint8_t)reg);
|
_wire -> write((uint8_t)reg);
|
||||||
Wire.endTransmission();
|
_wire -> endTransmission();
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)1);
|
_wire -> requestFrom((uint8_t)_i2caddr, (byte)1);
|
||||||
value = Wire.read();
|
value = _wire -> read();
|
||||||
} else {
|
} else {
|
||||||
if (_sck == -1)
|
if (_sck == -1)
|
||||||
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
||||||
|
|
@ -204,11 +230,11 @@ uint16_t Adafruit_BME280::read16(byte reg)
|
||||||
uint16_t value;
|
uint16_t value;
|
||||||
|
|
||||||
if (_cs == -1) {
|
if (_cs == -1) {
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr);
|
_wire -> beginTransmission((uint8_t)_i2caddr);
|
||||||
Wire.write((uint8_t)reg);
|
_wire -> write((uint8_t)reg);
|
||||||
Wire.endTransmission();
|
_wire -> endTransmission();
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)2);
|
_wire -> requestFrom((uint8_t)_i2caddr, (byte)2);
|
||||||
value = (Wire.read() << 8) | Wire.read();
|
value = (_wire -> read() << 8) | _wire -> read();
|
||||||
} else {
|
} else {
|
||||||
if (_sck == -1)
|
if (_sck == -1)
|
||||||
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
||||||
|
|
@ -267,16 +293,16 @@ uint32_t Adafruit_BME280::read24(byte reg)
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
|
||||||
if (_cs == -1) {
|
if (_cs == -1) {
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr);
|
_wire -> beginTransmission((uint8_t)_i2caddr);
|
||||||
Wire.write((uint8_t)reg);
|
_wire -> write((uint8_t)reg);
|
||||||
Wire.endTransmission();
|
_wire -> endTransmission();
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)3);
|
_wire -> requestFrom((uint8_t)_i2caddr, (byte)3);
|
||||||
|
|
||||||
value = Wire.read();
|
value = _wire -> read();
|
||||||
value <<= 8;
|
value <<= 8;
|
||||||
value |= Wire.read();
|
value |= _wire -> read();
|
||||||
value <<= 8;
|
value <<= 8;
|
||||||
value |= Wire.read();
|
value |= _wire -> read();
|
||||||
} else {
|
} else {
|
||||||
if (_sck == -1)
|
if (_sck == -1)
|
||||||
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
SPI.beginTransaction(SPISettings(500000, MSBFIRST, SPI_MODE0));
|
||||||
|
|
|
||||||
|
|
@ -165,8 +165,12 @@ class Adafruit_BME280 {
|
||||||
Adafruit_BME280(void);
|
Adafruit_BME280(void);
|
||||||
Adafruit_BME280(int8_t cspin);
|
Adafruit_BME280(int8_t cspin);
|
||||||
Adafruit_BME280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
|
Adafruit_BME280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin);
|
||||||
|
|
||||||
bool begin(uint8_t addr = BME280_ADDRESS);
|
bool begin(void);
|
||||||
|
bool begin(TwoWire *theWire);
|
||||||
|
bool begin(uint8_t addr);
|
||||||
|
bool begin(uint8_t addr, TwoWire *theWire);
|
||||||
|
bool init();
|
||||||
|
|
||||||
void setSampling(sensor_mode mode = MODE_NORMAL,
|
void setSampling(sensor_mode mode = MODE_NORMAL,
|
||||||
sensor_sampling tempSampling = SAMPLING_X16,
|
sensor_sampling tempSampling = SAMPLING_X16,
|
||||||
|
|
@ -186,6 +190,7 @@ class Adafruit_BME280 {
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
TwoWire *_wire;
|
||||||
void readCoefficients(void);
|
void readCoefficients(void);
|
||||||
bool isReadingCalibration(void);
|
bool isReadingCalibration(void);
|
||||||
uint8_t spixfer(uint8_t x);
|
uint8_t spixfer(uint8_t x);
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
Serial.println(F("BME280 test"));
|
Serial.println(F("BME280 test"));
|
||||||
|
|
||||||
if (! bme.begin()) {
|
if (! bme.begin(&Wire1)) {
|
||||||
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,8 @@ void setup() {
|
||||||
bool status;
|
bool status;
|
||||||
|
|
||||||
// default settings
|
// default settings
|
||||||
status = bme.begin();
|
// (you can also pass in a Wire library object like &Wire2)
|
||||||
|
status = bme.begin();
|
||||||
if (!status) {
|
if (!status) {
|
||||||
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
||||||
while (1);
|
while (1);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue