Uživatelské nástroje

Nástroje pro tento web


education:arduino_vl53l0x

VL53L0X

VL53L0X

  • Time-of-Flight senzor vzdálenosti
  • Komunikace přes I2C
  • Měření až do 2m
  • Napájení 2.6 - 3.5V
  • Měření IR laserem 1. třídy
  • Programovatelný digitální výstup GPIO1
  • XSHUT shutdown pin pro řízení spotřeby a reset senzoru

Adafruit_VL53L0X
Data sheet
Dokumentace API

VL53L0X ARDUINO ESP32
I2C SDA A4 GPIO21
SCL A5 GPIO22
Volitelné1) XSHUT LIBOVOLNÝ
GPIO1 LIBOVOLNÝ

Senzoru lze přidělit vlastní I2C adresu. To umožňuje používání více těchto senzorů na jedné I2C sběrnici.

3 režimy měření:

  1. Jednotlivé - Po naměření jedné hodnoty přejde do SW standby
  2. Stálé - Po dokončení jednoho měření se spustí další
  3. Stálé s časováním - Stálé měření v nastaveném intervalu

4 profily:

Knihovna obsahuje:
begin(i2c_addr, debug, i2c, vl_config); - i2c_addr - nová adresa, debug - true/false, i2c - I2C sběrnice, vl_config - profily
getSingleRangingMeasurement(pRangingMeasurementData, debug); - pRangingMeasurementData - proměnná pro uložení dat, debug - true/false
RangeStatus - stav [uint8_t]
RangeMilliMeter - vzdálenost [mm]

VL53L0X.ino
#include "Adafruit_VL53L0X.h" // Kód je psaný pro verzi knihovny 1.2.2
 
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
 
void setup() {
  Serial.begin(9600);
  Serial.println("\nVL53L0X test");
 
  if (!lox.begin(0x30, false, &Wire, Adafruit_VL53L0X::VL53L0X_SENSE_DEFAULT)) {
    Serial.println(F("Chyba komunikace s VL53L0X"));
    while (1) ;
  }
}
 
void loop() {
  VL53L0X_RangingMeasurementData_t measure;
 
  lox.getSingleRangingMeasurement(&measure, false);  // 'true' pro výpis ladících dat (debug)
 
  switch (measure.RangeStatus) { // Vyhodnocení stavu
    case 0: Serial.print("Valid\t"); break;
    case 1: Serial.print("Sigma fail"); break;
    case 2: Serial.print("Signal fail"); break;
    case 3: Serial.print("Min Range Fail"); break;
    case 4: Serial.print("Phase Fail"); break;
    case 5: Serial.print("HardWare Fail"); break;
    case 255: Serial.print("None\t"); break;
  }
  Serial.print("\t");
  Serial.print(measure.RangeMilliMeter);  Serial.println(" mm");
 
  delay(500);
}
1)
Není nutné zapojovat
education/arduino_vl53l0x.txt · Poslední úprava: 2023/08/18 12:37 autor: 127.0.0.1