Search Code

Kokoma Ntalo na Laser VL53L0X Module ya Bapɛ ya 6 mpe LCD1602-I2C mpo na Arduino

Kokoma Ntalo na Laser VL53L0X Module ya Bapɛ ya 6 mpe LCD1602-I2C mpo na Arduino

Na boyekoli oyo, tokoyekola ndenge ya komeka mosika na kati ya sensor ya laser VL53L0X mpe kotalisa bapɔtɛ na LCD1602 na interface ya I2C. Projɛ oyo epesaka yo ekelá ya komeka mosika na millimètres to centimètres, mpe ezali utile mpo na misala mingi ya Arduino. Na suka ya boyekoli oyo, okozala na système ya komeka mosika oyo ezali na fonction complète mpe pete na mise en place mpe kosalela.

VL53L0X 200cm range sensor

Mpo na kokokisa yango, tokosalela sensor ya laser VL53L0X, oyo esalaka na Arduino na nzela ya I2C. Écran LCD1602 ekolakisa polele ndenge ya mosika oyo emekami. Mpo na polele ya code, tala vidéo na (na vidéo na 00:00).

Explication ya Hardware

Biloko ya minene na construction oyo ezali sensor ya laser VL53L0X mpe écran LCD1602. VL53L0X esalelaka laser mpo na komeka mosika na précision, mpe ezali malamu mpo na misala ndenge na ndenge, lokola robotique mpe automatisation. Esalaka na communication I2C, oyo epesaka intégration pete na Arduino.

Écran LCD1602 ezali écran ya caractères na I2C oyo ekoki kolakisa bapɔtɛ 16 na nzela mibale. Esalaka ekelá ya kolakisa données ezala pete, mpo esengaka ba pins mingi te lokola ba LCD ya kala. Elongo, biloko oyo esalaka système ya komeka mosika oyo ezali na puissance mpe pete na kosalela.

Détails ya Datasheet

FabricantSTMicroelectronics
Numéro ya partieVL53L0X
Tension ya logique/IO1.8 V kino 2.8 V
Tension ya alimentation2.6 V kino 3.5 V
Courant ya sortie (na canal)
Courant ya pointe (na canal)
Guidance ya fréquence PWM
Seuils ya logique ya entrée
Chute ya tension / RDS(on) / saturation
Limites thermiques
Package
Notes / variantes

  • Kokamba tension ya alimentation ya malamu (2.6 V kino 3.5 V).
  • Kosalela ba résistances ya pull-up na ba lignes SDA mpe SCL soki esengeli.
  • Kobomba sensor mosika na ba surfaces oyo ezali kongala mpo na kokima ba lectures ya mabe.
  • Kokamba adresse I2C (défaut ezali 0x29 mpo na VL53L0X).
  • Kokanisa na dispersion ya chaleur soki kosalelaka na environnement ya température ya likolo.

Instructions ya Câblage

Arduino wiring for VL53L0X and LCD1602 I2C (4 wires LCD)

Mpo na kokamba sensor VL53L0X mpe écran LCD1602, banda na kokangisa puissance mpe terre. Kokangisa pin VCC ya VL53L0X na pin 5V na Arduino mpe pin GND na terre ya Arduino. Mpo na LCD1602, kokangisa VCC na yango na 5V moko mpe GND na terre mpe.

Na sima, kokangisa ba lignes ya communication I2C. Pin SDA ya VL53L0X esengeli kokangama na pin A4 na Arduino, mpe pin SCL esengeli kokende na A5. Pin XSHUT ekoki kokangama na D12 na Arduino, kasi ekoki mpe kotikala na connexion te. Mpo na LCD1602, kokamba ete SDA mpe SCL mpe kokangama na ba pins moko na sensor VL53L0X.

Ba Exemples ya Code mpe Explication

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(); 
}

Na fonction setup, tokomisaka communication série mpe bus I2C. sensor.init() ebandisaka sensor VL53L0X, mpe lcd.begin() ebandisaka écran LCD. Backlight ya écran ezali kopelama, mpo na kotala polele.

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);
}

Na kati ya boucle, tozali kotanga mosika na nzela ya sensor.readRangeContinuousMillimeters() mpe kotia yango na moniteur série. LCD ezali kozwa mise à jour na mosika oyo emekami, mpe epesaka réponse na temps réel. Retard ya millisecondes 100 ekomisaka ete ba lectures ezala trop fréquent te, mpo na kotanga pete.

Démonstration / Nini Okokanisa

Ntango ezali na puissance, système ekomataka mosika na nzela ya continu mpe kolakisa bapɔtɛ na LCD. Okoki komona ba valeurs ya mosika ebongwana ntango okomema biloko pembeni to mosika na sensor. Soki ezali na mikakatano na sensor, lokola ba erreurs ya timeout, ba messages ya malamu ekomama na moniteur série (na vidéo na 03:15).

Images

VL53L0X 200cm range sensor
VL53L0X 200cm range sensor
Arduino wiring for VL53L0X and LCD1602 I2C (4 wires LCD)
Arduino wiring for VL53L0X and LCD1602 I2C (4 wires LCD)
113-Measure distance with a laser VL53L0X 6-pin module and an LCD1602-I2C for Arduino
Langue: C++
/* 

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);
}

Mokili na bisika

Fichiers📁

Fritzing File

Mabala a mangwe