Misurare la distanza con il modulo laser VL53L0X a 6 pin e LCD1602-I2C per Arduino
In questo tutorial impareremo come misurare la distanza usando il sensore laser VL53L0X e visualizzare i risultati su un LCD1602 con interfaccia I2C. Questo progetto consente di ottenere misurazioni di distanza precise in millimetri o centimetri, rendendolo un'aggiunta versatile a qualsiasi progetto basato su Arduino. Alla fine di questo tutorial avrai un sistema di misurazione della distanza completamente funzionante, facile da configurare e utilizzare.

Per ottenere questo, utilizzeremo il sensore di distanza laser VL53L0X, che comunica con l'Arduino tramite I2C. Il display LCD1602 fornirà una chiara rappresentazione visiva della distanza misurata. Per maggiore chiarezza sul processo di codifica, consultare il video (a 00:00).
Hardware spiegato
I componenti principali in questo progetto sono il sensore di distanza laser VL53L0X e il display LCD1602. Il VL53L0X utilizza un laser per misurare la distanza con precisione, rendendolo adatto a diverse applicazioni, tra cui la robotica e l'automazione. Funziona usando la comunicazione I2C, che consente una facile integrazione con Arduino.
Il display LCD1602 è un display a caratteri dotato di interfaccia I2C che può mostrare fino a 16 caratteri su due linee. Semplifica il processo di visualizzazione dei dati, poiché richiede meno pin rispetto ai LCD tradizionali. Insieme, questi componenti creano un sistema di misurazione della distanza potente e facile da usare.
Dettagli della scheda tecnica
| Produttore | STMicroelectronics |
|---|---|
| Numero di parte | VL53L0X |
| Tensione logica/IO | 1.8 V a 2.8 V |
| Tensione di alimentazione | 2,6 V a 3,5 V |
| Corrente di uscita (per canale) | ... |
| Corrente di picco (per canale) | ... |
| Linee guida sulla frequenza PWM | ... |
| Soglie logiche di ingresso | ... |
| Caduta di tensione / RDS(on)/ saturazione | ... |
| Limiti termici | ... |
| Pacchetto | ... |
| Note / varianti | ... |
- Assicurarsi che la tensione di alimentazione sia compresa tra 2,6 V e 3,5 V.
- Usare resistenze di pull-up sulle linee SDA e SCL se necessario.
- Tieni il sensore lontano da superfici riflettenti per evitare letture errate.
- Verificare l'indirizzo I2C (predefinito: 0x29 per il VL53L0X).
- Considerare la dissipazione del calore se utilizzato in ambienti ad alta temperatura.
Istruzioni di cablaggio

Per collegare il sensore VL53L0X e il display LCD1602, inizia collegando l'alimentazione e la massa. Collega ilVCCpin del VL53L0X al5Vpin sull'Arduino e ilGNDcollega il pin al GND dell'Arduino. Per l'LCD1602, collega il suoVCCallo stesso5VeGNDanche a terra.
Successivamente, collega le linee di comunicazione I2C. IlSDAIl pin del VL53L0X dovrebbe essere collegato alA4pin sull'Arduino, e ilSCLil pin dovrebbe andare aA5. IlXSHUTIl pin può essere collegato aD12sull'Arduino, ma può anche essere lasciato non collegato. Per l'LCD1602, assicuratiSDAeSCLsono anche collegati agli stessi pin del sensore VL53L0X.
Esempi di codice e guida passo-passo
VL53L0X sensor;
#include
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
Wire.begin();
sensor.init();
sensor.setTimeout(500);
sensor.startContinuous();
lcd.begin();
lcd.backlight();
}
Nella funzione setup, inizializziamo la comunicazione seriale e il bus I2C. Ilsensor.init()inizializza il sensore VL53L0X, mentrelcd.begin()Inizializza il display LCD. La retroilluminazione del display viene accesa, consentendo una buona visibilità.
void loop() {
int distance = sensor.readRangeContinuousMillimeters();
Serial.print("Distance: ");
lcd.clear();
lcd.print("Robojax VL53L0X");
lcd.setCursor(0,1);
lcd.print("Dist.: ");
lcd.setCursor(7,1);
lcd.print(distance);
Serial.println();
delay(100);
}
All'interno del ciclo, leggiamo continuamente la distanza utilizzandosensor.readRangeContinuousMillimeters()e stamparlo sul monitor seriale. Il display LCD viene aggiornato con la misura della distanza, fornendo un feedback in tempo reale. Il ritardo di 100 millisecondi garantisce che le letture non vengano aggiornate troppo frequentemente, permettendo una lettura agevole.
Dimostrazione / Cosa aspettarsi
All'accensione, il sistema misurerà continuamente la distanza e visualizzerà i risultati sul display LCD. Puoi aspettarti di vedere i valori di distanza cambiare mentre avvicini o allontani gli oggetti dal sensore. Se si verificano problemi con il sensore, come errori di timeout, messaggi appropriati verranno stampati sul monitor seriale (nel video a 03:15).
Cose di cui potresti avere bisogno
-
AmazonPurchase VL53L0X from Amazonamzn.to
-
eBayAcquista VL53l0x su eBayebay.us
-
AliExpressAcquista da 1 a 10 pezzi di VL53L0X da AliExpresss.click.aliexpress.com
-
BanggoodAcquista da 1 a 10 pezzi di VL53L0X da Banggoodbanggood.com
Risorse e riferimenti
-
EsternoAcquista da 1 a 10 pezzi di VL53L0X da AliExpresss.click.aliexpress.com
-
EsternoAcquista da 1 a 10 pezzi di VL53L0X da Banggoodbanggood.com
-
EsternoAcquista VL53l0x su eBayebay.us
-
EsternoPagina di download Adafruitlearn.adafruit.com
-
EsternoVL53L0X datasheet (PDF)st.com
File📁
File Fritzing
-
VL53L0X_Distance_sensor_Squares
application/zip0.02 MB
Altri file
-
Libreria Adafruit VL53L0X di Robojax
robojax-VL52L0X_Adafruit_VL53L0X-master.zip -
VL53L0X_Distance_sensor_purple
application/zip0.01 MB