Hallo,
ich versuche mich gerade an dem tof Sensor und bekomme es einfach nicht hin, ihn ein- und auszuschalten über den XSHUT Port.
Sobald ich das hier verwende im Setup funktioniert der Sensor nicht mehr und gibt mir immer nur den gleichen Wert von "Reading a measurement... Distance (mm): 256". Sobald ich die Zeile wieder auskommentiere funktioniert er.
pinMode(xShut, OUTPUT); //Wenn ich das auskommentiere funktioniert er
digitalWrite(xShut, LOW); //Egal ob LOW oder HIGH
Hier ist mal mein ganzer Code. Ich möchte ihn gerne über Serial ein- und ausschalten.
#include "Adafruit_VL53L0X.h"
#define xShut 14
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(115200);
// wait until serial port opens for native USB devices
while (! Serial) {
delay(1);
}
Serial.println("Adafruit VL53L0X test");
if (!lox.begin()) {
Serial.println(F("Failed to boot VL53L0X"));
while(1);
}
// power
Serial.println(F("VL53L0X API Simple Ranging example\n\n"));
pinMode(xShut, OUTPUT);
digitalWrite(xShut, LOW);
delay(100);
}
void loop() {
if (Serial.available() > 0) // Daten werden empfangen
{
String inString = Serial.readStringUntil('\n'); // Zeichen vom Seriellen Port in inByte ablegen
inString.trim();
if (inString.equals("tofOn")) {
digitalWrite(xShut, HIGH);
Serial.println("Sensor on");
} else if (inString.equals("tofOff")) {
digitalWrite(xShut, LOW);
Serial.println("Sensor off");
}
}
VL53L0X_RangingMeasurementData_t measure;
Serial.print("Reading a measurement... ");
lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout!
if (measure.RangeStatus != 4) { // phase failures have incorrect data
Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
} else {
Serial.println(" out of range ");
}
delay(100);
}
Hier ist noch meine Verkabelung. Ich benutze die abgebildeten Boards.
