#include #include // IR SENSORS #define XSHUT_pin4 8 //not required for address change #define XSHUT_pin3 9 #define XSHUT_pin2 10 #define XSHUT_pin1 11 //ADDRESS_DEFAULT 0b0101001 or 41 #define Sensor4_newAddress 41 //not required address change #define Sensor3_newAddress 42 #define Sensor2_newAddress 43 #define Sensor1_newAddress 44 // IR sensors VL53L0X sensor4; VL53L0X sensor3; VL53L0X sensor2; VL53L0X sensor1; // bool last_sensor1_state = 0; // bool last_sensor2_state = 0; // bool last_sensor3_state = 0; // bool last_sensor4_state = 0; void setup() { Serial.begin(115200); // Set the maximum speed in steps per second: // VL53L0X /*WARNING*/ //Shutdown pins of VL53L0X ACTIVE-LOW-ONLY NO TOLERANT TO 5V will fry them pinMode(XSHUT_pin1, OUTPUT); pinMode(XSHUT_pin2, OUTPUT); pinMode(XSHUT_pin3, OUTPUT); pinMode(XSHUT_pin4, OUTPUT); digitalWrite(XSHUT_pin1, LOW); digitalWrite(XSHUT_pin2, LOW); digitalWrite(XSHUT_pin3, LOW); digitalWrite(XSHUT_pin4, LOW); Wire.begin(); //Change address of sensor and power up next one pinMode(XSHUT_pin1, INPUT); sensor1.init(); sensor1.setAddress(Sensor1_newAddress); delay(10); pinMode(XSHUT_pin2, INPUT); sensor2.init(); sensor2.setAddress(Sensor2_newAddress); delay(10); pinMode(XSHUT_pin3, INPUT); sensor3.init(); sensor3.setAddress(Sensor3_newAddress); delay(10); pinMode(XSHUT_pin4, INPUT); sensor4.init(); sensor4.setAddress(Sensor4_newAddress); delay(10); sensor1.setTimeout(0); sensor2.setTimeout(0); sensor3.setTimeout(0); sensor4.setTimeout(0); // // if (!sensor.init()) // // { // // Serial.println("Failed to detect and initialize sensor!"); // // while (1) {} // // } sensor1.startContinuous(); sensor2.startContinuous(); sensor3.startContinuous(); sensor4.startContinuous(); } void loop() { int state1 = sensor1.readRangeContinuousMillimeters(); Serial.print("s1 : "); Serial.print(state1); Serial.print(" | "); int state2 = sensor2.readRangeContinuousMillimeters(); Serial.print("s2 : "); Serial.print(state2); Serial.print(" | "); int state3 = sensor3.readRangeContinuousMillimeters(); Serial.print("s3 : "); Serial.print(state3); Serial.print(" | "); int state4 = sensor4.readRangeContinuousMillimeters(); Serial.print("s4 : "); Serial.println(state4); // if (sensor1.timeoutOccurred()) { Serial.print(" TIMEOUT"); } // if (sensor2.timeoutOccurred()) { Serial.print(" TIMEOUT"); } // if (sensor3.timeoutOccurred()) { Serial.print(" TIMEOUT"); } // if (sensor4.timeoutOccurred()) { Serial.print(" TIMEOUT"); } }