2 датчика BME 280 по протоколу isp

tall_dwarf

✩✩✩✩✩✩✩
8 Дек 2024
3
0
Здравствуйте, пытаюсь подключить несколько датчиков BME 280 по протоколу isp. По отдельности датчики работают (выдают температуру, влажность, давление и высоту) при проверке через пример из библиотеки Adafruit_BME280.h bme_test. При установке двух датчиков ( шина питания, земли, тактового и передачи данных общие, а пин CB переопределил для каждого датчика) выдают в показаниях везде 0. Возможно ли это из-за того что силы тока не хватает на питания датчиков?
Ниже привожу код
C++:
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS1 10
#define BME_CS2 9

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme1(BME_CS1, BME_MOSI, BME_MISO, BME_SCK);
Adafruit_BME280 bme2(BME_CS2, BME_MOSI, BME_MISO, BME_SCK);

unsigned long delayTime;

void setup() {
    Serial.begin(9600);
    while(!Serial);   
    delayTime = 10000;
    Serial.println();
}


void loop() {
    printValues(bme1);
    printValues(bme2);
    delay (delayTime);
}


void printValues(Adafruit_BME280 bme) {
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" °C");

    Serial.print("Pressure = ");

    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");

    Serial.print("Approx. Altitude = ");
    Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
    Serial.println(" m");

    Serial.print("Humidity = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");

    Serial.println();
}
 

tall_dwarf

✩✩✩✩✩✩✩
8 Дек 2024
3
0
@viktor1703, спасибо, добавил строчки кода (приведены ниже), заработало
C++:
void setup() {
    Serial.begin(9600);
    while(!Serial);  
    delayTime = 10000;
    Serial.println();
  unsigned status1 , status2;
  status1 = bme1.begin();
  status2 = bme2.begin();

}
 
Изменено: