Auna Nisa Nesa da Laser VL53L0X Module mai fil 6 da TM1637 Display don Arduino
A cikin wannan koyawa, za mu koyi yadda ake auna nisa ta amfani da na'urar auna nisa ta laser VL53L0X da kuma nuna sakamakon akan allo na TM1637 7-segment. Wannan aikin ya haɗa abubuwa biyu don ƙirƙirar kayan aikin auna nisa mai sauƙi amma ingantacce. VL53L0X yana amfani da fasahar laser don samar da ingantattun sakamakon nisa, yayin da allo na TM1637 ke nuna waɗannan sakamakon cikin tsari mai sauƙin amfani.


Za mu bi ta kayan aikin da ake buƙata, umarnin haɗa wayoyi, da lambar da ake buƙata don samun komai yana aiki. A ƙarshen wannan koyawa, za ku sami na'urar auna nisa mai aiki wacce za a iya amfani da ita a aikace-aikace daban-daban. Don jagorar gani, tabbatar da duba bidiyon (a cikin bidiyo a 00:00).
Bayanin Kayan Aiki
Abubuwan farko na wannan aikin sune na'urar auna nisa ta laser VL53L0X da kuma modul ɗin allo na TM1637. VL53L0X na'urar auna lokacin tafiya ce wacce ke auna nisa zuwa abu ta hanyar fitar da hasken laser da kuma lissafin lokacin da yake ɗauka don hasken ya dawo. Yana aiki a ƙarfin wutar lantarki tsakanin 2.6V zuwa 3.5V amma kuma yana iya aiki da 5V saboda haɗaɗɗen mai daidaita wutar lantarki.
TM1637 mai sarrafa allo ne wanda ke sarrafa allo na 7-segment LED. Yana sadarwa ta hanyar wayoyi 2 masu sauƙi (CLK da DIO), yana sauƙaƙa haɗawa da Arduino. Allon na iya nuna lambobi kuma ya dace don nuna sakamakon nisa daga na'urar VL53L0X.
Cikakkun Bayanai na Datasheet
| Mai Ƙirƙira | STMicroelectronics |
|---|---|
| Lambar sashi | VL53L0X |
| Ƙarfin Logic/IO | 2.6 V - 3.5 V |
| Ƙarfin samarwa | 2.6 V - 5 V |
| Yanayin zafin aiki | -20 °C zuwa 70 °C |
| Iyakar aunawa | 30 mm zuwa 2000 mm |
| Mitar I2C | 400 kHz |
| Saitin lokacin ƙarewa | 500 ms |
| Kunshin | Modul mai ƙafafu 6 |
- Tabbatar da samar da wutar lantarki mai dacewa (5V ya isa).
- Haɗa ƙafar XSHUT don guje wa ɗigowar wutar lantarki tare da resistor na pull-up.
- Yi amfani da I2C don sadarwa; haɗa SDA da SCL yadda ya kamata.
- Kula da lokutan ƙarewa a cikin lambar don guje wa halaye marasa tsammani.
- Yi la'akari da iyakar yanayin zafin aiki don ingantaccen sakamako.
Umarnin Haɗa Wayoyi

Don haɗa VL53L0X da allo na TM1637, fara da haɗa ƙafar VCC na VL53L0X zuwa ƙafar 5V akan Arduino da ƙafar GND zuwa ƙafar ƙasa akan Arduino. Na gaba, haɗa ƙafar SDA na VL53L0X zuwa ƙafar A4 akan Arduino, wacce aka saba amfani da ita don sadarwar bayanai ta I2C. Ƙafar SCL ya kamata a haɗa zuwa ƙafar A5 akan Arduino, wacce ake amfani da ita don siginar agogo.
Don allo na TM1637, haɗa ƙafar CLK zuwa ƙafar dijital 2 akan Arduino da ƙafar DIO zuwa ƙafar dijital 3. A ƙarshe, haɗa ƙafar XSHUT na VL53L0X zuwa ƙafar dijital 12 akan Arduino. Tabbatar cewa ƙafafu marasa amfani, kamar GPIO1 akan VL53L0X, an bar su ba a haɗa su ba. Wannan tsari zai ba Arduino damar sadarwa yadda ya kamata da duka na'urar auna da allo.
Misalan Lamba da Bayani
Lambar tana fara na'urar auna da allo, tana saita sadarwar I2C, kuma tana ci gaba da karanta sakamakon nisa. A ƙasa akwai ɗan guntu da ke nuna aikin setup inda aka saita ƙafafu kuma aka fara na'urar auna:
void setup() {
pinMode(12, INPUT_PULLUP); // saita ƙafa 12 don shigarwa
digitalWrite(12, HIGH); // saita ƙafa 12 high (5V)
Serial.begin(9600);
Wire.begin(); // an fara sadarwar I2C
sensor.init(); // an fara na'urar auna nisa
sensor.setTimeout(500); // an saita lokacin ƙarewa
sensor.startContinuous(); // an saita nau'in aunawa
}
A cikin wannan aikin setup, an saita ƙafar XSHUT azaman shigarwa tare da resistor na pull-up, kuma an fara na'urar auna don aunawa mai ci gaba. An kuma saita serial monitor don nuna sakamakon nisa.
Na gaba, babban loop yana karanta nisa kuma yana sabunta allo. Ga ɗan guntu mai mahimmanci daga aikin loop:
void loop() {
int distance = sensor.readRangeContinuousMillimeters(); // karanta nisa a mm
display.setSegments(clearLED); // cire ƙimar da ta gabata daga allo na LED
display.showNumberDec(distance, false, 4, 0); // nuna nisa
Serial.print("Distance: ");
Serial.print(distance); // buga nisa akan serial monitor
}
Wannan loop yana ci gaba da karanta nisa daga na'urar auna kuma yana sabunta allo na TM1637 da sabon sakamako. Yana kuma buga nisa akan serial monitor don gyara kurakurai. Idan kuna son ganin cikakken lambar, za ta ɗora a ƙasan labarin.
Zanga-zanga / Abin da za ku Yi Tsammani
Bayan kammala saitin da ɗora lambar, ya kamata ku ga nisa da VL53L0X ya auna yana nunawa akan TM1637. Yayin da kuke matsar da abu kusa ko nesa da na'urar auna, ƙimar da aka nuna za ta canza daidai. Idan kun sami sakamako marasa tsammani, tabbatar da cewa na'urar auna ba ta da wani abu da ya rufe ta kuma saman abin ya dace don hasken laser ya dawo (a cikin bidiyo a 09:30).
Kurakurai na yau da kullun sun haɗa da haɗa wayoyi ba daidai ba ko rashin fara na'urar auna yadda ya kamata, wanda zai iya haifar da kurakuran lokacin ƙarewa. Tabbatar da cewa an haɗa ƙafafu daidai kuma na'urar auna tana da isasshen wutar lantarki don ingantaccen sakamakon nisa.
/* 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);
}
Albarkatun da kuma shafukan da za a duba
Babu kayan aiki tukuna.
Fayiloli📁
Takardar bayanai (pdf)
-
TM1637 Takardun Bayani
/download/datasheet/robojax_TM1637_datasheet.pdf0.67 MB
Fayil Fritzing
-
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
Jagoran Mai Amfani
-
TM1637 Nuni Jagora
robojax-TM1637_display_manual.pdf0.31 MB
Sauran fayiloli
-
Polou VL53L0X ɗakin karatu
robojax-VL53L0X-polou-arduino-master.zip0.02 MB -
VL53L0X_Distance_sensor_purple
VL53L0X_Distance_sensor_purple.fzpz0.01 MB