Utilizzando un sensore di distanza laser VL53L1X per misurare distanze fino a 4 metri
Il VL53L1X è un sensore di distanza laser a tempo di volo in grado di misurare distanze fino a 4 metri con alta precisione. Questo sensore comunica tramite I2C ed è versatile per varie applicazioni, come la robotica e l'automazione. In questo tutorial, esploreremo come configurare il sensore VL53L1X con un Arduino e leggere i valori di distanza in modo efficace.
Il sensore è alimentato da 3,3V o 5V e ha più pin per la comunicazione I2C, inclusi SDA e SCL. Il sensore può misurare distanze a una frequenza di 50Hz, consentendo letture di distanza rapide. Questo tutorial ti guiderà attraverso il processo di cablaggio e il codice necessario per far funzionare il sensore senza problemi. Per ulteriori chiarimenti, puoi controllare il video (nel video a 00:00).
Hardware spiegato
Il componente principale di questo progetto è il sensore di distanza laser VL53L1X, che utilizza una tecnologia nota come tempo di volo (ToF) per misurare le distanze. Questo significa che calcola la distanza da un oggetto misurando quanto tempo impiega un impulso laser a tornare dopo aver colpito un oggetto. Il sensore presenta una comunicazione I2C, che consente un'integrazione semplice con microcontrollori come Arduino. Oltre al sensore, avrai bisogno di una scheda Arduino per l'elaborazione. L'Arduino gestirà la comunicazione con il VL53L1X e visualizzerà le distanze misurate. Il setup è semplice, poiché il sensore può essere alimentato direttamente dai pin di uscita dell'Arduino.
Dettagli del datasheet
| Produttore | STMicroelectronics |
|---|---|
| Numero di parte | VL53L1X |
| Tensione Logica/Io | 3,3 - 5 V |
| Tensione di alimentazione | 2,6 - 5,5 V |
| Corrente di uscita (per canale) | Non applicabile |
| Corrente di picco (per canale) | Non applicabile |
| indicazioni sulla frequenza PWM | Non applicabile |
| Soglie di logica d'ingresso | 0,3 × VCC (basso), 0,7 × VCC (alto) |
| Caduta di tensione / RDS(on)/ saturazione | Non applicabile |
| Limiti termici | 0 a 85 °C |
| Pacchetto | 4,9 x 2,5 x 1,6 mm |
| Note / varianti | Sensore a tempo di volo per lunghe distanze |
- Alimenta il sensore con 3,3 V o 5 V secondo necessità.
- Usa i pin I2C, SDA e SCL, per la comunicazione.
- Imposta la modalità di distanza in base alle tue esigenze (breve, media, lunga).
- Assicurati che il sensore sia calibrato per letture di distanza accurate.
- Gestisci con attenzione le condizioni di luce ambientale poiché possono influire sulle misurazioni.
Istruzioni per il cablaggio

Per collegare il sensore VL53L1X a un Arduino, connetti il pin VCC del sensore al pin 5V dell'Arduino utilizzando un filo rosso. Collega il pin di massa (GND) del sensore al GND dell'Arduino utilizzando un filo marrone. Per la comunicazione I2C, collega il pin SDA del sensore al pin A4 dell'Arduino utilizzando un filo giallo e il pin SCL al pin A5 utilizzando un filo verde. Se desideri utilizzare i pin di interruzione e spegnimento opzionali, collega il pin di spegnimento al pin digitale 2 e il pin di interruzione al pin digitale 3, ma questi non sono necessari per il funzionamento di base.
Esempi di codice e guida passo passo
Nel codice, prima includiamo le librerie necessarie e definiamo i pin per il sensore. Creiamo un'istanza del sensore con la riga:
SFEVL53L1X distanceSensor;Questa linea inizializza il sensore, permettendoci di chiamare i suoi metodi successivamente nel programma. Successivamente, impostiamo la comunicazione I2C e inizializziamo il sensore:
void setup(void)
{
Wire.begin();
Serial.begin(9600);
Serial.println("VL53L1X Qwiic Test");
if (distanceSensor.begin() == 0) //Begin returns 0 on a good init
{
Serial.println("Sensor online!");
}
}In questo estratto, iniziamo la comunicazione I2C conWire.begin()e controlla se il sensore è stato inizializzato con successo. Infine, per leggere la distanza, utilizziamo il seguente codice nel ciclo:
void loop(void)
{
int distance = distanceSensor.getDistance(); // Get distance
Serial.print("Distance: ");
Serial.println(distance);
}Questo codice recupera la misura della distanza e la stampa sul monitor seriale. Il ciclo legge continuamente la distanza, consentendo aggiornamenti in tempo reale. Per un esempio completo di codice, si prega di fare riferimento al codice completo caricato sotto l'articolo.
Dimostrazione / Cosa Aspettarsi
Quando il sensore è impostato correttamente, puoi aspettarti che fornisca misurazioni di distanza accurate fino a 4 metri. Potresti notare lievi fluttuazioni nelle letture, specialmente in condizioni di illuminazione variabili (nel video alle 10:30). È essenziale assicurarsi che il sensore sia pulito e non ostruito per ottenere risultati precisi. Se incontri letture insolite, verifica che il sensore sia alimentato correttamente e che le connessioni I2C siano sicure. Le prestazioni del sensore possono essere influenzate dall'ambiente, in particolare in presenza di luce intensa o superfici riflettenti.
Timestamp video
- 00:00 Inizio
- 00:40 Introduzione
- 03:42 Scheda Tecnica Visitata
- 06:48 Soldato Pin header
- 08:22 Cablaggi spiegati
- 09:06 Codice spiegato
- 11:53 Dimostrazione
- 16:03 Dimostrazione nel Completo Buio
Risorse e riferimenti
-
EsternoVL53L0X Libreria Pololu (GitHub)github.com
File📁
Nessun file disponibile.