Bincika Lambar

Auna Nisa Nesa da Laser VL53L0X Module mai fil 6 da TM1637 Display don Arduino

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.

VL53L0X 200cm range sensor
TM1637 4 digit display module

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ƙiraSTMicroelectronics
Lambar sashiVL53L0X
Ƙarfin Logic/IO2.6 V - 3.5 V
Ƙarfin samarwa2.6 V - 5 V
Yanayin zafin aiki-20 °C zuwa 70 °C
Iyakar aunawa30 mm zuwa 2000 mm
Mitar I2C400 kHz
Saitin lokacin ƙarewa500 ms
KunshinModul 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

Arduino wiring for VL53L0X with TM1637 4 digit dispaly
Arduino wiring for VL53L0X with TM1637 4 digit dispaly

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.

Hotuna

VL53L0X 200cm range sensor
VL53L0X 200cm range sensor
TM1637 4 digit display module
TM1637 4 digit display module
Arduino wiring for VL53L0X with TM1637 4 digit dispaly
Arduino wiring for VL53L0X with TM1637 4 digit dispaly
104-Measure distance with a Laser VL53L0X 6-pin module and a TM1637 LED display for Arduino
Harshe: C++
/* 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)

Fayil Fritzing

Jagoran Mai Amfani

Sauran fayiloli