This is a library that makes VL53L0X easy to handle.

Dependencies:   vl53l0x_api

# Example

include the mbed library with this snippet

#include "mbed.h"
#include "TI_VL53L0X.h"

DigitalOut led1(LED1);

DigitalIn button(p11);

TI_VL53L0X vl53l0x;

int main() {
  led1 = 0;

  vl53l0x.setup();
  vl53l0x.calibration();

  while (true) {

    if (led1) {
      int averageRange = vl53l0x.getMeasurement();

      if (9999 != averageRange) {
        printf("VL53L0X measurement average %d\n", averageRange);

        if (averageRange > 300) {
          led1 = 0;
        } else {
          led1 = 1;
        }
      }
    }

    if (button) {
      printf("Button Pressed\n\r");
      wait(0.7);

      led1 = !led1;

      if (led1) {
        vl53l0x.startMeasurement();
      } else {
        vl53l0x.stopMeasurement();
      }
    }
  }
}

TI_VL53L0X.h

Committer:
tichise
Date:
2018-06-05
Revision:
0:9d485cd4147c

File content as of revision 0:9d485cd4147c:

#ifndef MBED_TI_VL53L0X_H
#define MBED_TI_VL53L0X_H

#include "mbed.h"
#include "vl53l0x_api.h"
#include "vl53l0x_i2c_platform.h"
#include "vl53l0x_platform.h"

/**
 * LPC1768用
 */
class TI_VL53L0X
{
public:
    TI_VL53L0X();

    void printPalState(VL53L0X_State state);
    void printPalError(VL53L0X_Error status);
    void printRangeStatus(
        VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
    VL53L0X_Error waitMeasurementDataReady(VL53L0X_DEV dev);
    VL53L0X_Error waitStopCompleted(VL53L0X_DEV dev);

    void setup();
    void calibration();
    void stopMeasurement();
    void startMeasurement();
    int getMeasurement();

private:
  VL53L0X_State apiState;
  VL53L0X_Error status;
  VL53L0X_Dev_t myDevice;
  VL53L0X_Dev_t *pMyDevice;
};

#endif