Le immagini dei prodotti sono solo a scopo informativo e potrebbero presentare piccole differenze, a seconda del lotto e del fornitore. Le specifiche e i prezzi dei prodotti potrebbero essere soggetti a modifiche senza preavviso. Facciamo del nostro meglio per aggiungere specifiche quanto più precise e corrette possibili alla pagina del prodotto, ma è possibile che non siano del tutto corrette. Se identifichi un caso del genere, ti preghiamo di segnalarcelo.
Il prodotto è destinato agli specialisti e richiede personale qualificato e autorizzato. Il prodotto non include istruzioni di montaggio/uso . La messa in funzione del prodotto da parte di persone non qualificate comporta la perdita della garanzia secondo i Termini e Condizioni presenti sul sito.
Le specifiche tecniche indicate (corrente, potenza, ecc.) rappresentano valori massimi consentiti in condizioni ideali di funzionamento. Per un utilizzo sicuro e una durata ottimale, si raccomanda di utilizzare il prodotto in regime continuo a non più del 50% dei valori massimi specificati.
Modulo sensore ToF VL53L5CX 8x8 zone, I2C, 3-5 VDC
Sensore Time-of-Flight VL53L5CX ad alta precisione con rilevamento multi-zona configurabile fino a 8x8 (64 zone), misura la distanza fino a 4 metri utilizzando un laser VCSEL invisibile e funziona a frequenze fino a 60 Hz. Interfaccia I2C, alimentazione 3 - 5 VDC, compatibile con Arduino, ESP32, Raspberry Pi e altre piattaforme, adatto per robotica, mappatura dell'ambiente, rilevamento ostacoli e sistemi intelligenti.
Spedito entro giovedì 22 ottobre
Acquistando questo prodotto guadagni 6,47 RON in punti fedeltà.
Spedizione veloce gratuita per ordini superiori a 100EUR nella maggior parte de paesi UE.
Spediamo dal nostro magazzino entro 24 ore
Ricevi punti a ogni ordine, per un valore del 5%.
Il modulo sensore VL53L5X V2 integra il chip VL53L5CX, un sensore Time-of-Flight (ToF) sviluppato da STMicroelectronics, che misura la distanza tramite il tempo di volo della luce emessa da un laser VCSEL. A differenza dei classici sensori IR basati sull’intensità della luce riflessa, la tecnologia ToF offre una misurazione assoluta della distanza, indipendentemente dal colore o dalla riflettanza dell’oggetto bersaglio, rendendolo adatto per robotica, rilevamento ostacoli, mappatura dell’ambiente, sistemi di accesso, dispositivi intelligenti e automazioni.
Il sensore offre un rilevamento multi-zona configurabile, con una griglia fino a 8x8 zone, cioè 64 zone di misurazione simultanea, oppure 4x4 zone per applicazioni più semplici. Ampio campo visivo di 63° diagonale, e ogni zona consente la misurazione della distanza fino a un bersaglio fino a 4 metri, con una frequenza massima di 60 Hz. L’emettitore è un laser VCSEL a 940 nm, invisibile all’occhio umano, e gli algoritmi di tipo istogramma sviluppati da ST consentono il rilevamento di più oggetti distinti nello stesso campo visivo e migliorano l’immunità ai riflessi di un eventuale vetro di protezione.
Tra le principali caratteristiche si annoverano i pin dell’interfaccia VIN, GND, SCL, SDA, INT e LPn marcati direttamente sul circuito, il coperchio ottico di protezione montato sopra il sensore per resistenza alla polvere e maggiore precisione, nonché i due fori di montaggio presenti sulla scheda. L’alimentazione avviene con una tensione nell’intervallo 3 - 5 VDC, applicata al pin VIN, e il set di pin incluso consente il montaggio su breadboard o la saldatura di cavi.
Tramite l’interfaccia I2C, il modulo è compatibile con Arduino, ESP32, STM32, Raspberry Pi e altre piattaforme che dispongono di questa interfaccia.
Specifiche:
Sensore: VL53L5CX (STMicroelectronics)
Tecnologia: Time-of-Flight (ToF), laser VCSEL 940 nm
Tensione di alimentazione: 3 - 5 VDC
Interfaccia di comunicazione: I2C
Frequenza di misurazione: fino a 60 Hz
Campo visivo (FoV): 63° diagonale, configurabile via software
Rilevamento multi-zona: 8x8 zone (64 zone) o 4x4 zone (16 zone), configurabile
Distanza assoluta: 0 - 400 cm
Risoluzione della distanza: 1 mm (tipica)
Protezione: Coperchio ottico per resistenza alla polvere e maggiore precisione
Dimensioni: 10.5 x 25 mm
Pinout:

| Connettore | Pin | Funzione |
|---|---|---|
| Header comunicazione | VIN | Alimentazione sensore 3 - 5 VDC |
| Header comunicazione | GND | Massa |
| Header comunicazione | SCL | Clock per la comunicazione I2C |
| Header comunicazione | SDA | Dati per la comunicazione I2C |
| Header comunicazione | INT | Segnale di interruzione (interrupt), per il risveglio dell’host al rilevamento di un oggetto |
| Header comunicazione | LPn | Controllo Low Power e reset del sensore, attivo LOW |
Utilizzo:
Saldare il set di pin sulla scheda se si desidera il montaggio su breadboard, rispettando l’orientamento dei fori marcati sul circuito.
Collegare il modulo al microcontrollore tramite l’interfaccia I2C, collegando SDA e SCL ai pin corrispondenti sulla scheda di sviluppo.
Alimentare il modulo con una tensione nell’intervallo 3 - 5 VDC sul pin VIN e collegare GND alla massa comune del sistema.
Non invertire la polarità dell’alimentazione e non superare la tensione massima consentita di 5 VDC.
Inizializzare il sensore utilizzando una libreria dedicata VL53L5CX, disponibile per Arduino, ESP32 o altre piattaforme.
Impostare la risoluzione desiderata, 4x4 o 8x8 zone, e la frequenza di misurazione, fino a 60 Hz, prima di iniziare l’acquisizione dei dati.
Leggere i valori di distanza per ciascuna zona e elaborarli in base all’applicazione, sia per il rilevamento di ostacoli, sia per la mappatura o il riconoscimento dei gesti.
Utilizzare il pin INT per risvegliare il microcontrollore al rilevamento di un oggetto nelle vicinanze quando si attiva la modalità a basso consumo.
Utilizzare il pin LPn per attivare o disattivare il sensore, mantenendolo su HIGH per il funzionamento normale.
Per risultati stabili, mantenere pulito il coperchio ottico, senza polvere o impronte, ed evitare superfici molto riflettenti davanti al sensore a distanze ridotte.
- Chipset
- VL53L5CX
Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.
Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.
Avertismente generale de siguranta:
Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.
Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.
Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.
Nu lasati produsul alimentat nesupravegheat in timpul testelor.
Produsul nu este jucarie si nu este destinat copiilor.
Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.
Identificare produs:
Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.
Producator / Importator / Distribuitor:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Website: www.sigmanortec.ro
Persoana responsabila in UE:
Sigmanortec S.R.L.
Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania
E-mail: [email protected]
Documentatie si siguranta:
Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].
/*
Arduino sketch for the VL53L5CX 8x8-zone Time-of-Flight sensor module
Board used: Arduino Uno (or any 5V/3.3V compatible board with I2C)
Wiring (module pin -> Arduino pin):
VIN -> 5V (module accepts 3 - 5 VDC)
GND -> GND
SCL -> A4 (SDA) ... see below, SCL -> A5
SDA -> A4
SCL -> A5
INT -> D2 (optional, interrupt output, active LOW)
LPn -> D3 (optional, keep HIGH for normal operation)
Library required (install from Arduino Library Manager):
"SparkFun VL53L5CX Arduino Library"
(search for VL53L5CX in the Library Manager and install the SparkFun version)
This sketch initializes the sensor, sets the 8x8 zone resolution,
starts ranging and prints the distance of every zone on the Serial Monitor.
*/
#include <Wire.h>
#include <SparkFun_VL53L5CX_Library.h>
SparkFun_VL53L5CX imager;
VL53L5CX_ResultsData measurementData;
int imageResolution = 0;
int imageWidth = 0;
const int INT_PIN = 2;
const int LPN_PIN = 3;
void setup()
{
Serial.begin(115200);
delay(1000);
Serial.println("VL53L5CX 8x8 zone Time-of-Flight sensor test");
pinMode(LPN_PIN, OUTPUT);
digitalWrite(LPN_PIN, HIGH); // keep sensor enabled, HIGH = normal operation
pinMode(INT_PIN, INPUT);
Wire.begin();
Wire.setClock(400000); // fast I2C mode
Serial.println("Initializing sensor, this can take a few seconds...");
if (imager.begin() == false)
{
Serial.println("Sensor not found, check wiring and power. Freezing...");
while (1)
;
}
imager.setResolution(64); // 8x8 = 64 zones, use 16 for 4x4
imageResolution = imager.getResolution();
imageWidth = sqrt(imageResolution);
imager.setRangingFrequency(15); // Hz, up to 60 Hz depending on resolution
imager.startRanging();
Serial.println("Sensor ready, starting measurements.");
}
void loop()
{
if (imager.isDataReady() == true)
{
if (imager.getRangingData(&measurementData))
{
Serial.println("---- New frame ----");
for (int y = 0; y < imageWidth; y++)
{
for (int x = 0; x < imageWidth; x++)
{
int index = x + y * imageWidth;
Serial.print(measurementData.distance_mm[index]);
Serial.print("\t");
}
Serial.println();
}
}
}
delay(5);
}
Il modulo con sensore VL53L5CX è una camera di distanza Time-of-Flight (ToF) che divide il campo visivo in una griglia fino a 8x8 zone e restituisce simultaneamente la distanza misurata in ogni zona, non un solo valore come i sensori di distanza classici.
È utile nei progetti di rilevamento ostacoli per robot mobili, conteggio di persone a una porta, controllo gestuale, arresto automatico di un macchinario all'avvicinarsi di una mano o mappatura semplice di una stanza, dove una singola lettura di distanza non è sufficiente.

Come funziona:
Il sensore emette impulsi di luce laser invisibile con un emettitore VCSEL a 940 nm e misura quanto tempo impiega la luce a raggiungere l'oggetto e a tornare alla matrice di fotorilevatori SPAD all'interno del chip.
Il principio di base di qualsiasi sensore ToF è che la distanza è uguale alla velocità della luce moltiplicata per il tempo di volo e divisa per due, cioè d = (c x t) / 2, dove c è la velocità della luce, circa 3 x 10 alla potenza 8 metri al secondo, mentre t è il tempo misurato di andata e ritorno.
Nel caso del VL53L5CX questo calcolo viene eseguito internamente, dall'elettronica del sensore, e il risultato arriva già elaborato tramite I2C, in millimetri, per ciascuna delle fino a 64 zone, con una frequenza fino a 60 Hz.
Il sensore può lavorare con risoluzione 4x4 zone, per applicazioni semplici e veloci, oppure 8x8 zone, per un maggiore dettaglio della scena, e la distanza massima utile è di circa 4 metri, con una precisione tipica intorno al 5 per cento della distanza misurata, che dipende dalla riflettanza del bersaglio e dalle condizioni di luce ambientale.
Cosa ti serve:
- 1 x Modulo sensore ToF VL53L5CX 8x8 zone, I2C, 3-5 VDC
- 1 x Placa dezvoltare Uno R3 cu Wifi ESP8266, compatibila Arduino
- 1 x 40 Fire Dupont 20cm, Tata-Mama
- 1 x Breadboard 830 puncte MB-102
Collegamento:
Il modulo si alimenta sul pin VIN con una tensione compresa tra 3 e 5 VDC, quindi può essere collegato direttamente all'uscita da 5 V di un Arduino Uno, senza convertitore di livello aggiuntivo, perché la scheda dispone già del regolatore e dell'adattamento del livello logico necessari per SDA e SCL. I pin LPn e INT sono opzionali per un collegamento di base, ma in questo tutorial li usiamo per mostrare come si controlla l'accensione del sensore e come si può leggere lo stato di interrupt.
| Pin del prodotto | Pin Arduino Uno | Ruolo |
|---|---|---|
| VIN | 5V | Alimentazione del modulo |
| GND | GND | Massa comune |
| SCL | A5 | Clock I2C |
| SDA | A4 | Dati I2C |
| LPn | D3 | Attivazione del sensore, HIGH per il funzionamento normale |
| INT | D2 | Segnale di interrupt al rilevamento di un oggetto |
Librerie:
Installa dal Library Manager la libreria SparkFun VL53L5CX Arduino Library, autore SparkFun Electronics, versione minima 1.0.3, cercando esattamente questo nome. La libreria Wire per la comunicazione I2C è già inclusa nell'Arduino IDE e non deve essere installata separatamente.
Il codice:
Il programma seguente inizializza il sensore, imposta la risoluzione a 8x8 zone e mostra sul monitor seriale la griglia di distanze letta a ogni frame.
/*
VL53L5CX 8x8 Multizone Time-of-Flight Sensor - Basic Reading Example
Board: Arduino Uno
Library: SparkFun VL53L5CX Arduino Library (by SparkFun Electronics)
This sketch initializes the VL53L5CX sensor over I2C, sets the
resolution to 8x8 zones and continuously prints the distance grid
(in millimeters) to the Serial Monitor.
*/
#include <Wire.h>
#include <SparkFun_VL53L5CX_Library.h>
// Pins used to control the sensor from the Arduino Uno
const int LPN_PIN = 3; // Low power / enable pin, HIGH = sensor enabled
const int INT_PIN = 2; // Interrupt output pin from the sensor
SparkFun_VL53L5CX myImager;
VL53L5CX_ResultsData measurementData; // Holds one frame of ranging data
int imageResolution = 0; // Current resolution reported by the sensor (16 or 64)
int imageWidth = 0; // Grid width used only for pretty printing
void setup()
{
Serial.begin(115200);
delay(1000);
Serial.println("VL53L5CX 8x8 Zone Distance Example");
// Configure control pins
pinMode(LPN_PIN, OUTPUT);
digitalWrite(LPN_PIN, HIGH); // Enable the sensor (LPn HIGH = normal operation)
pinMode(INT_PIN, INPUT_PULLUP);
Wire.begin();
Wire.setClock(400000); // Optional, use 400kHz I2C for faster frame transfer
Serial.println("Initializing sensor, this can take up to 10 seconds...");
if (myImager.begin() == false)
{
Serial.println("Sensor not found - check wiring and LPn pin. Freezing.");
while (1)
;
}
myImager.setResolution(8 * 8); // Enable all 64 zones
imageResolution = myImager.getResolution(); // Confirm resolution (16 or 64)
imageWidth = sqrt(imageResolution); // 4 or 8
myImager.startRanging();
Serial.println("Sensor ready, starting measurements.");
}
void loop()
{
// Just for demonstration, read the interrupt pin state
bool interruptActive = (digitalRead(INT_PIN) == LOW);
if (myImager.isDataReady())
{
if (myImager.getRangingData(&measurementData))
{
Serial.print("Interrupt active: ");
Serial.println(interruptActive ? "yes" : "no");
// Print the distance grid, row by row
for (int row = 0; row < imageWidth; row++)
{
for (int col = 0; col < imageWidth; col++)
{
int index = row * imageWidth + col;
Serial.print(measurementData.distance_mm[index]);
Serial.print("\t");
}
Serial.println();
}
Serial.println();
}
}
delay(50); // Small delay between polling cycles
}
Come funziona il codice:
All'inizio del programma si definiscono i pin LPN_PIN e INT_PIN, si crea l'oggetto myImager della classe SparkFun_VL53L5CX e la struttura measurementData, in cui la libreria inserirà i dati letti dal sensore, mentre le variabili imageResolution e imageWidth conservano la risoluzione corrente e il lato della griglia per una visualizzazione ordinata.
Nella funzione setup si avvia la comunicazione seriale a 115200 baud, si configura LPN_PIN come uscita e lo si imposta su HIGH per attivare il sensore, mentre INT_PIN viene configurato come ingresso con pull-up interno. Dopo Wire.begin si chiama myImager.begin, che inizializza il sensore e carica il firmware interno, poi myImager.setResolution(8 * 8) attiva tutte le 64 zone e myImager.startRanging() avvia le misurazioni continue.
Nella funzione loop si verifica prima di tutto lo stato del pin INT_PIN, solo per mostrare che il sensore segnala attivamente nuovi dati, poi si usa myImager.isDataReady() per sapere quando un nuovo frame è pronto, mentre myImager.getRangingData(&measurementData) porta i valori di distanza in mm nel vettore measurementData.distance_mm, che il programma scorre riga per riga per mostrare la griglia sul monitor seriale.
Risultato:
Apri il monitor seriale a 115200 baud. Dopo il caricamento del codice e l'inizializzazione del sensore vedrai periodicamente una griglia di 8x8 valori, ciascuno dei quali rappresenta la distanza in millimetri misurata nella rispettiva zona del campo visivo.
VL53L5CX 8x8 Zone Distance Example
Initializing sensor, this can take up to 10 seconds...
Sensor ready, starting measurements.
Interrupt active: no
512 498 505 511 620 615 609 598
520 501 499 507 611 602 598 590
530 510 495 500 600 590 585 580
545 522 501 498 588 579 570 565
560 535 510 495 575 566 560 552
578 548 520 500 562 555 548 540
595 562 530 505 550 542 535 528
610 578 540 512 540 532 525 518
Problemi frequenti:
Se sul monitor seriale compare il messaggio che il sensore non è stato trovato, verifica prima di tutto i collegamenti SDA e SCL, perché i fili scambiati tra loro sono la causa più frequente, e assicurati che LPn sia su HIGH, non flottante né collegato a massa.
Se i valori mostrati sono sempre 0 oppure molto alti e instabili, controlla di aver chiamato myImager.startRanging() dopo l'impostazione della risoluzione e di lasciare un piccolo delay tra le letture, perché una funzione loop troppo veloce senza il controllo di isDataReady può leggere frame parziali.
Se il modulo funziona correttamente al primo avvio ma si blocca dopo un po' di tempo, controlla l'alimentazione, perché un cavo VIN troppo sottile o un'alimentazione instabile possono causare reset del sensore, soprattutto quando ci sono più moduli I2C sullo stesso bus.
Se usi più sensori VL53L5CX sullo stesso bus I2C e risponde solo uno, tieni LPn su LOW su tutti i sensori tranne uno, cambia il suo indirizzo I2C dal codice, poi attiva a turno anche il sensore successivo, perché ciascuno ha bisogno di un indirizzo univoco.
Se le distanze lette differiscono da una misura fatta con il metro, tieni presente che il sensore riporta la distanza perpendicolare alla superficie del bersaglio, non la distanza in linea retta verso un punto angolare, e che le superfici molto riflettenti o di colore molto scuro possono ridurre la portata utile.
Limiti e consigli:
Il sensore misura distanze utili fino a circa 4 metri, con una precisione tipica intorno al 5 per cento della distanza, che peggiora in condizioni di luce solare forte e diretta sul bersaglio o sull'obiettivo.
La frequenza di 60 Hz è un massimo teorico disponibile soprattutto con risoluzione 4x4, mentre a 8x8 zone il tempo di elaborazione per frame è maggiore, quindi per applicazioni veloci scegli la risoluzione 4x4 se non hai bisogno di un dettaglio fine della scena.
Il coperchio ottico di protezione deve essere mantenuto pulito, perché polvere o impronte possono introdurre errori di misura o ridurre il raggio d'azione del sensore.
Partendo da questo montaggio di base puoi realizzare un rilevatore di presenza su più zone, un semplice sistema di evitamento ostacoli per un robot mobile oppure un'applicazione di conteggio delle persone che passano attraverso il vano di una porta, usando la griglia di 64 zone per distinguere più bersagli nello stesso campo visivo.