I connected VCC TO 5V, GND TO GND, SCL TO A5, SDA TO A4.
NO OTHER PINS CONNECTED.
'/* This example shows how to use continuous mode to take
range measurements with the 6 pin VL53L0X module. It is based on
vl53l0x_ContinuousRanging_Example.c from the VL53L0X API.
The range readings are in units of mm.
Original source: GitHub - adafruit/Adafruit_VL53L0X: Arduino library for Adafruit VL53L0X
Modified by Ahmad Shamshiri for RoboJax.com
Date modified: May 31, 2018 at 19:25 at Ajax, Ontario, Canada
Watch the instruciton video for this code Lesson 77: Measure Distance with VL53L0X 6 pin Laser module with Arduino - YouTube
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>
int n=1;
int k=0;
float distancef= 180;
int distancesumi1=0;
int distancesumi2=0;
int distancesumi3=0;
int distancesumi4=0;
int distancesumi5=0;
int cushion=50;
int distancei5;
int distancei4;
int distancei3;
int distancei2;
int distancei1;
VL53L0X sensor;
void setup()
{
pinMode(12,INPUT_PULLUP);
digitalWrite(12,HIGH);
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(10);
Serial.print ("void setup");
}
void loop()
{
// store previous loop data//
distancesumi5=distancesumi4;
distancesumi4=distancesumi3;
distancesumi3=distancesumi2;
distancesumi2=distancesumi1;
/* test print
Serial.print (distancei1);
Serial.print (";");
Serial.print (distancei2);
Serial.print (";");
Serial.print (distancei3);
Serial.print (";");
Serial.print (distancei4);
Serial.print (";");
*/
//store previous loop data//
distancei5=distancei4;
distancei4=distancei3;
distancei3=distancei2;
distancei2=distancei1;
delay(500);
int distance1 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance2 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance3 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance4 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance5 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance6 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance7 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance8 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance9 =sensor.readRangeContinuousMillimeters();
delay(50);
int distance10 =sensor.readRangeContinuousMillimeters();
delay(50);
/*
Serial.print("loop:");
Serial.print(n );
Serial.print("Pre Dist: ");
Serial.print(distancef );
Serial.print("mm");
*/
float distancesumf =((distance1)+(distance2 )+(distance3)+(distance4)+(distance5)+(distance6)+(distance7)+(distance8)+(distance9)+(distance10)+((distancef)*10));
distancef= (distancesumf/20);
distancesumi1= distancesumf+0.5;
distancei1= distancef+0.5;
int correction=(distancei2 - distancei1);
if (distancesumi5 > distancesumi1+cushion)
{
Serial.print("decreasing; ") ;
k=1;
}
else if (distancesumi5+cushion < distancesumi1)
{
Serial.print("increasing; ") ;
k=3;
}
else
{
Serial.print("Same dist; ") ;
k=2;
}
//distance = distance;
Serial.print("Distance: ");
Serial.print(distancei1);
Serial.print("mm;");
Serial.print(correction);
//if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
n=n+1;
Serial.println();
//analogWrite(3,distancei1);
//delay(1000);
} '
BUT device is not resulting proper data. I had used this same sensor and code year back and was running perfectly.
Is it a address issue?
Thanks in advance for any help.