Vl53L0 errore sopra i 1200mm

Ciao a tutti, sto creando un sketch con un VL53L0, mi va in errore sopra una certa distanza, pensando fosse un mio errore, ho caricato su Arduino lo sketch di esempio della libreria, mi da lo stesso problema sopra il 1200mm va fuori range, non dovrebbe arrivare a 2metri come misurazione?

Nel sensore ho usato i pin SDA e SCL, mentre ei pin GPI01 e XSHUT li ho lasciati senza nessun tipo di connessione.

Vi scrivo lo sketch di esempio della libreria, per comodità vostra, ho solo modificato il delay da 100 a 500 :slight_smile:

#include "Adafruit_VL53L0X.h"

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")); 
}


void loop() {
  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(500);
}

Dalla descrizione del sensore sul sito di Adafruit:

This is the 'big sister' of the VL6180X ToF sensor, and can handle about 50mm to 1200mm of range distance.

Invece della libreria di Adafruit (pesante e poco flessibile) scaricati ed usa quella di Pololu (la trovi sempre nel library manager del IDE) che ha delle funzionalità in più sia per la precisione che per la portata.

Guglielmo

Sempre grazie per i consigli ora scarico la libreria che mi hai detto :slight_smile:

una sola cosa non capisco il VL53L0 arriva a 1,2 metri?
Che scocciatura mi ero fidato della descrizione su Amazon che arrivava ai 2 metri :weary:

Con la libreria di Pololu, a discapito della precisione, c'è una voce per aumentare la distanza (long range) ... guarda negli esempi o nei sorgenti della libreria.

Guglielmo

Ciao, risolto, ma non con la libreria, anche con quella che mi hai indicato non arrivo oltre 1,2 m sarà proprio il sensore, oppure sono io che sbaglio qualcosa, per fortuna che ai tempi presi anche un VL53XL1 che arriva a 4 m e sto usando questo con la libreria idonea.

buon fine settimana :slight_smile:

Grazie delle informazioni ...
... effettivamente, da datasheez, il VL53L0 dovrebbe arrivare al massimo a 2mt mentre il VL53L1 viene effttivamente dato fono a 4mt.

Con la pololu son quasi sicuro che, studiandola bene e settando gli opportuni parametri, si arriva al limite dei 2mt ... però, se hai già cambiato semsore ... hai fatto prima :smiley:

Guglielmo

P.S.: ... con la Pololu, per fare il long range, occorre settare alcuni parametri:

sensor.setSignalRateLimit(0.1);
sensor.setVcselPulsePeriod(VL53L0X::VcselPeriodPreRange, 18);
sensor.setVcselPulsePeriod(VL53L0X::VcselPeriodFinalRange, 14);

... lo avevi fatto?