Usando um Sensor de Distância a Laser VL53L1X para Medir Distâncias de até 4 Metros

Usando um Sensor de Distância a Laser VL53L1X para Medir Distâncias de até 4 Metros

O VL53L1X é um sensor de distância a laser baseado em tempo de voo, capaz de medir distâncias de até 4 metros com alta precisão. Este sensor se comunica via I2C e é versátil para várias aplicações, como robótica e automação. Neste tutorial, vamos explorar como configurar o sensor VL53L1X com um Arduino e ler os valores de distância de forma eficaz.

VL53L1X_módulo

O sensor é alimentado por 3,3V ou 5V e possui múltiplos pinos para comunicação I2C, incluindo SDA e SCL. O sensor pode medir distâncias a uma frequência de 50Hz, permitindo leituras de distância rápidas. Este tutorial o guiará pelo processo de fiação e pelo código necessário para operar o sensor suavemente. Para mais esclarecimentos, você pode conferir o vídeo (no vídeo às 00:00).

Hardware Explicado

O componente principal deste projeto é o sensor de distância a laser VL53L1X, que utiliza uma tecnologia conhecida como tempo de voo (ToF) para medir distâncias. Isso significa que ele calcula a distância até um objeto cronometrando quanto tempo leva para um pulso de laser retornar após atingir um objeto. O sensor possui comunicação I2C, que permite fácil integração com microcontroladores como o Arduino. Além do sensor, você precisará de uma placa Arduino para processamento. O Arduino irá gerenciar a comunicação com o VL53L1X e exibir as distâncias medidas. A configuração é simples, pois o sensor pode ser alimentado diretamente pelos pinos de saída do Arduino.

Detalhes da Ficha Técnica

Fabricante STMicroelectronics
Número da peça VL53L1X
Tensão de lógica/IO 3,3 - 5 V
Tensão de alimentação 2.6 - 5.5 V
Corrente de saída (por canal) Não se aplica
Corrente de pico (por canal) Não aplicável
Orientação sobre frequência PWM Não aplicável
Limiares de lógica de entrada 0,3 × VCC (baixo), 0,7 × VCC (alto)
Queda de tensão / RDS(on)/ saturação Não aplicável
Limites térmicos 0 a 85 °C
Pacote 4,9 x 2,5 x 1,6 mm
Notas / variantes Sensor de tempo de voo de longo alcance

  • Alimente o sensor com 3,3V ou 5V, conforme necessário.
  • Use os pinos I2C, SDA e SCL, para comunicação.
  • Defina o modo de distância de acordo com suas necessidades (curto, médio, longo).
  • Certifique-se de que o sensor está calibrado para leituras de distância precisas.
  • Manuseie as condições de luz ambiente com cuidado, pois elas podem afetar as medições.

Instruções de Fiação

VL53L1X_wiring

Para conectar o sensor VL53L1X a um Arduino, conecte o pino VCC do sensor ao pino 5V do Arduino usando um fio vermelho. Conecte o pino de terra (GND) do sensor ao GND do Arduino usando um fio marrom. Para a comunicação I2C, conecte o pino SDA do sensor ao pino A4 do Arduino usando um fio amarelo e o pino SCL ao pino A5 usando um fio verde. Se você quiser usar os pinos opcionais de interrupção e desligamento, conecte o pino de desligamento ao pino digital 2 e o pino de interrupção ao pino digital 3, mas esses não são necessários para a operação básica.

Exemplos de Código e Passo a Passo

No código, primeiro incluímos as bibliotecas necessárias e definimos os pinos para o sensor. Criamos uma instância do sensor com a linha:

SFEVL53L1X distanceSensor;

Esta linha inicializa o sensor, permitindo-nos chamar seus métodos mais tarde no programa. Em seguida, configuramos a comunicação I2C e inicializamos o sensor:

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!");
  }
}

Neste trecho, começamos a comunicação I2C comWire.begin()e verifique se o sensor foi inicializado com sucesso. Finalmente, para ler a distância, usamos o seguinte código no loop:

void loop(void)
{
  int distance = distanceSensor.getDistance(); // Get distance
  Serial.print("Distance: ");
  Serial.println(distance);
}

Este código recupera a medição de distância e a imprime no monitor serial. O loop lê continuamente a distância, permitindo atualizações em tempo real. Para um exemplo de código completo, consulte o código completo carregado abaixo do artigo.

Demonstração / O Que Esperar

Quando o sensor está configurado corretamente, você pode esperar que ele forneça medições de distância precisas de até 4 metros. Você pode observar pequenas flutuações nas leituras, especialmente em condições de iluminação variadas (no vídeo às 10:30). É essencial garantir que o sensor esteja limpo e desobstruído para obter resultados precisos. Se você encontrar leituras incomuns, verifique se o sensor está alimentado corretamente e se as conexões I2C estão seguras. O desempenho do sensor pode ser afetado pelo ambiente, particularmente em luz intensa ou superfícies reflexivas.

Marcadores de Vídeo

  • 00:00 Iniciar
  • 00:40 Introdução
  • 03:42 Ficha Técnica Visitada
  • 06:48 Soldando cabeçotes de pino
  • 08:22 Fiação explicada
  • 09:06 Código explicado
  • 11:53 Demonstração
  • 16:03 Demonstração em Completamente Escuro

Imagens

VL53L1X Distance Sensor
VL53L1X Distance Sensor
VL53L1X_module
VL53L1X_module
VL53L1X_wiring
VL53L1X_wiring
259-code example using the VL53L1X Laser Range Sensor
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.