লেজার VL53L0X ৬-পিন মডিউল এবং LCD1602-I2C দিয়ে আরডুইনোর জন্য দূরত্ব পরিমাপ
এই টিউটোরিয়ালে, আমরা VL53L0X লেজার সেন্সর ব্যবহার করে দূরত্ব পরিমাপ করতে এবং ফলাফল I2C ইন্টারফেস সহ LCD1602-এ প্রদর্শন করতে শিখব। এই প্রকল্পটি আপনাকে মিলিমিটার বা সেন্টিমিটারে সুনির্দিষ্ট দূরত্ব পরিমাপ পেতে দেয়, যা যেকোনো Arduino-ভিত্তিক প্রকল্পে একটি বহুমুখী সংযোজন করে তোলে। এই টিউটোরিয়ালের শেষে, আপনার কাছে একটি সম্পূর্ণ কার্যকরী দূরত্ব পরিমাপ সিস্টেম থাকবে যা সেট আপ এবং ব্যবহার করা সহজ।

এটি অর্জনের জন্য, আমরা VL53L0X লেজার দূরত্ব সেন্সর ব্যবহার করব, যা I2C এর মাধ্যমে Arduino-এর সাথে যোগাযোগ করে। LCD1602 ডিসপ্লে পরিমাপ করা দূরত্বের একটি স্পষ্ট ভিজ্যুয়াল উপস্থাপনা প্রদান করবে। কোডিং প্রক্রিয়া সম্পর্কে স্পষ্টতার জন্য, অনুগ্রহ করে ভিডিওটি দেখুন (ভিডিওতে 00:00 এ)।
হার্ডওয়্যার ব্যাখ্যা
এই নির্মাণের প্রধান উপাদানগুলি হল VL53L0X লেজার দূরত্ব সেন্সর এবং LCD1602 ডিসপ্লে। VL53L0X দূরত্ব সঠিকভাবে পরিমাপ করতে একটি লেজার ব্যবহার করে, যা রোবোটিক্স এবং অটোমেশন সহ বিভিন্ন অ্যাপ্লিকেশনের জন্য উপযুক্ত। এটি I2C যোগাযোগ ব্যবহার করে কাজ করে, যা Arduino-এর সাথে সহজ সংহতকরণের অনুমতি দেয়।
LCD1602 ডিসপ্লে একটি I2C-সক্ষম অক্ষর ডিসপ্লে যা দুটি লাইনে 16টি অক্ষর পর্যন্ত দেখাতে পারে। এটি ডেটা প্রদর্শনের প্রক্রিয়াটি সহজ করে, কারণ এটির জন্য ঐতিহ্যবাহী LCD-এর তুলনায় কম পিন প্রয়োজন। একসাথে, এই উপাদানগুলি একটি শক্তিশালী এবং ব্যবহারকারী-বান্ধব দূরত্ব পরিমাপ সিস্টেম তৈরি করে।
ডেটাশিট বিবরণ
| নির্মাতা | STMicroelectronics |
|---|---|
| পার্ট নম্বর | VL53L0X |
| লজিক/IO ভোল্টেজ | 1.8 V থেকে 2.8 V |
| সাপ্লাই ভোল্টেজ | 2.6 V থেকে 3.5 V |
| আউটপুট কারেন্ট (প্রতি চ্যানেল) | … |
| পিক কারেন্ট (প্রতি চ্যানেল) | … |
| PWM ফ্রিকোয়েন্সি নির্দেশিকা | … |
| ইনপুট লজিক থ্রেশহোল্ড | … |
| ভোল্টেজ ড্রপ / RDS(on) / স্যাচুরেশন | … |
| থার্মাল সীমা | … |
| প্যাকেজ | … |
| নোট / ভেরিয়েন্ট | … |
- সঠিক পাওয়ার সাপ্লাই ভোল্টেজ নিশ্চিত করুন (2.6 V থেকে 3.5 V)।
- প্রয়োজনে SDA এবং SCL লাইনে পুল-আপ রেজিস্টর ব্যবহার করুন।
- ভুল রিডিং এড়াতে সেন্সরটি প্রতিফলিত পৃষ্ঠ থেকে দূরে রাখুন।
- I2C ঠিকানা যাচাই করুন (VL53L0X-এর জন্য ডিফল্ট 0x29)।
- উচ্চ-তাপমাত্রার পরিবেশে ব্যবহার করলে তাপ অপচয় বিবেচনা করুন।
ওয়্যারিং নির্দেশাবলী

VL53L0X সেন্সর এবং LCD1602 ডিসপ্লে ওয়্যার করতে, পাওয়ার এবং গ্রাউন্ড সংযোগ করে শুরু করুন। VL53L0X-এর VCC পিনটি Arduino-এর 5V পিনে এবং GND পিনটি Arduino-এর গ্রাউন্ডে সংযুক্ত করুন। LCD1602-এর জন্য, এর VCC একই 5V-এ এবং GND গ্রাউন্ডে সংযুক্ত করুন।
এরপর, I2C যোগাযোগ লাইন সংযুক্ত করুন। VL53L0X-এর SDA পিনটি Arduino-এর A4 পিনে সংযুক্ত করা উচিত এবং SCL পিনটি A5-এ যাওয়া উচিত। XSHUT পিনটি Arduino-এর 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();
}
সেটআপ ফাংশনে, আমরা সিরিয়াল যোগাযোগ এবং 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() ব্যবহার করে ক্রমাগত দূরত্ব পড়ি এবং এটি সিরিয়াল মনিটরে প্রিন্ট করি। LCD দূরত্ব পরিমাপের সাথে আপডেট করা হয়, যা রিয়েল-টাইম প্রতিক্রিয়া প্রদান করে। 100 মিলিসেকেন্ডের বিলম্ব নিশ্চিত করে যে রিডিংগুলি খুব ঘন ঘন আপডেট না হয়, যা সহজে পড়ার অনুমতি দেয়।
প্রদর্শন / কী আশা করবেন
পাওয়ার চালু হলে, সিস্টেমটি ক্রমাগত দূরত্ব পরিমাপ করবে এবং ফলাফল LCD-তে প্রদর্শন করবে। আপনি দেখতে পাবেন যে বস্তুগুলিকে সেন্সরের কাছাকাছি বা দূরে সরানোর সাথে সাথে দূরত্বের মান পরিবর্তিত হয়। সেন্সরের সাথে কোনো সমস্যা থাকলে, যেমন টাইমআউট ত্রুটি, উপযুক্ত বার্তা সিরিয়াল মনিটরে প্রিন্ট করা হবে (ভিডিওতে 03:15 এ)।
/*
This is Arduino code to measure distance with VL53L0X and display it on LCD1602 with I2C module.
Distance is displayed in mm (millimeter) or cm (centimeter).
Original Laser Sensor source: https://github.com/adafruit/Adafruit_VL53L0X
Modified by Ahmad Shamshiri for RoboJax.com
Date modified: Jun 28, 2018 at 19:06 in Ajax, Ontario, Canada
Watch the video instruction for this code: https://youtu.be/t14ly7Y09oI
You can get this code from RoboJax.com.
Pin connection
VL53L0X Pin Arduino Pin
VCC 5V
GND GND
SDA A4 or SDA if available
SCL A5 or SCL if available
GPIO1 leave it unconnected
XSHUT D12 (digital 12 or pin 12)
LCD1602 Pin
*/
#include <Wire.h>
#include <VL53L0X.h>
VL53L0X sensor;
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int type = 1;// 1=mm , 2= cm
String unit;// variable for unit, mm or cm
void setup()
{
Serial.begin(9600);
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();
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
}
void loop()
{
int distance =sensor.readRangeContinuousMillimeters();
//int distance =sensor.startContinuous(100);
//distance = distance;
Serial.print("Distance: ");
//start of loop Robojax code for LCD with I2C
lcd.clear();
lcd.print("Robojax VL53L0X");
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("Dist.: ");
lcd.setCursor (7,1); // go to start of 2nd line
if(type ==2){
float distanceCM = (float) (distance/10.0);
unit ="cm";
lcd.print(distanceCM);
Serial.print(distanceCM);
Serial.print(unit);
}else{
unit ="mm";
lcd.print(distance);
Serial.print(distance);
Serial.print(unit);
}
lcd.print(unit);
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
Serial.println();
delay(100);
}
আপনাকে যা প্রয়োজন হতে পারে
-
অ্যামাজনPurchase VL53L0X from Amazonamzn.to
-
ইবেPurchase VL53l0x from eBayebay.us
-
অলি এক্সপ্রেসPurchase 1 to 10 pcs of VL53L0X from AliExpresss.click.aliexpress.com
-
ব্যাংগুডPurchase 1 to 10 pcs of VL53L0X from Banggoodbanggood.com
সম্পদ ও রেফারেন্সসমূহ
-
বাহ্যিকAdafruit download pagelearn.adafruit.com
-
বাহ্যিকPurchase 1 to 10 pcs of VL53L0X from AliExpresss.click.aliexpress.com
-
বাহ্যিকPurchase 1 to 10 pcs of VL53L0X from Banggoodbanggood.com
-
বাহ্যিকPurchase VL53l0x from eBayebay.us
-
বাহ্যিকVL53L0X datasheet (PDF)st.com
ফাইলসমূহ📁
ফ্রিটজিং ফাইল
-
VL53L0X_Distance_sensor_Squares
VL53L0X_Distance_sensor_Squares.fzpz0.02 MB
অন্যান্য ফাইলগুলি
-
রোবোজ্যাক্সের অ্যাডাফ্রুট VL53L0X লাইব্রেরি
robojax-VL52L0X_Adafruit_VL53L0X-master.zip0.08 MB -
VL53L0X_Distance_sensor_purple
VL53L0X_Distance_sensor_purple.fzpz0.01 MB