Ich habe mal wieder ein Problem. Ich habe am Arduino zwei Sensoren, ein Beschleunigungssensor (ADXL345) und einen Laser-Entfernungsmesser (VL53L0X). Der Beschleunigungssensor funktioniert ohne Probleme, der Entfernungsmesser jedoch lässt sich nicht starten, geht in den failed Zweig.
Wire.begin();
Serial.println("VL53L1X Qwiic Test (");
if (distanceSensor.begin() != 0) //Begin returns 0 on a good init
{
Serial.println("Sensor failed to begin. Please check wiring. Freezing...");
while (1);
}
Serial.println("Sensor online!");
Wenn ich den Laser-Entfernungsmesser alleine betreibe, dann funktioniert er, aber gemeinsam mit dem Beschleunigungssensor leider nicht. Beide Sensoren haben aber verschiedene Adressen. Und wenn beide gemeinsam angeschlossen sind, lassen sich auch beide durch das I2CScanner Skript ansprechen.
Scanning...
I2C device found at address 0x29 !
I2C device found at address 0x53 !
done
Da ich jetzt schon so langsam am verzweifeln bin, habe ich die Hoffnung das jemand mir noch mit einer guten Idee helfen kann.
Verwendest Du auch eine Library für den VL53L0X? In deinem, leider unvollständigen, Quellcode steht etwas von VL53L1X. Möglicherweise wurde da etwas zusammenkopiert, das nicht zu Deinem Sensor passt.
Welche lib benutzt du für den vl530x. Ich benutze den auch mit anderen i2c Geräten zusammen und hatte da noch nie Probleme. Evtl. Mal andere lib benutzen.
Danke für die vielen Antworten. Ich habe verschiedene Bibliotheken verwendet (Adafruit_VL53L0X.h, VL53L0X.h von Pololu).
Aber ich habe den Fehler jetzt gefunden. Ich hatte zwei identische VL53L0X Sensoren. Den einen hatte ich schon fest im Bus verlötet, in der Annahme das er problemlos funktionieren würde. Den anderen hatte ich mit einem weiteren Arduino dann Standalone getestet. Da der verlötete Sensor ja beim I2C Scanner eine Antwort geliefert hatte, bin ich irrtümlicher weise davon ausgegangen, das er auch funktioniert.
Ich habe jetzt aber mal den Sensor wieder ausgelötet und den anderen, wo ich wusste das er funktioniert, eingelötet und siehe da es funktioniert alles. Also lag es es an dem Sensor, der einfach nicht korrekt funktionierte.