VL53L0X Time-of-Flight Laser Abstandssensor - Produktvorstellung

Unser AZ-Delivery Time-of-Flight (ToF) Laser-Distanzsensor kann in vielen Anwendungen eingesetzt werden. Heute zeigen wir Ihnen eines der spannenden Projekte, in denen Sie ihn einsetzen können. Unser TOF-Sensor kann im Normalmodus Entfernungen von bis zu 1 m mit einer Auflösung von 1 mm messen. Im Langstreckenmodus kann der Sensor Entfernungen von bis zu 2 m melden, allerdings mit geringerer Genauigkeit. Wir haben den ToF-Sensor zusammen mit einem ESP32, einem OLED-Display und einem Buck-Converter in einem 3D-gedruckten Gehäuse untergebracht und erhalten ein praktisches Gadget, das uns die Entfernung auf seinem 0,91-Zoll-Bildschirm anzeigt.

! Achtung: Wenn das Video bei Ihnen nicht angezeigt wird, sollten Sie Ihre Cookie Einstellungen überprüfen. Sie müssen alle Cookies akzeptieren, damit das Video sichtbar ist!

Hier finden Sie den Abstandssensor:

VL53L0X Time-of-Flight (ToF) Laser Abstandssensor

 

Verdrahtung:

 

Code:

 

/*
    ___ _____        ____       ___                      
   /   /__  /       / __ \___  / (_)   _____  _______  __
  / /| | / / ______/ / / / _ \/ / / | / / _ \/ ___/ / / /
 / ___ |/ /_/_____/ /_/ /  __/ / /| |/ /  __/ /  / /_/ / 
/_/  |_/____/    /_____/\___/_/_/ |___/\___/_/   \__, /  
                                                /____/   
  Produkt, Datenblatt und Pinout unter:
  https://www.az-delivery.de/

  Projekt:  DIY Abstandssensor mit ToF Sensor
  Datum:    11/2022

*/
#include <Arduino.h>
#include <Wire.h>             // for the ToF Sensor
#include <VL53L0X.h>          // for the ToF Sensor
#include <Adafruit_GFX.h>     // for the oled Display
#include <Adafruit_SSD1306.h> // for the oled Display

int btn = 16;

// FoT Sensor
VL53L0X sensor;
unsigned int measurement;

// Oled Display
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void showMeasurement()
{
  measurement = sensor.readRangeSingleMillimeters();
  display.clearDisplay();

  if (measurement >= 10 && measurement < 100)
    display.setCursor(36, 0);

  else if (measurement >= 100 && measurement < 1000)
    display.setCursor(18, 0);

  else
    display.setCursor(0, 0);

  display.print(measurement);
  display.setCursor(92, 0);
  display.print("mm");
  display.display();
}

void setup()
{
  Serial.begin(115200);
  pinMode(btn, INPUT);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextSize(3);
  display.setTextColor(WHITE);
  display.clearDisplay();
  display.display();
  Wire.begin();

  sensor.setTimeout(500);
  if (!sensor.init())
  {
    Serial.println("Failed to detect and initialize sensor!");
    while (1)
    {
    }
  }
  sensor.setMeasurementTimingBudget(200000); // increase timing budget to 200 ms for more accuracy
}

void loop()
{
  if (digitalRead(btn) == HIGH)
  {
    showMeasurement();
  }
}

2 Kommentare

Willem

Willem

Ein sehr schönes Projekt, wo kann ich das 3D gedruckte Gehäuse finden. Ich kann keinen Link dazu finden

Danke im voraus

Robert Kranich

Robert Kranich

Ein ganz großartiges Projekt, danke!

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert