single_ranging.ino 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "Seeed_vl53l0x.h"
  2. Seeed_vl53l0x VL53L0X;
  3. #ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
  4. #define SERIAL SerialUSB
  5. #else
  6. #define SERIAL Serial
  7. #endif
  8. void setup() {
  9. VL53L0X_Error Status = VL53L0X_ERROR_NONE;
  10. SERIAL.begin(115200);
  11. Status = VL53L0X.VL53L0X_common_init();
  12. if (VL53L0X_ERROR_NONE != Status) {
  13. SERIAL.println("start vl53l0x mesurement failed!");
  14. VL53L0X.print_pal_error(Status);
  15. while (1);
  16. }
  17. VL53L0X.VL53L0X_single_ranging_init();
  18. if (VL53L0X_ERROR_NONE != Status) {
  19. SERIAL.println("start vl53l0x mesurement failed!");
  20. VL53L0X.print_pal_error(Status);
  21. while (1);
  22. }
  23. }
  24. void loop() {
  25. VL53L0X_RangingMeasurementData_t RangingMeasurementData;
  26. VL53L0X_Error Status = VL53L0X_ERROR_NONE;
  27. memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t));
  28. Status = VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
  29. if (VL53L0X_ERROR_NONE == Status) {
  30. if (RangingMeasurementData.RangeMilliMeter >= 2000) {
  31. SERIAL.println("out of range!!");
  32. } else {
  33. SERIAL.print("Measured distance:");
  34. SERIAL.print(RangingMeasurementData.RangeMilliMeter);
  35. SERIAL.println(" mm");
  36. }
  37. } else {
  38. SERIAL.print("mesurement failed !! Status code =");
  39. SERIAL.println(Status);
  40. }
  41. delay(300);
  42. }