በሌዘር VL53L0X 6-ፒን ሞጁል እና TM1637 ማሳያ ለአርዱኖ ርቀትን መለካት
በዚህ ትምህርት ውስጥ፣ VL53L0X ሌዘር ርቀት ዳሳሽ በመጠቀም ርቀትን እንዴት እንደምንለካ እና ንባቦቹን በTM1637 7-ክፍል ማሳያ ላይ እንዴት እንደምናሳይ እንማራለን። ይህ ፕሮጀክት ሁለቱን ክፍሎች በማጣመር ቀላል ግን ውጤታማ የርቀት መለኪያ መሳሪያ ይፈጥራል። VL53L0X ትክክለኛ የርቀት ንባቦችን ለማቅረብ የሌዘር ቴክኖሎጂን ይጠቀማል፣ TM1637 ማሳያ ደግሞ እነዚህን ንባቦች ለተጠቃሚ ምቹ በሆነ መልኩ ያሳያል።


አስፈላጊውን ሃርድዌር፣ የሽቦ መገጣጠሚያ መመሪያዎችን እና ሁሉንም ነገር ለማስኬድ የሚያስፈልገውን ኮድ እንመለከታለን። በዚህ ትምህርት መጨረሻ ላይ፣ በተለያዩ አፕሊኬሽኖች ውስጥ ሊያገለግል የሚችል የሚሰራ የርቀት መለኪያ መሳሪያ ይኖርዎታል። ለእይታ መመሪያ፣ ቪዲዮውን በ(ቪዲዮ በ00:00) መመልከትዎን ያረጋግጡ።
ሃርድዌር ተብራርቷል
ለዚህ ፕሮጀክት ዋና ክፍሎች VL53L0X ሌዘር ርቀት ዳሳሽ እና TM1637 ማሳያ ሞጁል ናቸው። VL53L0X የበረራ ጊዜ ዳሳሽ ሲሆን የሌዘር ጨረር በማስወጣት እና ነጸብራቁ ለመመለስ የሚፈጀውን ጊዜ በማስላት ወደ አንድ ነገር ያለውን ርቀት ይለካል። በ2.6V እስከ 3.5V ባለው የቮልቴጅ ክልል ውስጥ ይሰራል ነገር ግን በተዋሃደ የቮልቴጅ መቆጣጠሪያ ምክንያት በ5V መስራትም ይችላል።
TM1637 የ7-ክፍል LED ማሳያን የሚቆጣጠር የማሳያ ሾፌር ነው። በቀላል ባለ2-ሽቦ በይነገጽ (CLK እና DIO) ይገናኛል፣ ይህም ከአርዱኖ ጋር ለማገናኘት ቀላል ያደርገዋል። ማሳያው የቁጥር እሴቶችን ማሳየት ይችላል እና ከVL53L0X ዳሳሽ የሚመጡትን የርቀት መለኪያዎችን ለማየት ፍጹም ነው።
የዳታሼት ዝርዝሮች
| አምራች | STMicroelectronics |
|---|---|
| የክፍል ቁጥር | VL53L0X |
| የሎጂክ/IO ቮልቴጅ | 2.6 V - 3.5 V |
| የአቅርቦት ቮልቴጅ | 2.6 V - 5 V |
| የስራ ሙቀት | -20 °C እስከ 70 °C |
| የመለኪያ ክልል | 30 ሚሜ እስከ 2000 ሚሜ |
| የI2C ድግግሞሽ | 400 kHz |
| የጊዜ ማብቂያ ቅንብር | 500 ms |
| ፓኬጅ | ባለ6-ፒን ሞጁል |
- ትክክለኛ የኃይል አቅርቦትን ያረጋግጡ (5V ተቀባይነት አለው)።
- የXSHUT ፒንን ከፑል-አፕ ሬዚስተር ጋር በማገናኘት የመፍሰስ ችግርን ያስወግዱ።
- ለግንኙነት I2C ይጠቀሙ፤ SDA እና SCL ን በአግባቡ ያገናኙ።
- ያልተጠበቁ ባህሪዎችን ለማስወገድ በኮዱ ውስጥ የጊዜ ማብቂያዎችን ይያዙ።
- ለትክክለኛነት የስራ ሙቀት ክልልን ያስተውሉ።
የሽቦ መገጣጠሚያ መመሪያዎች

VL53L0X እና TM1637 ማሳያን ለማገናኘት፣ የVL53L0X ን VCC ፒን በአርዱኖ ላይ ካለው 5V ፒን ጋር እና የGND ፒንን በአርዱኖ ላይ ካለው የመሬት ፒን ጋር በማገናኘት ይጀምሩ። በመቀጠል፣ የVL53L0X ን SDA ፒን በአርዱኖ ላይ ካለው A4 ፒን ጋር ያገናኙ፣ ይህ በተለምዶ ለI2C ዳታ ግንኙነት ጥቅም ላይ ይውላል። የSCL ፒን ለሰዓት ምልክት በአርዱኖ ላይ ካለው A5 ፒን ጋር መገናኘት አለበት።
ለTM1637 ማሳያ፣ የCLK ፒንን በአርዱኖ ላይ ካለው ዲጂታል ፒን 2 ጋር እና የDIO ፒንን ከዲጂታል ፒን 3 ጋር ያገናኙ። በመጨረሻም፣ የVL53L0X ን XSHUT ፒን በአርዱኖ ላይ ካለው ዲጂታል ፒን 12 ጋር ያገናኙ። እንደ GPIO1 ያሉ ጥቅም ላይ ያልዋሉ ፒኖች ሳይገናኙ መቀመጣቸውን ያረጋግጡ። ይህ ዝግጅት አርዱኖ ከሁለቱም ዳሳሽ እና ማሳያ ጋር ውጤታማ በሆነ መልኩ እንዲገናኝ ያስችለዋል።
የኮድ ምሳሌዎች እና ጉዞ
ኮዱ ዳሳሹን እና ማሳያውን ያስጀምራል፣ የI2C ግንኙነትን ያዘጋጃል፣ እና የርቀት መለኪያዎችን ያለማቋረጥ ያነባል። ከታች ፒኖቹ የተዋቀሩበት እና ዳሳሹ የሚጀመርበት የሴትአፕ ተግባር የሚያሳይ ቁርጥራጭ አለ፦
void setup() {
pinMode(12, INPUT_PULLUP); // ፒን 12 ን ለግብዓት ያዘጋጁ
digitalWrite(12, HIGH); // ፒን 12 ን ከፍ ያድርጉ (5V)
Serial.begin(9600);
Wire.begin(); // I2C ግንኙነት ተጀመረ
sensor.init(); // የርቀት ዳሳሽ ተጀመረ
sensor.setTimeout(500); // የጊዜ ማብቂያ ተዘጋጅቷል
sensor.startContinuous(); // የመለኪያ አይነት ተዘጋጅቷል
}
በዚህ የሴትአፕ ተግባር ውስጥ፣ ለXSHUT ያለው ፒን ከፑል-አፕ ሬዚስተር ጋር እንደ ግብዓት ተዋቅሯል፣ እና ዳሳሹ ለቀጣይ ክልል መለኪያ ተጀምሯል። የርቀት ንባቦችን ለማሳየት ተከታታይ መቆጣጠሪያውም ተዘጋጅቷል።
በመቀጠል፣ ዋናው ሉፕ ርቀቱን ያነባል እና ማሳያውን ያዘምናል። ከሉፕ ተግባር የተወሰደ ትኩረት የሚሰጠው ቁርጥራጭ እነሆ፦
void loop() {
int distance = sensor.readRangeContinuousMillimeters(); // ርቀቱን በሚሜ ያንብቡ
display.setSegments(clearLED); // የቀድሞውን እሴት ከLED ማሳያ ያስወግዱ
display.showNumberDec(distance, false, 4, 0); // ርቀቱን ያሳዩ
Serial.print("ርቀት: ");
Serial.print(distance); // ርቀቱን በተከታታይ መቆጣጠሪያ ላይ ያትሙ
}
ይህ ሉፕ ርቀቱን ከዳሳሹ ያለማቋረጥ ያነባል እና TM1637 ማሳያውን በአዲሱ መለኪያ ያዘምናል። ለማረም ዓላማ ርቀቱን በተከታታይ መቆጣጠሪያ ላይም ያትማል። ሙሉ ኮዱን ማየት ከፈለጉ፣ ከጽሑፉ በታች ይጫናል።
ማሳያ / ምን እንደሚጠበቅ
ዝግጅቱን ካጠናቀቁ እና ኮዱን ከጫኑ በኋላ፣ በVL53L0X የተለካው ርቀት በTM1637 ላይ ሲታይ ማየት ይኖርዎታል። አንድ ነገር ወደ ዳሳሹ ሲያቀርቡ ወይም ሲያርቁ፣ የሚታየው እሴት በዚሁ መጠን ይቀየራል። ያልተጠበቁ ንባቦች ካጋጠሙዎት፣ ዳሳሹ ያልተዘጋ መሆኑን እና የነገሩ ገጽታ ለሌዘር ነጸብራቅ ተስማሚ መሆኑን ያረጋግጡ (በቪዲዮ በ09:30)።
የተለመዱ ችግሮች የተገላቢጦሽ ሽቦ መገጣጠም ወይም ዳሳሹን በአግባቡ አለማስጀመር ይገኙበታል፣ ይህም ወደ የጊዜ ማብቂያ ስህተቶች ሊያመራ ይችላል። ትክክለኛ የርቀት መለኪያዎችን ለማግኘት ትክክለኛ ፒኖች መገናኘታቸውን እና ዳሳሹ በበቂ ሃይል መሰራቱን ያረጋግጡ።
/* This example shows how to use continuous mode to take readings.
This is Arduino code to measure distance with VL53L0X and display it on a TM1637 LED 7-segment display.
Original Laser Sensor source: https://github.com/adafruit/Adafruit_VL53L0X
Modified by Ahmad Shamshiri for RoboJax.com
Date modified: May 31, 2018 at 19:25 in Ajax, Ontario, Canada
You have to watch 1 video before using this code:
1- Watch VL53L0X video and get code https://youtu.be/1n9eJ9HaYpE
2- Watch TM1637 video and get code https://robojax.com?vid=robojax-TM1637
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)
*/
#include <Wire.h>
#include <VL53L0X.h>
VL53L0X sensor;
/////// start of TM1637 Display
#include <Arduino.h>
#include <TM1637Display.h>
#define CLK 2
#define DIO 3
#define TEST_DELAY 500
TM1637Display display(CLK, DIO);
uint8_t clearLED[] = { 0x0, 0x0, 0x0, 0x0 }; // value for clearing the LEDs
////// End of TM1637 Display
void setup()
{
pinMode(12,INPUT_PULLUP);// set pin 12 for input
digitalWrite(12,HIGH);// set pin 12 high (5V)
Serial.begin(9600);
Wire.begin();// I2C communication initialized
sensor.init();// distance sensor is initialized
sensor.setTimeout(500); // time out is set
// 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();// type of measurement is set
Serial.println("VL53L0X with MAX6675 test");
delay(500);
display.setBrightness(0x0f);// set brightness for display
}
void loop()
{
int distance =sensor.readRangeContinuousMillimeters();// read the distance in mm
display.setSegments(clearLED);// remove previous value from LED display
display.showNumberDec(distance, false, 4, 0);// display the distance
//distance = distance;
Serial.print("Distance: ");
Serial.print(distance);// print distance on serial monitor
Serial.print("mm");
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
Serial.println();
delay(100);
}
ምንጮች እና ምንጮች
አሁን ምንም ምንጮች የለም።
ፋይሎች📁
የዳታ ማዕከል (pdf)
-
TM1637 የዳታስሄት
/download/datasheet/robojax_TM1637_datasheet.pdf0.67 MB
ፍሪትዚንግ ፋይል
-
TM1637 Seven Segment module
TM1637.fzpz0.01 MB -
TM1637 4 digit seven segment display
TM1637-1.fzpz0.01 MB -
Adafruit VL6180X Time of Flight Distance SensorFritzing part for the Adafruit VL6180X Time of Flight distance sensor. This sensor measures absolute distance up to 100mm and ambient light, communicating via I2C. Includes the sensor breakout board and pin connections for use in Fritzing projects.
Adafruit VL6180X Time of Flight Distance Sensor-1.fzpz0.02 MB
ተጠቃሚ መመሪያ
-
TM1637 የማሳያ መመሪያ
robojax-TM1637_display_manual.pdf0.31 MB
ሌላ ፋይሎች
-
Polou VL53L0X ቤተ መዝገብ
robojax-VL53L0X-polou-arduino-master.zip0.02 MB -
VL53L0X_Distance_sensor_purple
VL53L0X_Distance_sensor_purple.fzpz0.01 MB