Código de búsqueda

Uso de un medidor de distancia láser CJMCU VL53L0X con Arduino

Uso de un medidor de distancia láser CJMCU VL53L0X con Arduino

Este tutorial muestra cómo usar el medidor de distancia láser CJMCU VL53L0X con un Arduino. Este módulo, que incorpora un sensor de tiempo de vuelo VL53L0X de Texas Instruments y un convertidor de nivel bidireccional TXS0108E (en el video en 00:06), ofrece mediciones de distancia precisas de hasta dos metros (en el video en 00:52). Su compatibilidad con diversos niveles lógicos (3.3V, 1.8V, 5V) simplifica la integración con distintos microcontroladores (en el video en 00:21). Este proyecto abre un amplio abanico de posibilidades.

Ideas para proyectos:

  • Robótica: implementar la evitación de obstáculos en robots.
  • Automatización: controlar maquinaria según la proximidad.
  • Hogar inteligente: Crear iluminación automática en función de la distancia.
  • Seguridad: Desarrollar un sistema de alarma por proximidad.

Hardware/Componentes

Para construir este proyecto, necesitará los siguientes componentes:

  • Placa Arduino (cualquier modelo servirá)
  • CJMCU VL53L0X Módulo medidor de distancia láser
  • Cables puente

Guía de cableado

El módulo VL53L0X se conecta al Arduino de la siguiente manera:

Conecta el pin VCC del módulo al pin 5V del Arduino. El regulador interno del módulo se encarga de proporcionar los 3.3V necesarios para el sensor. (en el video a las 01:50)

Conecte el pin GND del módulo al pin GND del Arduino.

Conecte el pin SDA del módulo al pin A4 del Arduino.

Conecta el pin SCL del módulo al pin A5 del Arduino.

Deje el pin XSHUT sin conectar a menos que necesite usarlo para el control de apagado. (en el vídeo a las 03:50)

Explicación del código

El código proporcionado utiliza la biblioteca VL53L0X. Aquí tienes una explicación de las partes clave configurables:


#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  // ... other setup code ...
  sensor.setTimeout(500); // Set timeout to 500ms (in video at 06:40)
  sensor.startContinuous(); // Start continuous measurement mode (in video at 06:50)
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters()); // Read distance in mm (in video at 07:01)
  // ... other loop code ...
}

Elsensor.setTimeout(500)La línea establece el tiempo de espera para las mediciones de distancia en 500 milisegundos. Ajuste este valor si es necesario para su aplicación (en el video a las 06:40). Elsensor.startContinuous()La función inicia mediciones continuas de distancia, proporcionando lecturas de distancia lo más rápidamente posible (en el vídeo a las 06:50). Elsensor.readRangeContinuousMillimeters()La función devuelve la distancia medida en milímetros (en el vídeo a las 07:01).

Proyecto/Demostración en vivo

El video demuestra el funcionamiento del sensor, mostrando cómo las lecturas de distancia cambian a medida que cambia la distancia del sensor al objetivo. Las lecturas son precisas dentro de unos pocos milímetros, especialmente a distancias mayores de 10mm (en el video en 08:20). A distancias muy cortas (menos de 10mm), la precisión disminuye (en el video en 09:50). La demostración también muestra que las superficies reflectantes pueden afectar las lecturas, particularmente si el láser no está perpendicular a la superficie (en el video en 10:32).

Capítulos

  • [00:00] Introducción y visión general del proyecto
  • [00:48] Detalles del sensor VL53L0X
  • [01:41] Descripción general y especificaciones del módulo
  • [02:55] Aplicaciones y estándares
  • [03:35] Asignación de Pines y Conexiones
  • [05:29] Explicación del código
  • [07:45] Cableado y conexiones
  • [08:18] Demostración en vivo
136-Source code for the VL523L0X distance measurement module for Arduino
Idioma: C++
/* This example shows how to use continuous mode to take
range measurements with the VL53L0X. It is based on
vl53l0x_ContinuousRanging_Example.c from the VL53L0X API.

The range readings are in units of mm. 
Updated by Ahmad Shamshiri for Robojax.com on July 23, 2018 in Ajax, Ontario, Canada.
Watch video instructions for this code: https://youtu.be/0PnAyt51IU4
Download the library and get other resources for this code at http://robojax.com
*/

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;

void setup()
{
  Serial.begin(9600);
  Serial.println("Robojax CJMCU VL523L0X laser distance test");
  Wire.begin();

  sensor.init();
  sensor.setTimeout(500);

  // Start continuous back-to-back mode (take readings as
  // fast as possible).  To use continuous timed mode
  // instead, provide a desired inter-measurement period in
  // ms (e.g. sensor.startContinuous(100)).
  sensor.startContinuous();
}

void loop()
{
  Serial.print(sensor.readRangeContinuousMillimeters());// print distance

  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }

  Serial.println();
}

Recursos y referencias

Archivos📁

No hay archivos disponibles.