Hallo zusammen,
ich möchte 2 Geräte über SPI anschließen - einen BMP280-Sensor und ein Micro-SD-Modul
Wenn ich den Drucksensor über CS =10 anschließe, krieg ich einwandfrei die Werte übermittelt.
Wenn ich jetzt aber das SD-Modul über CS=9 anschließe, werden der BMP und das SD-Modul garnicht mehr erkannt.
Es reicht auch aus, dass ich nur im Code den Befehl gebe, den Arduino überprüfen zu lassen, ob das SD-Modul angeschlossen ist, egal ob es physisch wirklich dranhängt oder nicht.
In weiterer Folge gibt mir der BMP also keine Werte mehr aus, sondern nur noch 0.
#include <Wire.h>
#include <SPI.h>
#include<SD.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_Sensor.h>
#define BMP_SCL 13
#define BMP_SDO 12
#define BMP_SDA 11
#define BMP_CSB1 10
Adafruit_BMP280 bmp(BMP_CSB1, BMP_SDA, BMP_SDO, BMP_SCL);
float h_0, h_1, h;
void setup()
{
Serial.begin(115200);
Serial.println("BMP280 & SD Test");
if (!bmp.begin()) {
Serial.println("BMP nicht gefunden");
}
if (!SD.begin(9)) //Wenn ich diesen Teil auskommentiere, kann der Sensor einwandfrei gelesen werden
{
Serial.println("SD nicht gefunden");
delay(500);
}
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_1); /* Standby time. */
h_0 = bmp.readAltitude(1013.25);
Serial.print(F("Anfangshoehe = "));
Serial.print(h_0);
Serial.println(" m");
delay(1000);
}
void loop() {
h_1=bmp.readAltitude(1013.25);
h=h_1-h_0;
Serial.print("relative Hoehe: ");
Serial.print(h);
Serial.println(" m");
Serial.println();
delay(10);
}