Nora Vazbyte
/
Multi_VL53L0X
Working multi-sensor TOF setup
main.cpp
- Committer:
- vazbyte
- Date:
- 2019-02-27
- Revision:
- 3:5edb525fae6d
- Parent:
- 2:8758d2437277
File content as of revision 3:5edb525fae6d:
#include "mbed.h" #include "VL53L0X.h" #define range1_addr (0x56) #define range2_addr (0x60) #define range1_XSHUT p15 #define range2_XSHUT p16 #define VL53L0_I2C_SDA p30 #define VL53L0_I2C_SCL p7 Serial pc(USBTX, USBRX); static DevI2C devI2c(VL53L0_I2C_SDA, VL53L0_I2C_SCL); DigitalOut led1(LED1); DigitalOut led2(LED2); int main() { /*Contruct the sensors*/ static DigitalOut shutdown1_pin(range1_XSHUT); static VL53L0X range1(&devI2c, &shutdown1_pin, NC); static DigitalOut shutdown2_pin(range2_XSHUT); static VL53L0X range2(&devI2c, &shutdown2_pin, NC); /*Initial all sensors*/ range1.init_sensor(range1_addr); range2.init_sensor(range2_addr); /*Get datas*/ uint32_t distance1; uint32_t distance2; int status1; int status2; while(1){ status1 = range1.get_distance(&distance1); status2 = range2.get_distance(&distance2); if (status1 == VL53L0X_ERROR_NONE) { // printf("Range1 [mm]: %6ld\r\n", distance1); if (distance1 > 40 && distance1 < 2200) { led1 = 0; } else { led1 = 1; } } else { // printf("Range1 [mm]: --\r\n"); led1 = 1; } if (status2 == VL53L0X_ERROR_NONE) { // printf("Range2 [mm]: %6ld\r\n", distance2); if (distance2 > 40 && distance2 < 2200) { led2 = 0; } } else { // printf("Range2 [mm]: --\r\n"); led2 = 1; } wait(0.2); } }