Misurare la distanza con il modulo laser VL53L0X a 6 pin e LCD1602-I2C per Arduino

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.

VL53L0X 200cm range sensor

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

ProduttoreSTMicroelectronics
Numero di parteVL53L0X
Tensione logica/IO1.8 V a 2.8 V
Tensione di alimentazione2,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

Arduino wiring for VL53L0X and LCD1602 I2C (4 wires LCD)

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).

Immagini

VL53L0X 200cm range sensor
VL53L0X 200cm range sensor
Arduino wiring for VL53L0X and LCD1602 I2C (4 wires LCD)
Arduino wiring for VL53L0X and LCD1602 I2C (4 wires LCD)
113-Measure distance with a laser VL53L0X 6-pin module and an LCD1602-I2C for Arduino
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

File Fritzing

Altri file