اندازهگیری فاصله با ماجیول لیزری VL53L0X با 6 پایه و LCD1602-I2C برای آردوینو
در این آموزش، خواهیم آموخت چگونه با استفاده از حساس(حس کننده) لیزری VL53L0X فاصله را اندازهگیری کنیم و نتایج را روی LCD1602 با رابط I2C نمایش دهیم. این پروژه به شما امکان میدهد اندازهگیریهای دقیقی از فاصله را به صورت میلیمتر یا سانتیمتر بهدست آورید و آن را به افزونهای چندکاره برای هر پروژه مبتنی بر Arduino تبدیل میکند. تا پایان این آموزش، یک سیستم اندازهگیری فاصلهٔ کاملاً عملیاتی خواهید داشت که راهاندازی و استفاده از آن آسان است.

برای دستیابی به این هدف، از حساس(حس کننده) فاصلهسنج لیزری VL53L0X استفاده خواهیم کرد که از طریق I2C با آردوینو ارتباط برقرار میکند. نمایشگر LCD1602 نمایش بصری واضحی از فاصلهٔ اندازهگیریشده ارائه میدهد. برای روشن شدن روند کدنویسی، لطفاً به ویدئو (در 00:00) مراجعه کنید.
سختافزار به زبان ساده
اجزای اصلی در این پروژه عبارتاند از حساس(حس کننده) فاصلهسنج لیزری VL53L0X و نمایشگر LCD1602. VL53L0X از لیزر برای اندازهگیری دقیق فاصله استفاده میکند، که آن را برای کاربردهای مختلف از جمله رباتیک و اتوماسیون مناسب میسازد. این ماجیول از طریق ارتباط I2C کار میکند که امکان ادغام آسان با آردوینو را فراهم میکند.
نمایشگر LCD1602 یک نمایشگر کاراکتری مجهز به I2C است که میتواند حداکثر 16 خصیصه را روی دو خط نمایش دهد. این نمایشگر فرایند نمایش دادهها را ساده میکند، زیرا به پایههای کمتری نسبت به نمایشگرهای LCD سنتی نیاز دارد. با هم، این اجزا یک سیستم اندازهگیری فاصله قدرتمند و کاربرپسند ایجاد میکنند.
جزئیات مشخصات فنی
| تولیدکننده | استی میکروالکترونیکس |
|---|---|
| شماره قطعه | VL53L0X |
| ولتاژ منطق/ورودی-خروجی | 1.8 ولت تا 2.8 ولت |
| ولتاژ تغذیه | 2.6 V تا 3.5 V |
| جریان خروجی (به ازای هر کانال) | ... |
| جریان پیک (برای هر کانال) | ... |
| راهنمای فرکانس PWM | ... |
| آستانههای منطقی ورودی | ... |
| افت ولتاژ / Rدرین–سورس (در حالت روشن)/ اشباع | ... |
| محدودیتهای حرارتی | … |
| بسته | ... |
| یادداشتها / گونهها | ... |
- از مناسب بودن ولتاژ منبع تغذیه اطمینان حاصل کنید (2.6 V تا 3.5 V).
- در صورت نیاز، از مقاومتهای پولآپ روی خطوط SDA و SCL استفاده کنید.
- حساس(حس کننده) را از سطوح بازتابنده دور نگه دارید تا از خوانشهای نادرست جلوگیری شود.
- آدرس I2C را بررسی کنید (پیشفرض برای VL53L0X برابر 0x29 است).
- در صورت استفاده در محیطهای با دمای بالا، به دفع حرارت توجه کنید.
دستورالعملهای سیمکشی

برای سیمکشی حساس(حس کننده) VL53L0X و نمایشگر LCD1602، با اتصال تغذیه و زمین شروع کنید. وصل کنیدVCCپایهِ VL53L0X به5Vپایه روی آردوینو وGNDپایه را به زمین آردوینو وصل کنید. برای LCD1602، آن را وصل کنیدVCCبه همان5VوGNDبه زمین نیز.
در مرحله بعد، خطوط ارتباطی I2C را متصل کنید. اینSDAپایهِ VL53L0X باید بهA4پایه روی آردوینو، وSCLپایه باید برود بهA5. آنXSHUTپایه را میتوان به ... متصل کردD12روی آردوینو قرار دارد، اما میتوان آن را بدون اتصال نیز رها کرد. برای LCD1602، اطمینان حاصل کنیدSDAوSCLآنها نیز به همان پایههایی متصل هستند که حساس(حس کننده) VL53L0X به آنها متصل است.
نمونههای شِفر (کود) و راهنمای گامبهگام
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();
}
در تابع setup، ما ارتباط سریال و باس I2C را مقداردهی اولیه میکنیم. اینsensor.init()حساس(حس کننده) VL53L0X را مقداردهی اولیه میکند، در حالی کهlcd.begin()نمایشگر LCD را مقداردهی اولیه میکند. نور پسزمینهٔ نمایشگر روشن میشود تا مشاهدهٔ آن بهراحتی ممکن باشد.
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);
}
در داخل حلقه، بهطور مداوم فاصله را با استفاده ازsensor.readRangeContinuousMillimeters()و آن را در نمایشگر مسلسل چاپ میکند. السیدی با اندازهگیری فاصله بهروزرسانی میشود و بازخورد در زمان واقعی را فراهم میکند. تأخیر 100 میلیثانیه تضمین میکند که خوانشها خیلی مکرر بهروزرسانی نشوند و خواندن آسان شود.
نمایش / آنچه باید انتظار داشته باشید
پس از روشن شدن، سیستم بهصورت پیوسته فاصله را اندازهگیری کرده و نتایج را روی LCD نمایش میدهد. میتوانید انتظار داشته باشید که مقادیر فاصله وقتی اجسام را به حساس(حس کننده) نزدیکتر یا دورتر میکنید تغییر کنند. اگر مشکلی در حساس(حس کننده) وجود داشته باشد، مانند خطاهای timeout، پیامهای مربوطه در نمایشگر مسلسل چاپ خواهند شد (در ویدئو در 03:15).
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازونPurchase VL53L0X from Amazonamzn.to
-
ایبیخرید VL53l0x از eBayebay.us
-
علیاکسپرس1 تا 10 عدد از VL53L0X را از علیاکسپرس خریداری کنیدs.click.aliexpress.com
-
بنگ گود1 تا 10 عدد از VL53L0X را از بنگود خریداری کنید.banggood.com
منابع و مراجع
-
خارجی1 تا 10 عدد از VL53L0X را از بنگود خریداری کنید.banggood.com
-
خارجی1 تا 10 عدد از VL53L0X را از علیاکسپرس خریداری کنیدs.click.aliexpress.com
-
خارجیVL53L0X datasheet (PDF)st.com
-
خارجیخرید VL53l0x از eBayebay.us
-
خارجیصفحه دانلود آدافروتlearn.adafruit.com
فایلها📁
فایل Fritzing
-
VL53L0X_Distance_sensor_Squares
application/zip0.02 MB
سایر فایلها
-
کتابخانه Adafruit VL53L0X از Robojax
robojax-VL52L0X_Adafruit_VL53L0X-master.zip -
VL53L0X_Distance_sensor_purple
application/zip0.01 MB