ویژگیهای ماژول فاصلهسنج لیزری VL53LXX
ماژول سنسور VL53L1X یک سنسور فاصله سنج لیزری بر اساس روش Time-of-Flight (ToF) است. ToF با سنجش مدت زمان رفت و برگشت یک موج، فاصله تا جسم را محاسبه میکند. سنسور VL53L1X می تواندفاصله ای تا رنج 4 متر را با فرکانس حداکثر 50Hz محاسبه کند.
کنترل این ماژول کم مصرف از طریق رابط I2C صورت میگیرد.
در این ماژول برخلاف نسلهای قبلی ماژولهای فاصله سنج، فیلترهای IR و optic به صورت فیزیکی گنجانده شده، و از آخرین تکنولوژی ToF شرکت ST بهره برده شده است که امکان محاسبه دقیق فاصله تا جسم را فراهم میآورد، مستقل از آنکه رنگ و یا جنس جسم هدف چه باشد.
ماژول دارای رگولاتوری بر روی برد است که به خوبی در هر دو مود 3.3 و 5 ولت قابل راهاندازی است.

مشخصات فنی ماژول فاصلهسنج لیزری VL53L1X
- ولتاژ کاری: 3v/5v
- رنج اندازه گیری فاصله: 40 تا 4000 میلیمتر
- خطای اندازهگیری: ±5%
- فرکانس نمونه برداری: تا 50 هرتز
- دمای مجاز عملیاتی: -20 تا 80 درجه سانتیگراد
- زاویه دید: 27°
- طول موج لیزر: 940nm
- ابعاد: 80*16.35 میلیمتر
برای اطلاعات دقیقتر به دیتاشیت ماژول مراجعه فرمایید. لینک دیتاشیت ماژول و سنسور فاصلهسنج لیزری VL53L1X در زیر آورده شده است.
معرفی پایههای (Pinout) ماژول فاصله سنج VL53LXX
ماژول VL53L1X دارای شش پایه به شرح زیر است:
- VCC : تغذیه ماژول (3 یا 5 ولت)
- GND : زمین
- SHUT : پین غیر فعال کردن ماژول (Active Low)
- INT : پایه اینتراپت خروجی قابل تنظیم برای ارتباط با میکرو
- SCL: کلاک برای ارتباط I2C
- SDA : خط دیتای ارتباط I2C

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز
نرم افزارهای مورد نیاز
راهاندازی ماژول فاصله سنج لیزری VL53L1X با آردوینو
گام اول: سیم بندی
مدار را مطابق شکل زیر ببندید.

گام دوم: نصب کتابخانه
کتابخانه ماژول فاصله سنج لیزری VL53L1X را از اینجا دانلود کرده و نصب کنید.
اگر برای نصب کتابخانه به راهنمایی بیشتری نیاز دارید روی این لینک کلیک کنید.
گام سوم: کد
کد زیر را در آردوینو کپی و اجرا کنید.
#include <Wire.h>
#include <VL53L1X.h>
VL53L1X sensor;
void setup()
{
Serial.begin(115200);
Wire.begin();
Wire.setClock(400000); // use 400 kHz I2C
sensor.setTimeout(500);
if (!sensor.init())
{
Serial.println("Failed to detect and initialize sensor!");
while (1);
}
sensor.setDistanceMode(VL53L1X::Short);
sensor.setMeasurementTimingBudget(15000);
sensor.startContinuous(15);
Serial.println("new program");
}
void loop()
{
Serial.println(String(millis())+","+String(sensor.read()));
delay(50);
}
پنجره سریال مانیتور را باز کنید. اعداد نمایش داده شده باید با تغییر فاصله دست تا سنسور، تغییر کنند. عدد اول بعد از فلش، زمان و عدد بعدی، فاصله به میلیمتر است.

Comments (20)
سلام،.وقت بخیر
میشه مقدار فاصله رو بصورت خروجی آنالوگ بده تا به ورودی آنالوگ PLC وصل کرد؟
با سلام
خیر خروجی این سنسور I2C می باشد.
سلام
قابلیت مشاهده بر روی ال سی دی کاراکتری هست؟
اگه هست میشه کمک کنید
با سلام
امکانش وجود دارد.
از آموزش lcd کارکتری مورد نظر ، نحوه نمایش داده ها را کپی کنید و در پروژه خود بیاوید.
در جایی که متن نمایشی را که در سریال مانیتور پیرنت می شود را به نمایشگر نیز بدهید تا آن نیز نمایش بدهد.
کدی ک نوشته شده اعدادمثل یک تایمر افزایشی فقط شمرده میشوند و توی عکس هم به همین صورته(مقدار توی عکس و مقداری ک من گرفتم فاصله لیدار نیستند فقط مقدار تایمر هستند)
در ضمن رنج اندازه گیری این سنسور تا چهار متر هست یعنی ۵۲۰۰۰ که روی عکس شما هست خارج از رنج اندازه گیری سنسور هست
با سلام
اکر دقت بفرمایید در کد مقدار millis() و مقدار sensor.read در کنار هم چاپ می شود که مقدار اول زمان روشن شدن میکروکنترلر می باشد (ربطی به سنسور ندارد و برای مشخص شدن زمان استفاده می شود)
همچنین تیک show Timestamp نیز زده شده است که ساعت دریافت دیتا توسط سریال مانیتور نمایش داده میشود.
دیتا دریافتی از سنسور در مقدار آخر بعد از , می باشد که می توانید از آن استفاده کنید.
کد قرار داده شده در سایت اشتباه است و فقط یک شمرنده سعودی روی سریال پرینت نمایش میده دوستانی که این مشکلو دارند از خود اگزمپل های کتابخانه مربوطه استفاده کنند که هم در این سایت هم در سایت خود اردوینو موجود است.
سلام و درود من میخوام دیتاش رو با stm32 بخونم، خیلی لازم دارم و واقعا بلد نیستم، هزینه ش رو هم حاضرم بدم اگر انجام بدید برام 09133757790 عباسی ممنون
با سلام
پروژه انجام نمیشود.
شما میتوانید با استفاده از آموزش پروگرام کردن STM32 Blue Pill (STM32F103C8T6) IDE آردوینو stm مورد نظر خود را وارد محیط آردوینو بکنید و از همین کد برای پروگرام کردن استفاده کنید.
سلام چرا برا من این سنسور بیشتر دو متر رو صفر نشون میده
همه مراحشم درست رفتم
با سلام.
مورد اول اینکه پس از بررسی هایی که انجام شد زمانی که فاصله بیشتر از 1.5 الی 2 متر میشود و برچسب روی سنسور برداشته نشده باشد خطا ایجاد میشود و مقدار عدد به زیر 100 کاهش پیدا میکند.
همچنین در آموزش از دستور فاصله دقیق و کوتاه استفاده شده است و برای اینکه از متراژ های بیشتری استفاده کنید خط
sensor.setDistanceMode(VL53L1X::Short);
را به
sensor.setDistanceMode(VL53L1X::Long);
تغییر بدهید
سلام وقت بخیر
از اونجایی که پروتکل I2C داره و نمیشه آدرس را تغییر داد ، برای استفاده همزمان از چند ماژول چه راه حلی پیشنهاد میدید؟
با سلام
بعضی از ماژول ها پایه ای برای تغییر آدرس I2C دارند. در صورتی که نداشته باشند، می توانید از یکی از روش های زیر استفاده کنید.
1. استفاده از Software I2C و وصل کردن سنسور به سایر پایه های میکروکنترلر می باشد.
2. استفاده از ماژول های تقسیم کننده I2C مانند برد توسعه 8 کاناله I2C TCA9548A
سلام
میتوان خروجی این ماژول را بر روی oled دید
و میتوان یک دکمه ۰ کننده روش قرار بدهیم
با سلام
همه این موارد با برنامه نویسی امکان پذیر میباشد.
در صورتی که میخواهید با این مآژول یک کولیس بسازید. پیشنهاد میکنم یک عدد آماده اش را تهیه بکنید. دقت بالاتری دارند.
سلام زاویه دید این ماژول رو تا چند درجه میشه کاهش داد؟
با سلام
این ماژول ها نوری می باشند و نور آنها با چشم قابل تشخیص نمی باشد.
زاویه دید ماژول نیز به صورت دیفالت مستقیم می باشد. ولی چون ماهیت نور مقدار پخش پذیری دارد از انتشار آن مقداری پخش میشود. سپس سنسور خواندن نیز دوباره چون میخواهد این نور ها را جمع بکند. باز هم با مقداری زاویه میخواند.
برای اطلاعات بیشتر باید به دیتاشیت مراجعه بفرمایید.
سلام من این ماژول رو تهیه کردم ۴ عدد
روی آردینو نصب کردم و روی رنج ۱۹۰۰ تنظیم کردم
ولی فقط یدونه از سنسور قابلیت تشخیص تا فاصله ۱۹۰۰ رو داره
بقیه تا رنج ۱۴۰ یا ۱ کار میکنن
دلیش چی میپننه بله
با سلام
در مرحله اول این ماژول به دلیل اینکه فقط یک آدرس دارد باید تک به تک بر روی آردوینو خود نصب بکنید و در صورتی که میخواهید همزمان همگی را فعال بکنید نیاز است که از ماژول برد توسعه 8 کاناله I2C TCA9548A استفاده بکنید.
اگر تک به تک تست کردید و مشکل در فاصله داشتید و مهلت تست شما نگذشته است. لطفا درخواست خود را در بخش درخواست مرجوعی ثبت بنمایید تا بررسی بشود.
برای هرکدوم آدرس جداگانه دادم
ولی تک به تک تست میکنم مشکل ندارن
اگه برد توسعه ۸ کاناله تهیه کنم مشکل حل میشه؟