// https://www.arduinocircuit.com/using-vl53l0x-multi-sensor-with-arduino/
#include <Wire.h>
#include <VL53L0X.h>
#define SENSORS 6
VL53L0X sensor[SENSORS];
int sensorMM[SENSORS];
byte sensorPin[SENSORS];
void setup() {
Wire.begin(); Serial.begin(115200);
for (byte i = 4; i < 10; i++) {
pinMode(sensorPin[i], OUTPUT);
digitalWrite(sensorPin[i], LOW);
}
delay(500);
for (int i = 0; i < SENSORS; i++) {
Serial.print("VL53L0X 0");
Serial.print(i);
delay(150);
digitalWrite(sensorPin[i], HIGH);
Serial.print(" enable");
delay(150);
sensor[i].setTimeout(500);
Serial.print(" setTimeout");
if (!sensor[i].init(true)) {
Serial.println(" Failed to detect and initialize sensor!");
while (1);
} Serial.print(" init");
delay(150);
sensor[i].setAddress((uint8_t)i);
Serial.print(" setAddress");
delay(150);
sensor[i].startContinuous(250); // 250ms period Serial.print(" startContinuous"); delay(150);
Serial.println();
} delay(500);
}
void loop() {
for (int i = 0; i < SENSORS; i++) {
sensorMM[i] = sensor[i].readRangeContinuousMillimeters();
if (sensor[i].timeoutOccurred())
Serial.print(" TIMEOUT");
Serial.print("(0");
Serial.print(i);
Serial.print(sensorMM[i]);
Serial.print("mm) ");
}
Serial.println(millis() / 1000); delay(500);
}